COM 및 .Net(Windows) com 클래스
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
소개
com 클래스를 사용하면 OLE 호환 COM 개체를 인스턴스화하고 해당 메서드를 호출하고 해당 속성에 액세스할 수 있습니다.
클래스 개요
class com extends variant {
/* Methods */
public __construct(
string $module_name,
array|string|null $server_name = null,
int $codepage = CP_ACP,
string $typelib = ""
)
}
오버로드된 메서드
반환된 객체는 오버로드된 객체입니다. 즉, PHP는 일반 클래스에서와 같이 고정된 메서드를 볼 수 없습니다. 대신 모든 속성 또는 메서드 액세스가 COM으로 전달됩니다.
PHP는 참조로 매개변수를 허용하는 메서드를 자동으로 감지하고 일반 PHP 변수를 참조로 전달할 수 있는 형식으로 자동 변환합니다. 이는 메서드를 매우 자연스럽게 호출할 수 있음을 의미합니다. 코드에 추가 노력을 기울일 필요가 없습니다.
com 예제
예제 #1 com 예 (1)
<?php
// starting word
$word = new com("word.application") or die("Unable to instantiate Word");
echo "Loaded Word, version {$word->Version}\n";
//bring it to front
$word->Visible = 1;
//open an empty document
$word->Documents->Add();
//do some weird stuff
$word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("Useless test.doc");
//closing word
$word->Quit();
//free the object
$word = null;
?>
예제 #2 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++; // increments rowcount
$rs->MoveNext();
}
$rs->Close();
$conn->Close();
$rs = null;
$conn = null;
?>
목차
- com::__construct — com class constructor