(PHP 4 >= 4.1.0, PHP 5, PHP 7)
Класс COM позволяет создавать экземпляры OLE-совместимого COM-объекта, вызывать его методы и получать доступ к его свойствам.
$module_name
[, mixed $server_name
= NULL
[, int $codepage
= CP_ACP
[, string $typelib
]]] )Возвращаемые объекты являются перегруженными, то есть PHP не видит каких либо фиксированных методов, как это происходит с обычными классами. Вместо этого свойства и доступ к методам передается через COM.
PHP автоматически определяет методы, которые обращаются к свойствам по ссылкам и автоматически преобразуют стандартные переменные PHP в вид, который можно передавать по ссылке. Это означает, что вы можете вызывать методы не внося каких либо дополнений в свой код.
Пример #1 Первый пример
<?php
// запускаем word
$word = new COM("word.application") or die("Unable to instantiate Word");
echo "Loaded Word, version {$word->Version}\n";
//делаем его активным окном
$word->Visible = 1;
//открываем пустой документ
$word->Documents->Add();
//Что то с ним делаем
$word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("Useless test.doc");
//закрываем word
$word->Quit();
//высвобождаем ресурсы объекта
$word = null;
?>
Пример #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"); // Набор записей
$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++; // увеличиваем счетчик строк
$rs->MoveNext();
}
$rs->Close();
$conn->Close();
$rs = null;
$conn = null;
?>