Die com-Klasse

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

Einführung

Die com-Klasse erlaubt Ihnen, ein OLE-kompatibles COM-Objekt zu erzeugen, seine Methoden aufzurufen und auf seine Eigenschaften zuzugreifen.

Klassenbeschreibung

com extends variant {
/* Methoden */
__construct ( string $module_name [, mixed $server_name = NULL [, int $codepage = CP_ACP [, string $typelib ]]] )
}

Überladene Methoden

Das zurückgegebene Objekt ist überladen, was bedeutet, dass PHP keine bestimmten Methoden kennt, wie das normalerweise der Fall ist; statt dessen wird jeder Eigenschafts- oder Methodenzugriff an COM weitergereicht.

PHP erkennt automatisch Methoden, die Referenzparameter erwarten, und wird reguläre PHP-Variablen automatisch in eine Form umwandeln, die per Referenz übergeben werden kann. Das heißt, das die Methode sehr natürlich aufgerufen werden kann; es ist kein Zusatzaufwand nötig.

com-Beispiele

Beispiel #1 com-Beispiel 1

<?php
// Word starten
$word = new com("word.application") or die("Konnte Word nicht instanziieren");
echo 
"Word geladen, Version {$word->Version}\n";

//sichtbar machen
$word->Visible 1;

//ein leeres Dokument öffnen
$word->Documents->Add();

//irgendetwas damit tun
$word->Selection->TypeText("Dies ist ein Test...");
$word->Documents[1]->SaveAs("Nutzloser Test.doc");

//Word schließen
$word->Quit();

//Objekt freigeben
$word null;
?>

Beispiel #2 com-Beispiel 2

<?php

$conn 
= new com("ADODB.Connection") or die("Konnte ADO nicht starten");
$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++;            // Zeilennummer hochzählen
    
$rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs null;
$conn null;

?>

Inhaltsverzeichnis