(No version information available, might be only in CVS)
COM — Classe COM
$obj = new COM("Application.ID")
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.
Constructeur de la classe COM. Paramètres :
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 Configuration à l'exécution la directive.
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 documentation Microsoft concernant CoCreateInstance pour plus d'informations sur ces constantes ; vous ne devriez pas les utiliser dans un cas typique. |
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.
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.
Ajoute artificiellement un compteur de référence à l'objet COM.
Vous ne devriez jamais avoir besoin d'utiliser cette méthode. Il existe un complément logique à la méthode Release() ci-dessous.
Supprime artificiellement un compteur de référence à un objet COM.
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.
Ces pseudo-méthodes ne sont valables que si com_isenum() retourne TRUE et dans ce cas, elles cachent toute autre méthode portant le même nom qui pourrait provenir de l'objet COM. Ces méthodes ont été éliminées de PHP 5, et vous devez utiliser Exemples en lieu et place.
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.
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.
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.
Replace l'itération au début.
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;
?>