(PHP 4 >= 4.1.0, PHP 5, PHP 7)
La classe COM vous permet d'instancier un objet COM compatible OLE, d'appeler ses méthodes et d'accéder à ses propriétés.
$obj = new COM("Application.ID")
$module_name
[, mixed $server_name
[, int $codepage
[, string $typelib
]]] )Constructeur de la classe COM. Paramètres :
NULL
, l'objet courant utilisera la valeur par défaut pour l'application.
La valeur par défaut est habituellement la machine locale bien que l'administrateur
peut avoir configuré l'application pour qu'elle s'exécute sur une machine différente.
Si vous spécifiez une valeur non-NULL
pour le serveur, PHP peut refuser de charger
l'objet tant que l'option de configuration ne vaut pas TRUE
.
Si server_name
est un tableau, il doit contenir
les éléments suivants (sensible à la casse). Notez qu'ils sont tous optionnels (bien que vous devez
spécifier et USERNAME, et PASSWORD) ; si vous omettez les paramètres du serveur,
le serveur par défaut sera utilisé (comme mentionné plus haut), et l'instanciation de l'objet ne
sera pas affectée par la directive.
clé server_name |
type | description |
---|---|---|
Server | string | Le nom du serveur. |
Username | string | L'utilisateur de connexion. |
Password | string | Le mot de passe de l'utilisateur Username . |
Flags | integer | Une ou plusieurs des constantes suivantes
CLSCTX_INPROC_SERVER ,
CLSCTX_INPROC_HANDLER ,
CLSCTX_LOCAL_SERVER ,
CLSCTX_REMOTE_SERVER ,
CLSCTX_SERVER et
CLSCTX_ALL . La valeur par défaut est
CLSCTX_SERVER si vous omettez également
Server , ou bien
CLSCTX_REMOTE_SERVER si vous spécifiez un serveur.
Vous devriez consulter la documentation Microsoft concernant
CoCreateInstance pour plus d'informations sur ces constantes ;
vous ne devriez pas les utiliser dans un cas typique.
|
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.
L'objet retourné est un objet surchargé, ce qui signifie que PHP ne voit aucune méthode fixe comme il le fait avec les classes habituelles ; au lieu de cela, chaque accès à une propriété ou une méthode est effectué à travers COM.
PHP 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.
Exemple #1 Exemple avec COM (1)
<?php
/* Démarrage de Word */
$word = new COM("word.application") or die("Impossible d'instancier l'application Word");
echo "Word lancé, version {$word->Version}\n";
/* Amener Word devant */
$word->Visible = 1;
/* Cree un document vide */
$word->Documents->Add();
/* Quelques commandes */
$word->Selection->TypeText("Ceci est un test...");
$word->Documents[1]->SaveAs("test.doc");
/* Fermeture de word */
$word->Quit();
/* Libération des ressources */
$word = null;
?>
Exemple #2 Exemple avec COM (2)
<?php
$conn = new COM("ADODB.Connection") or die("Impossible de démarrer ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password");
/* Jeux d'enregistrement */
$rs = $conn->Execute("SELECT * FROM sometable");
$num_columns = $rs->Fields->Count();
echo $num_columns . "\n";
for ($i=0; $i < $num_columns; $i++) {
$fld[$i] = $rs->Fields($i);
}
$rowcount = 0;
while (!$rs->EOF) {
for ($i=0; $i < $num_columns; $i++) {
echo $fld[$i]->value . "\t";
}
echo "\n";
/* Incrémentation */
$rowcount++;
$rs->MoveNext();
}
$rs->Close();
$conn->Close();
$rs = null;
$conn = null;
?>