Index: phpdoc/fr/functions/calendar.xml
diff -u phpdoc/fr/functions/calendar.xml:1.6 phpdoc/fr/functions/calendar.xml:1.7
--- phpdoc/fr/functions/calendar.xml:1.6 Mon Nov 12 00:10:20 2001
+++ phpdoc/fr/functions/calendar.xml Wed Nov 14 12:52:33 2001
@@ -1 +1,585 @@
-CalendrierCalendrier Les fonctions de calendrier ne sont disponibles que si l'extension calendrier a été compilée. Elle est située dans les sous-dossiers "dl" ou "ext" de votre distribution de PHP. Lisez le fichier README pour plus de détails. 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 (en anglais), reportez-vous à &url.calendar;. Les traductions issues de ces pages seront mises entre guillemets. JDToGregorian Convertit le nombre de jours du calendrier Julien en date grégorienne. Descriptionstring jdtogregorianint juliandayjdtogregorian 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". GregorianToJD Convertit une date grégorienne en nombre de jours du calendrier Julien. Descriptionint gregoriantojdint monthint dayint 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 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. Fonctions calendrier<?php$jd = gregoriantojd(10,11,1970);echo("$jd\n");$gregorian = jdtogregorian($jd);echo("$gregorian\n");?> JDToJulian Convertit le nombre de jours du calendrier Julien en date du calendrier Julien. Descriptionstring jdtojulianint juliandayjdtojulian convertit le nombre de jours du calendrier Julien en une chaîne contenant la date du calendrier Julien, au format "mois/jour/année". JulianToJD Convertit le nombre de jours du calendrier Julien en date du calendrier Julien. Descriptionint juliantojdint monthint dayint 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 JC, et ses détails ne furent finalisés qu'au plus tôt en 8 après JC, et probablement pas avant le 4è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. JDToJewish Convertit le nombre de jours du calendrier Julien en date du calendrier juif. Descriptionstring jdtojewishint juliandayjdtojewish convertit le nombre de jours du calendrier Julien en date du calendrier juif. JewishToJD Convertit une date du calendrier juif en nombre de jours du calendrier Julien. Descriptionint jewishtojdint monthint dayint year Bien qu'il soit possible de manipuler des dates à partir de l'an 1 (3761 avant JC), 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 commencait quand une nouvelle lune était observée. JDToFrench Convertit le nombre de jours du calendrier Julien en date du calendrier français républicain Descriptionstring jdtofrenchint juliandaycountjdtofrench convertit le nombre de jours du calendrier julien en date du calendrier français républicain. FrenchToJD Convertit une date du calendrier français républicain en nombre de jours du calendrier Julien. Descriptionint frenchtojdint monthint dayint yearfrenchtojd 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 September 1792 à 22 September 1806 en calendrier grégorien). Cela couvre plus que la durée d'existence de ce calendrier. JDMonthNameRetourne le nom du mois. Descriptionstring jdmonthnameint juliandayint modejdmonthname retourne une chaîne contenant le nom du mois. mode indique de quel calendrier dépend ce mois, et quel type de nom doit être retourné.
Modes de calendrierModeSignification0Grégorien - abrégé1Grégorien2Julien - abrégé3Julien4Juif5Républicain français
JDDayOfWeek Retourne le numéro du jour de la semaine. Descriptionmixed jddayofweekint juliandayint modejddayofweek retourne le numéro du jour de la semaine. Peut retourner une chaîne ou un entier, en fonction du mode.
ModesModeSignification0Retourne le numéro du jour comme un entier (0=dimanche, 1=lundi, etc.) 1Retourne une chaîne contenant le nom du jour (anglais grégorien) 2Retourne une chaîne contenant le nom abrégé du jour de la semaine (anglais grégorien).
easter_date Retourne un timestamp UNIX pour Pâques, à minuit Descriptionint easter_dateint yeareaster_date retourne un timestamp UNIX pour Pâques, à minuit, pour une année donnée. Si l'année n'est pas précisée, c'est l'année en cours qui est utilisée. ATTENTION: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). Exemples avec easter_dateecho date( "M-d-Y", easter_date(1999) ); /* "04 avril 1999" */echo date( "M-d-Y", easter_date(2000) ); /* "23 avril 2000" */echo date( "M-d-Y", easter_date(2001) ); /* "15 avril 2001" */ 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 easter_days pour les calculs de date de Pâques avant 1970 et après 2037. easter_days Retourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée. Descriptionint easter_daysint yeareaster_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. 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 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. unixtojd Convertit un timestamp UNIX en nombre de jours Julien Descriptionint unixtojdint timestampunixtojd retourne le nombre de jours Juliens du timestamp UNIX timestamp (nombre de secondes depuis le 1/1/1970), ou pour le jour courant si timestamp est omis. Voir aussi jdtounix. unixtojd n'est disponible qu'à partir de la version PHP 4.0RC1. Voir aussi easter_date. jdtounix Convertit un nombre de jours Julien en timestamp UNIX Descriptionint jdtounixint jdayjdtounix retourne un timestamp UNIX correspondant au nombre de jours 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 ). Voir aussi jdtounix. jdtounix n'est disponible qu'à partir de la version PHP 4.0RC1.
\ No newline at end of file
+
+
+
+ Calendrier
+ Calendrier
+
+
+ Les fonctions de calendrier ne sont disponibles que si
+ l'extension calendrier a été compilée.
+ Elle est située dans les sous-dossiers "dl" ou "ext"
+ de votre distribution de PHP. Lisez le fichier
+ README pour plus de détails.
+
+
+ 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 (en anglais), reportez-vous à
+ &url.calendar;.
+ Les traductions issues de ces pages seront mises entre guillemets.
+
+
+
+
+ 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".
+
+
+
+
+
+ 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 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.
+
+ Fonctions calendrier
+
+<?php
+$jd = gregoriantojd(10,11,1970);
+echo("$jd\n");
+$gregorian = jdtogregorian($jd);
+echo("$gregorian\n");
+?>
+
+
+
+
+
+
+
+ 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".
+
+
+
+
+
+ JulianToJD
+
+ Convertit le nombre de jours du calendrier Julien en date 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 JC, et ses détails ne furent
+ finalisés qu'au plus tôt en 8 après JC, et probablement
+ pas avant le 4è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.
+
+
+
+
+
+ JDToJewish
+
+ Convertit le nombre de jours du calendrier Julien en date du calendrier
+ juif.
+
+
+
+ Description
+
+
+ string jdtojewish
+ int julianday
+
+
+
+ jdtojewish convertit le nombre de jours du calendrier
+ Julien en date du calendrier juif.
+
+
+
+
+
+ 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 JC), 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 commencait quand une nouvelle lune était observée.
+
+
+
+
+
+ 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.
+
+
+
+
+
+ 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 September 1792 à 22 September 1806 en calendrier grégorien).
+ Cela couvre plus que la durée d'existence de ce calendrier.
+
+
+
+
+
+ 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é.
+
+
+
+
+
+
+ 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.
+
+ Modes
+
+
+
+ Mode
+ Signification
+
+
+
+
+ 0
+ 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).
+
+
+
+
+
+
+
+
+
+
+ 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. Si l'année n'est
+ pas précisée, c'est l'année en cours qui est
+ utilisée.
+
+
+ ATTENTION: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).
+
+ Exemples avec easter_date
+
+echo date( "M-d-Y", easter_date(1999) ); /* "04 avril 1999" */
+echo date( "M-d-Y", easter_date(2000) ); /* "23 avril 2000" */
+echo date( "M-d-Y", easter_date(2001) ); /* "15 avril 2001" */
+
+
+
+
+ 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
+ easter_days
+ pour les calculs de date de Pâques avant 1970 et après 2037.
+
+
+
+
+
+ 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
+
+
+
+ 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.
+
+
+ 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 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.
+
+
+
+
+
+ unixtojd
+
+ Convertit un timestamp UNIX en nombre de jours Julien
+
+
+
+ Description
+
+
+ int unixtojd
+ int
+ timestamp
+
+
+
+
+ unixtojd retourne le nombre de jours Juliens du
+ timestamp UNIX timestamp (nombre de secondes
+ depuis le 1/1/1970), ou pour le jour courant si
+ timestamp est omis.
+
+
+ Voir aussi
+ jdtounix.
+
+
+ unixtojd n'est disponible qu'à partir de la
+ version PHP 4.0RC1.
+
+
+ Voir aussi
+ easter_date.
+
+
+
+
+
+ jdtounix
+
+ Convertit un nombre de jours Julien en timestamp UNIX
+
+
+
+ Description
+
+
+ int jdtounix
+ int jday
+
+
+
+ jdtounix retourne un timestamp UNIX
+ correspondant au nombre de jours 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 ).
+
+
+ Voir aussi
+ jdtounix.
+
+
+
+ jdtounix n'est disponible qu'à partir de la
+ version PHP 4.0RC1.
+
+
+
+
+
+
+
Index: phpdoc/fr/functions/classobj.xml
diff -u phpdoc/fr/functions/classobj.xml:1.12 phpdoc/fr/functions/classobj.xml:1.13
--- phpdoc/fr/functions/classobj.xml:1.12 Mon Nov 12 00:10:20 2001
+++ phpdoc/fr/functions/classobj.xml Wed Nov 14 12:52:33 2001
@@ -1 +1,619 @@
-ObjetsClasses et ObjetsIntroductionAbout Ces fonctions permettent de gérer les classes et les objets. Vous pouvez notamment connaître le nom de la classe d'un objet, ses membres et ses méthodes, et tous les objets parents (les classes qui sont étendues par la classe d'un objet). Exemple d'utilisation 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é. classes.inc<?php// classe de base, avec ses membres et ses méthodesclass Legume { var $mangeable; var $couleur; function legume( $mangeable, $couleur="green" ) { $this->mangeable = $mangeable; $this->couleur = $couleur; } function est_mangeable() { return $this->mangeable; } function quelle_couleur() { return $this->couleur; }} // fin de la classe Legume// extend la classe de baseclass Epinard extends Legume { var $cuit = FALSE; function Epinard() { $this->Legume( TRUE, "green" ); } function cuisine() { $this->cuit = TRUE; } function est_cuit() { return $this->cuit; }} // fin de la classe Epinard?> Lorsqu'on instantie deux objets de ces classes, et qu'on affiche leurs informations, on affiche aussi leur héritage. On définit ici des utilitaires qui servent essentiellement à afficher ces informations proprement. test_script.php<pre><?php include "classes.inc";// utilitaires function print_vars($obj) { $arr = get_object_vars($obj); while (list($prop, $val) = each($arr)) 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) { global $$obj; if (is_subclass_of($$obj, $class)) { echo "L'objet $obj belongs to class ".get_class($$obj); echo " est une sous-classe de $class\n"; } else { echo "L'objet $obj n'est pas une sous classe $class\n"; } }// instantie 2 objets $legume = new Legume(TRUE,"blue"); $feuilles = new Epinard();// affiche les informations sur ces objets echo "legume: CLASS ".get_class($legume)."\n"; echo "feuilles: CLASS ".get_class($feuilles); echo ", PARENT ".get_parent_class($feuilles)."\n";// affiche les propriétés du légume echo "\nlégume: Propriétés \n"; print_vars($legume);// et les méthodes de "feuilles" echo "\nfeuilles: Methods\n"; print_methods($feuilles); echo "\nParentée:\n"; class_parentage("feuilles", "Epinard"); class_parentage("feuilles", "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 Spinach L'objet feuilles est une sous-classe de Legume call_user_method Appelle une méthode utilisateur d'un objet Descriptionmixed call_user_methodstring method_nameobject objmixed parametermixed ... Appelle la méthode method_name depuis l'objet obj. Un exemple d'utilisation de cet objet est présenté ci-dessous, où une classe est définie, puis instantiée. On utilise alors call_user_method pour appeler indirectement les méthodes print_info. <?phpclass Pays { var $NOM; var $TLD; function Pays($nom, $tld) { $this->NOM = $nom; $this->TLD = $tld; } function print_info($prestr="") { echo $prestr."Pays: ".$this->NOM."\n"; echo $prestr."Nom de domaine: ".$this->TLD."\n"; }}$unPays = new Pays("Pérou","pe");echo "* Appel de la méthode directement\n";$unPays->print_info();echo "\n* Appel de la méthode indirectement\n";call_user_method ("print_info", $unPays, "\t");?> Voir aussi call_user_func_array. call_user_func et call_user_method_array. call_user_method_array Appelle une méthode utilisateur avec un tableau de paramètres Descriptionmixed call_user_method_arraystring method_nameobject objarray paramarrcall_user_method_array appelle la méthode method_name de l'object obj, en utilisant les paramètres paramarr, rassemblés sous forme de tableau. Voir aussi call_user_func_array, call_user_func et call_user_method. call_user_method_array a été ajoutée en version PHP 4.05. class_existsVérifie qu'une classe a été définieDescriptionboolean class_existsstring class_nameclass_exists retourne TRUE si la classe class_name a été définie, et FALSE sinon. get_classRetourne la classe d'un objetDescriptionstring get_classobject objget_class retourne la classe de l'objet obj. Voir aussi get_parent_class et is_subclass_ofget_class_methodsRetourne les noms des méthodes d'une classe.Descriptionarray get_class_methodsstring class_nameget_class_methods retourne un tableau contenant les noms des méthodes de la classe class_name. A partir de PHP 4.0.6, vous pouvez spécifier l'objet lui-même, au lieu de sa classe class_name. Par exemple : <?php $class_methods = get_class_methods($my_class);?> Exemple avec get_class_methods<?phpclass myclass { // constructeur function maclasse() { return(TRUE); } // méthode 1 function myfunc1() { return(TRUE); } // méthode 2 function mafunc2() { return(TRUE); }}$ma_classe = new maclasse();$class_methods = get_class_methods(get_class($ma_class));foreach ($class_methods as $method_name) { echo "$method_name\n";}?> Va afficher : maclassmafunc1mafunc2 Voir aussi get_class_vars et get_object_varsget_class_vars Retourne les valeurs par défaut des attributs d'une classe. Descriptionarray get_class_varsstring class_nameget_class_vars retourne un tableau contenant les valeurs par défaut des attributs de la classe class_name. Les variables de classe qui ne sont pas encore initialisées ne seront pas retournées par get_class_vars. Exemple get_class_vars<?phpclass maclasse { var $var1; // Pas de valeur par défaut var $var2 = "xyz"; var $var3 = 100; // constructeur function maclasse() { return(TRUE); }}$ma_classe = new maclasse();$class_vars = get_class_vars(get_class($ma_classe));foreach ($class_vars as $name => $value) { echo "$name : $value\n";}?> va afficher : var2 : xyzvar3 : 100 get_declared_classesListe toutes les classes définiesDescriptionarray get_declared_classesvoidget_declared_classes retourne un tableau contenant la liste des fonctions déclarées dans le script courant. En PHP 4.0.1pl2, 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). get_object_vars Retourne un tableau associatif des propriétés d'un objet Descriptionarray get_object_varsobject objget_object_vars retourne un tableau associatif contenant les propriétés de l'objet obj. Les clés du tableau sont les noms des propriétés de l'objet.Si des variables déclarées dans la classe de l'objet obj, n'ont pas été assignées, elles ne seront pas retournées dans le tableau. Exemple avec get_object_vars<?phpclass Point2D { var $x, $y; var $nom; function Point2D($x, $y) { $this->x = $x; $this->y = $y; } function donne_nom($nom) { $this->nom = $nom; } function LitPoint() { return array("x" -> $this->x, "y" -> $this->y, "nom" -> $this->nom); }}$p1 = new Point2D(1.233, 3.445);print_r(get_object_vars($p1));// "$nom" est déclaré, mais non défini// Array// (// [x] -> 1.233// [y] -> 3.445// )$p1->setnom("point #1");print_r(get_object_vars($p1));// Array// (// [x] -> 1.233// [y] -> 3.445// [nom] -> point #1// )?> Voir aussi get_class_methods et get_class_varsget_parent_classRetourne le nom de la classe d'un objetDescriptionstring get_parent_classobject objget_parent_class retourne le nom de la classe de l'objet obj. Voir aussi get_class et is_subclass_ofis_subclass_of Détermine si un objet est une sous-classe Descriptionboolean is_subclass_ofobject objstring superclassis_subclass_of retourne TRUE si l'objet obj est une sous-classe de superclass, FALSE sinon. Voir aussi get_class et get_parent_classmethod_exists Vérifie que la méthode existe pour une classe. Descriptionboolean method_existsobject objectstring method_namemethod_exists retourne TRUE si la méthode method_name a été définie pour la classe object, et sinon, retourne FALSE.
\ No newline at end of file
+
+
+
+ Objets
+ Classes et Objets
+
+
+ Introduction
+
+ About
+
+ Ces fonctions permettent de gérer les classes et les objets.
+ Vous pouvez notamment connaître le nom de la classe d'un
+ objet, ses membres et ses méthodes, et tous les objets
+ parents (les classes qui sont étendues par la classe d'un objet).
+
+
+
+ Exemple d'utilisation
+
+ 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é.
+
+
+
+ classes.inc
+
+<?php
+// classe de base, avec ses membres et ses méthodes
+class Legume {
+ var $mangeable;
+ var $couleur;
+ function legume( $mangeable, $couleur="green" ) {
+ $this->mangeable = $mangeable;
+ $this->couleur = $couleur;
+ }
+ function est_mangeable() {
+ return $this->mangeable;
+ }
+ function quelle_couleur() {
+ return $this->couleur;
+ }
+} // fin de la classe Legume
+// extend la classe de base
+class Epinard extends Legume {
+ var $cuit = FALSE;
+ function Epinard() {
+ $this->Legume( TRUE, "green" );
+ }
+ function cuisine() {
+ $this->cuit = TRUE;
+ }
+ function est_cuit() {
+ return $this->cuit;
+ }
+} // fin de la classe Epinard
+?>
+
+
+
+
+ Lorsqu'on instantie deux objets de ces classes, et qu'on affiche
+ leurs informations, on affiche aussi leur héritage. On définit ici
+ des utilitaires qui servent essentiellement à afficher ces
+ informations proprement.
+
+
+
+ test_script.php
+
+<pre>
+<?php
+ include "classes.inc";
+// utilitaires
+ function print_vars($obj) {
+ $arr = get_object_vars($obj);
+ while (list($prop, $val) = each($arr))
+ 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) {
+ global $$obj;
+ if (is_subclass_of($$obj, $class)) {
+ echo "L'objet $obj belongs to class ".get_class($$obj);
+ echo " est une sous-classe de $class\n";
+ } else {
+ echo "L'objet $obj n'est pas une sous classe $class\n";
+ }
+ }
+// instantie 2 objets
+ $legume = new Legume(TRUE,"blue");
+ $feuilles = new Epinard();
+// affiche les informations sur ces objets
+ echo "legume: CLASS ".get_class($legume)."\n";
+ echo "feuilles: CLASS ".get_class($feuilles);
+ echo ", PARENT ".get_parent_class($feuilles)."\n";
+// affiche les propriétés du légume
+ echo "\nlégume: Propriétés \n";
+ print_vars($legume);
+// et les méthodes de "feuilles"
+ echo "\nfeuilles: Methods\n";
+ print_methods($feuilles);
+ echo "\nParentée:\n";
+ class_parentage("feuilles", "Epinard");
+ class_parentage("feuilles", "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 Spinach
+ L'objet feuilles est une sous-classe de Legume
+
+
+
+
+
+
+
+
+ call_user_method
+
+ Appelle une méthode utilisateur d'un objet
+
+
+
+ Description
+
+
+ mixed
+ call_user_method
+
+ string
+ method_name
+
+ object
+ obj
+
+ mixed
+ parameter
+
+ mixed
+ ...
+
+
+
+
+ Appelle la méthode method_name depuis l'objet
+ obj. Un exemple d'utilisation de cet objet
+ est présenté ci-dessous, où une classe est définie, puis instantiée.
+ On utilise alors call_user_method pour appeler
+ indirectement les méthodes print_info.
+
+
+<?php
+class Pays {
+ var $NOM;
+ var $TLD;
+ function Pays($nom, $tld) {
+ $this->NOM = $nom;
+ $this->TLD = $tld;
+ }
+ function print_info($prestr="") {
+ echo $prestr."Pays: ".$this->NOM."\n";
+ echo $prestr."Nom de domaine: ".$this->TLD."\n";
+ }
+}
+$unPays = new Pays("Pérou","pe");
+echo "* Appel de la méthode directement\n";
+$unPays->print_info();
+echo "\n* Appel de la méthode indirectement\n";
+call_user_method ("print_info", $unPays, "\t");
+?>
+
+
+
+
+ Voir aussi
+ call_user_func_array.
+ call_user_func et
+ call_user_method_array.
+
+
+
+
+
+ call_user_method_array
+
+ Appelle une méthode utilisateur avec un tableau de paramètres
+
+
+
+ Description
+
+
+ mixed
+ call_user_method_array
+
+ string
+ method_name
+
+ object
+ obj
+
+ array
+ paramarr
+
+
+
+
+ call_user_method_array appelle la méthode
+ method_name de l'object obj,
+ en utilisant les paramètres paramarr, rassemblés
+ sous forme de tableau.
+
+
+ Voir aussi
+ call_user_func_array,
+ call_user_func et
+ call_user_method.
+
+
+
+ call_user_method_array a été ajoutée en version
+ PHP 4.05.
+
+
+
+
+
+
+ class_exists
+ Vérifie qu'une classe a été définie
+
+
+ Description
+
+
+ boolean class_exists
+ string class_name
+
+
+
+ class_exists retourne TRUE si la classe
+ class_name a été définie, et FALSE sinon.
+
+
+
+
+
+ get_class
+ Retourne la classe d'un objet
+
+
+ Description
+
+
+ string get_class
+ object obj
+
+
+
+ get_class retourne la classe de l'objet
+ obj.
+
+
+ Voir aussi
+ get_parent_class et
+ is_subclass_of
+
+
+
+
+
+ get_class_methods
+ Retourne les noms des méthodes d'une classe.
+
+
+ Description
+
+
+ array get_class_methods
+ string class_name
+
+
+
+ get_class_methods retourne un tableau contenant les
+ noms des méthodes de la classe class_name.
+
+
+
+ A partir de PHP 4.0.6, vous pouvez spécifier l'objet lui-même, au lieu
+ de sa classe class_name. Par exemple :
+
+
+<?php
+ $class_methods = get_class_methods($my_class);
+?>
+
+
+
+
+
+
+ Exemple avec get_class_methods
+
+<?php
+class myclass {
+ // constructeur
+ function maclasse() {
+ return(TRUE);
+ }
+ // méthode 1
+ function myfunc1() {
+ return(TRUE);
+ }
+ // méthode 2
+ function mafunc2() {
+ return(TRUE);
+ }
+}
+$ma_classe = new maclasse();
+$class_methods = get_class_methods(get_class($ma_class));
+foreach ($class_methods as $method_name) {
+ echo "$method_name\n";
+}
+?>
+
+
+
+
+ Va afficher :
+
+
+maclass
+mafunc1
+mafunc2
+
+
+
+
+ Voir aussi
+ get_class_vars et
+ get_object_vars
+
+
+
+
+
+ get_class_vars
+
+ Retourne les valeurs par défaut des attributs d'une classe.
+
+
+
+ Description
+
+
+ array get_class_vars
+ string class_name
+
+
+
+ get_class_vars retourne un tableau contenant les
+ valeurs par défaut des attributs de la classe
+ class_name.
+
+
+
+ Les variables de classe qui ne sont pas encore initialisées ne seront pas
+ retournées par get_class_vars.
+
+
+
+
+ Exemple get_class_vars
+
+<?php
+class maclasse {
+ var $var1; // Pas de valeur par défaut
+ var $var2 = "xyz";
+ var $var3 = 100;
+ // constructeur
+ function maclasse() {
+ return(TRUE);
+ }
+}
+$ma_classe = new maclasse();
+$class_vars = get_class_vars(get_class($ma_classe));
+foreach ($class_vars as $name => $value) {
+ echo "$name : $value\n";
+}
+?>
+
+
+
+
+ va afficher :
+
+
+var2 : xyz
+var3 : 100
+
+
+
+
+
+
+
+ get_declared_classes
+ Liste toutes les classes définies
+
+
+ Description
+
+
+ array get_declared_classes
+ void
+
+
+
+ get_declared_classes retourne un tableau contenant
+ la liste des fonctions déclarées dans le script courant.
+
+
+
+ En PHP 4.0.1pl2, 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).
+
+
+
+
+
+
+ get_object_vars
+
+ Retourne un tableau associatif des propriétés d'un objet
+
+
+
+ Description
+
+
+ array get_object_vars
+ object obj
+
+
+
+ get_object_vars retourne un tableau associatif
+ contenant les propriétés de l'objet obj.
+ Les clés du tableau sont les noms des propriétés
+ de l'objet.Si des variables déclarées dans la classe de
+ l'objet obj, n'ont pas été
+ assignées, elles ne seront pas retournées dans le tableau.
+
+ Exemple avec get_object_vars
+
+<?php
+class Point2D {
+ var $x, $y;
+ var $nom;
+ function Point2D($x, $y) {
+ $this->x = $x;
+ $this->y = $y;
+ }
+ function donne_nom($nom) {
+ $this->nom = $nom;
+ }
+ function LitPoint() {
+ return array("x" -> $this->x,
+ "y" -> $this->y,
+ "nom" -> $this->nom);
+ }
+}
+$p1 = new Point2D(1.233, 3.445);
+print_r(get_object_vars($p1));
+// "$nom" est déclaré, mais non défini
+// Array
+// (
+// [x] -> 1.233
+// [y] -> 3.445
+// )
+$p1->setnom("point #1");
+print_r(get_object_vars($p1));
+// Array
+// (
+// [x] -> 1.233
+// [y] -> 3.445
+// [nom] -> point #1
+// )
+?>
+
+
+
+
+ Voir aussi
+ get_class_methods et
+ get_class_vars
+
+
+
+
+
+ get_parent_class
+ Retourne le nom de la classe d'un objet
+
+
+ Description
+
+
+ string get_parent_class
+ object obj
+
+
+
+ get_parent_class retourne le nom de la classe
+ de l'objet obj.
+
+
+ Voir aussi
+ get_class et
+ is_subclass_of
+
+
+
+
+
+ is_subclass_of
+
+ Détermine si un objet est une sous-classe
+
+
+
+ Description
+
+
+ boolean is_subclass_of
+ object obj
+ string superclass
+
+
+
+ is_subclass_of retourne TRUE si l'objet
+ obj est une sous-classe de
+ superclass, FALSE sinon.
+
+
+ Voir aussi
+ get_class et
+ get_parent_class
+
+
+
+
+
+ method_exists
+
+ Vérifie que la méthode existe pour une classe.
+
+
+
+ Description
+
+
+ boolean method_exists
+ object object
+ string method_name
+
+
+
+ method_exists retourne TRUE
+ si la méthode method_name a
+ été définie pour la classe
+ object, et sinon, retourne FALSE.
+
+
+
+
+
+
Index: phpdoc/fr/functions/com.xml
diff -u phpdoc/fr/functions/com.xml:1.6 phpdoc/fr/functions/com.xml:1.7
--- phpdoc/fr/functions/com.xml:1.6 Mon Nov 12 00:10:20 2001
+++ phpdoc/fr/functions/com.xml Wed Nov 14 12:52:33 2001
@@ -1 +1,447 @@
-Support COM pour WindowsCOM Les fonctions COM sont uniquement disponibles sur les versions Windows de PHP. Elles ont été ajoutées à partir de PHP 4.0. COMClasse COM$obj = new COM("server.object")Description La classe COM fournit un environnement d'intégration des composants (D)COM dans vos scripts PHP. Methodsstring com::comstring module_namestring server_nameint codepage Constructeur de la classe COM. Paramètres : module_name nom ou class-id du composant deamndé. server_name nom du serveur DCOM, auprès duquel le composant doit être sollicité. Si ce paramètre est &null;, localhost sera utilisé. Pour que les objets DCOM soient accessibles; il faut que com.allow_dcom ait la valeur &true; dans le fichier php.ini. codepage spécifie le code qui est utilisé pour transformer les chaînes de caractères PHP en chaînes unicode, et vice-versa. Les valeurs possibles sont CP_ACP, CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP, CP_UTF7 et CP_UTF8. Exemple COM (1)<?php// démarrage de Word$word = new COM("word.application") or die("Unable to instanciate Word");print "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->Release();$word = null;?> Example COM (2)<?php$conn = new COM("ADODB.Connection") or die("Cannot start ADO");$conn->Open("Provider=SQLOLEDB; Data Source=localhost;Initial Catalog=database; User ID=user; Password=password");$rs = $conn->Execute("SELECT * FROM sometable"); // Recordset$num_columns = $rs->Fields->Count();echo $num_columns . "\n";for ($i=0; $i < $num_columns; $i++){ $fld[$i] = $rs->Fields($i);}$rowcount = 0;while (!$rs->EOF){ for ($i=0; $i < $num_columns; $i++) { echo $fld[$i]->value . "\t"; } echo "\n"; $rowcount++; // incrémente le nombre de lignes $rs->MoveNext();}$rs->Close();$conn->Close();$rs->Release();$conn->Release();$rs = null;$conn = null;?> VARIANTclasse VARIANT$vVar = new VARIANT($var)Description Une classe container qui transforme les variables en structures VARIANT. Methodesstring variant::variantmixed valueint typeint codepage Constructeur VARIANT. Paramètres: value valeur initiale. Si omis, un objet VT_EMPTY. type spécifie le type d'objet VARIANT contenu. Les valeurs possibles VT_UI1, VT_UI2, VT_UI4, VT_I1, VT_I2, VT_I4, VT_R4, VT_R8, VT_INT, VT_UINT, VT_BOOL, VT_ERROR, VT_CY, VT_DATE, VT_BSTR, VT_DECIMAL, VT_UNKNOWN, VT_DISPATCH et VT_VARIANT. Ces valeurs sont mutuellement exclusives, mais elles peuvent être combinées avec VT_BYREF pour spécifier que c'est une valeur. Si omis le type de value est utilisé. Consultez la librairy 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. Les valeurs possibles sont CP_ACP, CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP, CP_UTF7 et CP_UTF8. com_load Crée une référence sur un composant COM Descriptionresource com_loadstring module_namestring server_namecom_load crée une nouvelle référence au composant COM module_name, et retourne une référence dessus. com_load retourne &false; en cas d'échec. com_invoke Appelle une méthode d'un composant Descriptionmixed com_invokeresource com_objectstring function_namemixed 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. com_propget Lit la valeur d'un propriété d'un composant COM Descriptionmixed com_propgetresource com_objectstring propertycom_propget est un alias de com_get. com_get Lit la valeur d'un propriété d'un composant COM Descriptionmixed com_getresource com_objectstring propertycom_get retourne la valeur de la propriété property du composant COM com_object. com_get retourne &false; en cas d'erreur. com_propput Modifie une propriété d'un composant COM Descriptionvoid com_propputresource com_objectstring propertymixed valuecom_propput est un alias de com_set. com_propset Modifie une propriété d'un composant COM Descriptionvoid com_propsetresource com_objectstring propertymixed valuecom_propset est un alias de com_propput. com_set Modifie une propriété d'un composant COM Descriptionvoid com_setresource com_objectstring propertymixed valuecom_set remplace la valeur de la propriété property du composante COM com_object par value. com_set retourne &true; en cas de succès, et &false; sinon. com_addref Incrémente le compteur de références Descriptionvoid com_addrefcom_addref incrémente le compteur de références. com_release Décrémente le compteur de références Descriptionvoid com_releasecom_release décrémente le compteur de références.
\ No newline at end of file
+
+
+
+ Support COM pour Windows
+ COM
+
+
+ Les fonctions COM sont uniquement disponibles sur les versions
+ Windows de PHP. Elles ont été ajoutées à
+ partir de PHP 4.0.
+
+
+
+
+ COM
+ Classe COM
+
+
+ $obj = new COM("server.object")
+
+
+ Description
+
+ La classe COM fournit un environnement d'intégration des composants (D)COM
+ dans vos scripts PHP.
+
+
+
+ Methods
+
+
+ string com::com
+ string module_name
+ string
+ server_name
+ int
+ codepage
+
+
+
+ Constructeur de la classe COM. Paramètres :
+
+ module_name
+
+
+ nom ou class-id du composant deamndé.
+
+
+
+ server_name
+
+
+ nom du serveur DCOM, auprès duquel le composant doit être sollicité.
+ Si ce paramètre est &null;, localhost sera utilisé.
+ Pour que les objets DCOM soient accessibles; il faut que
+ com.allow_dcom ait la valeur &true;
+ dans le fichier php.ini.
+
+
+
+ codepage
+
+
+ spécifie le code qui est utilisé pour transformer les chaînes de
+ caractères PHP en chaînes unicode, et vice-versa. Les valeurs possibles
+ sont
+ CP_ACP, CP_MACCP,
+ CP_OEMCP, CP_SYMBOL,
+ CP_THREAD_ACP, CP_UTF7
+ et CP_UTF8.
+
+
+
+
+
+
+
+ Exemple COM (1)
+
+<?php
+// démarrage de Word
+$word = new COM("word.application") or die("Unable to instanciate Word");
+print "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->Release();
+$word = null;
+?>
+
+
+
+
+
+ Example COM (2)
+
+<?php
+$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
+$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
+Initial Catalog=database; User ID=user; Password=password");
+$rs = $conn->Execute("SELECT