Heim php教程 php手册 转帖:PHP4(windows版本)中的COM函数

转帖:PHP4(windows版本)中的COM函数

Jun 21, 2016 am 09:14 AM
application com gt quot word

window|函数

这几天一直在写excel转化成mysql,发现一篇文章,搜一下phpx论坛,没有这个帖子,把它转帖如下:


PHP4(windows版本)中的COM函数


  介绍

  内置于PHP4里的COM函数对于我们在win32环境下开发程序是相当有吸引力的,但是至今仍没有多少相关的技术文档。本文将以三个例子分

别处理 MS office 2000 Word 、 Excel 、 Adobe Distiller 来说明如何在PHP中使用COM函数。

  COM技术是由Microsoft在几年前提出并开发的,本文中提到的相关名词有OLE, OLE Automation, ActiveX, COM ,这些词的意思都基本一

样,都表示用一段封装的代码(对象)来完成一个windows 应用程序的一些功能。 PHP4 COM 函数可以连接一个对象实例,并使用它的方法与

属性。

如果你想使用下面的例子源码,请参考一下我的配置。

Windows 98 - MS Office 2000
Apache 1.3.9 Windows
PHP4.02 Dev (08-20-00) Running as CGI


PHP4中的COM标记

现在让我们开始吧,用PHP4的COM来实例化一个组件,需要 new 操作符和对象的 "OLE 程序标识":


$instance = new COM("$identifier");

?>

因为COM是一个PHP4的保留字,它传送这个对象的标识给一个构造函数,现在得到了这个组件的一个实例,根据OOP类的性质,我们可以很容易

地访问它的方法与属性。

例如:


$instance->[Object]->[method1]->[method2]->..->[property];

?>

就是这么简单!

OOP的结构在PHP下不能工作,(由于PHP语法的问题,属性的名字.值是非法字符,如点和圆括号等),所以PHP4提供了两个相应的函数:


bool com_set(class com_object, string property name, string property_value);

mixed com_get(class com_object, string property_name);

?>

最后,PHP4也支持DCOM技术,可以在远程计算机创建一个对象实例。


$Instance = new COM(string "Component name", string "remote_server_address");

?>

注意:这是用DCOM指令来设置PHP。在将来,PHP开发者提供Unix下对DCOM的支持。

标识、方法和属性

标识是一个如下的字串:

MS Word: "Word.Application" or "Word.Application.9"
MS Excel: "Excel.Application" or "Excel.Sheet"
ADOBE Acrobat: "Exch.application" or "PdfDistiller.PdfDistiller"

  对于最后一个标识,我要指明的是,获得正确的对象标识名不是一件容易的事。如果你不能访问VBA文档,你可以查找一下windows的注册

表,在 HKEY_CLASSES_ROOT 中寻找一下,你就可以得到一些应用程序的名字。在你的机器上有效的对象标识放在 CLSID 子文件夹下。

  应用程序一般会提供文档说明它的COM方法和属性。在office2000中,你可以运行程序,打开VBA编辑器 ,选择对象编辑器。输入应用程序

库中的一个方法名或属性名,然后,在下面的窗口中用鼠标右键选择一个类或成员名称,点帮助,你就会得到关于这个类或成员的描述。你也

可以参考 MSDN。一个 Excel 的例子如下: http://msdn.microsoft.com/library/officedev/off2000/xltocobjectmodelapplication.htm


用COM函数操作 MS Word

现在,我们开始第一个例子吧:


#*********************************************************
# 本例来自Zend站点,略有改动
# 打开一个word实例,并新建一个文档Useless test.doc
# 输入一行文字 "This is a test2..."
#*********************************************************

#实例化一个对象

$word = new COM("word.application") or die("Unable to instantiate Word");

#取得并显示版本

print "Loaded Word, version {$word->Version}
";

#另一种方法去取得版本

$testversion = com_get($word->application,version);

print "Version using Com_get(): $testversion
";

#使其可见

$word->Visible = 1;

#创建新文件

$word->Documents->Add();

#写字符

$word->Selection->TypeText("This is a test...");

#保存

$word->Documents[1]->SaveAs("Useless test.doc");

#关闭

$word->Quit();

?>

你只要花几分钟来读这个程序,并参考Word的OLE 技术文档,你将学到几乎是你在自己程序中所需的全部的操作。

MS Excel在使用PHP的COM函数

  如同上面的Word的例子一样,你应学习这个例子的同时参考Excel的Visual Basic 编辑器中的对象浏览器的帮助文档。


#打开workbook和它的sheet,
#本例使用一个电子表格是Excel安装时自带的SOLVSAMP.XLS

$workbook = "C:Program FilesMicrosoft officeOfficeSamplesSOLVSAMP.XLS";
$sheet = "Quick Tour";

#实例化一个组件的对象
$ex = new COM("Excel.sheet") or Die ("Did not connect");

#取程序名称和版本
print "Application name:{$ex->Application->value}
" ;
print "Loaded version: {$ex->Application->version}
";

#打开工作本使我们可使用它
$wkb = $ex->application->Workbooks->Open($workbook) or Die ("Did not open");

#预保存原来的工作本,创建一个工作本的复本
$ex->Application->ActiveWorkbook->SaveAs("Ourtest");
#$ex->Application->Visible = 1; #本句去注释让Excel可见

# 读写一个单元格在一个新的工作表中
# 我们可以读到这个单元格 E11 (Advertising in the 4th. Quarter)
$sheets = $wkb->Worksheets($sheet); #Select the sheet
$sheets->activate; #Activate it
$cell = $sheets->Cells(11,5) ; #Select the cell (Row Column number)
$cell->activate; #Activate the cell
print "Old Value = {$cell->value}
"; #Print the value of the cell:10000
$cell->value = 15000; #Change it to 15000
print "New value = {$cell->value}
";#Print the new value=15000

#最后,用新值重新计算这个单元格
$sheets->Calculate;
#必须的如果要计算,手动则是可选的
#可看到效果总价值(E13单元格)
$cell = $sheets->Cells(13,5) ; #Select the cell (Row Column number)
$number = Number_format($cell->value);
print "New Total cost =$$number - was $47,732 before.
";
#根据计算公式,广告影响了公司的开销,这里将显示 $57,809

#使用Excel内建的函数
# PMT(percent/12 months,Number of payments,Loan amount)
$pay = $ex->application->pmt(0.08/12,10,10000);
$pay = sprintf("%.2f",$pay);
print "Monthly payment for $10,000 loan @8% interest /10 months: $ $pay
";

#Should print monthly payment = $ -1,037.03

#可选,保存
$ex->Application->ActiveWorkbook->SaveAs("Ourtest");
#关闭,不提问
$ex->application->ActiveWorkbook->Close("False");
unset ($ex);

?>

  这个例子让你的PHP与Excel一同工作了,当然,也有更多的对象可以使用,访问一个自已写的OOP封装类也与访问excel一样容易。

用PHP的COM访问 Adobe Distiller

  这最后一个例子不是MS程序了,如果你的程序有一个PostScript文件,你会对这个有兴趣的,改写(蒸馏)它成为一个PDF文档. Adobe 有一

个程序叫 Distiller ,它可以生成一个实例。代码如下:


$pdf = new COM("pdfdistiller.pdfdistiller.1");

?>

  有一点要注意的,是在Distiller 的文档中给出的这个OLE标识名 "pdfdistiller" 是无效的。

蒸馏一个文件的最基本的方法是:


$pdf->FileToPdf ($psfile, strOutputPDF '', strJobOptions "");

?>

这 $psfile 是这个PostScript的文件名, strOutputPDF 是输出文件PDF的文件名。 StrJobOptions 是Distiller的参数文件名,最后两个参数

是可选的,默认是同一名字。 这PS文件名与PDF文件名,使用这个默认的Job options 文件。例如:


$pdf->FileToPdf ($psfile, "", "");
#这儿$psfile 可以是 Myfile.ps 将返回 Myfile.pdf 文件。

?>

在Distiller中有更多的方法和属性能被用。如果你感兴趣,请参考一下Adobe的技术文档。


中止/可能的问题

  如果你的代码中发生了什么错误,你可能会创建了一个实例,但没有正常地关闭它。最糟的是,这个应用程序可能被这个实例所保持,结

果,在你的程序列表中就存在多份这个程序的副本,即使你更正了这个错误也会干扰你的结果。解决方法是:修正一个bug以来要及时清除它们

在你重新开始运行之前,用 并结束任务。同样的原因,在你的代码最后,也要及时关闭这个程序并删除这个实例。

你有一些技巧在处理 com_get 和 com_set的异常时。例如:
$Version = Com_get($instance->Application,"Version");

将会在Word中工作但在Excel中会产生一个错误。

有一些对象在PHP4中是不能实例化的,这是因为这个程序要一个自定义的接口,但PHP4不支持。


为什么我们要用它?

  我希望这三个例子可以给你一些思考的线索,PHP的COM允许你在PHP的脚本中访问windows4的程序。这个代码比ASP简单并且能集成其它的

PHP对数据库强大的支持功能。Microsoft 在各个方面都大力销售这个COM 技术,在不同的名称和结构下,如 COM+(Combine COM with

Microsoft Transaction Server MTS), ADO, OLE DB, OWC, Windows DNA, 等等。 PHP 和 Apache的结合,提供了一个开放源码的解决方案。



Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So deaktivieren Sie den automatischen Zeilenumbruch in Word So deaktivieren Sie den automatischen Zeilenumbruch in Word Mar 19, 2024 pm 10:16 PM

Beim Bearbeiten von Inhalten in einem Word-Dokument werden Zeilen möglicherweise automatisch umgebrochen. Wenn zu diesem Zeitpunkt keine Anpassung vorgenommen wird, hat dies große Auswirkungen auf unsere Bearbeitung und bereitet den Leuten große Kopfschmerzen. Tatsächlich handelt es sich um ein Problem mit dem Lineal. Im Folgenden werde ich die Lösung zum Aufheben des automatischen Zeilenumbruchs in Word vorstellen. Nachdem Sie ein Word-Dokument geöffnet und Text eingegeben haben, springt der Text beim Kopieren und Einfügen möglicherweise in eine neue Zeile. In diesem Fall müssen Sie die Einstellungen anpassen, um dieses Problem zu lösen. 2. Um dieses Problem zu lösen, müssen wir zunächst die Ursache dieses Problems kennen. Zu diesem Zeitpunkt klicken wir in der Symbolleiste auf „Ansicht“. 3. Klicken Sie dann unten auf die Option „Lineal“. 4. Zu diesem Zeitpunkt werden wir feststellen, dass über dem Dokument ein Lineal mit mehreren konischen Markierungen darauf erscheint.

Ausführliche Erklärung zur Anzeige des Lineals in Word und zur Bedienung des Lineals! Ausführliche Erklärung zur Anzeige des Lineals in Word und zur Bedienung des Lineals! Mar 20, 2024 am 10:46 AM

Wenn wir Word verwenden, verwenden wir oft Lineale, um den Inhalt schöner zu bearbeiten. Sie sollten wissen, dass zu den Linealen in Word horizontale und vertikale Lineale gehören, mit denen Sie die Seitenränder, Absatzeinzüge, Tabulatoren usw. des Dokuments anzeigen und anpassen können. Wie zeigt man also das Lineal in Word an? Als Nächstes zeige ich Ihnen, wie Sie die Linealanzeige einstellen. Studierende in Not sollten es schnell abholen! Die Schritte sind wie folgt: 1. Zuerst müssen wir das Word-Lineal aufrufen. Das Standard-Word-Dokument zeigt das Word-Lineal nicht an. Wir müssen nur auf die Schaltfläche [Ansicht] in Word klicken. 2. Dann finden wir die Option [Lineal] und überprüfen sie. Auf diese Weise können wir das Wortlineal anpassen! ja oder nein

So fügen Sie einem Word-Dokument eine handschriftliche Unterschrift hinzu So fügen Sie einem Word-Dokument eine handschriftliche Unterschrift hinzu Mar 20, 2024 pm 08:56 PM

Word-Dokumente sind aufgrund ihrer leistungsstarken Funktionen weit verbreitet und können nicht nur verschiedene Formate wie Bilder und Tabellen usw. in Word einfügen, sondern für die Integrität und Authentizität der Dateien erfordern viele Dateien am Ende eine manuelle Signatur des Dokuments. Es klingt wie folgt: Wie löst man komplexe Probleme? Heute werde ich Ihnen beibringen, wie man einem Word-Dokument eine handschriftliche Unterschrift hinzufügt. Scannen oder fotografieren Sie die handschriftliche Unterschrift mit einem Scanner, einer Kamera oder einem Mobiltelefon und nehmen Sie dann mit PS oder einer anderen Bildbearbeitungssoftware den erforderlichen Zuschnitt am Bild vor. 2. Wählen Sie „Einfügen – Bild – Aus Datei“ im Word-Dokument an der Stelle, an der Sie die handschriftliche Unterschrift einfügen möchten, und wählen Sie die zugeschnittene handschriftliche Unterschrift aus. 3. Doppelklicken Sie auf das Bild der handschriftlichen Unterschrift (oder klicken Sie mit der rechten Maustaste auf das Bild und wählen Sie „Bildformat festlegen“). Daraufhin wird „Bildformat festlegen“ angezeigt.

So legen Sie Seitenränder für Word fest So legen Sie Seitenränder für Word fest Mar 19, 2024 pm 10:00 PM

Unter den Bürosoftwares ist Word eine unserer am häufigsten verwendeten Software. Die von uns erstellten Textdokumente müssen bei Bedarf in Papierform eingereicht werden. Vor dem Drucken muss das Layout festgelegt werden . bessere Ergebnisse erzielen. Die Frage ist also: Wie legt man Seitenränder in Word fest? Wir haben spezifische Kurserklärungen, die Ihnen helfen, Ihre Zweifel auszuräumen. 1. Öffnen oder erstellen Sie ein neues Word-Dokument und klicken Sie in der Menüleiste auf das Menü „Seitenlayout“. 2. Klicken Sie auf die Schaltfläche „Ränder“ der Option „Seite einrichten“. 3. Wählen Sie in der Liste einen häufig verwendeten Seitenrand aus. 4. Wenn in der Liste keine passenden Ränder vorhanden sind, klicken Sie auf „Benutzerdefinierte Ränder“. 5. Das Dialogfeld „Seite einrichten“ wird angezeigt. Geben Sie jeweils die Option „Ränder“ ein.

So zeichnen Sie eine gepunktete Linie in Word So zeichnen Sie eine gepunktete Linie in Word Mar 19, 2024 pm 10:25 PM

Word ist eine Software, die wir häufig in unserem Büro verwenden. Sie verfügt über viele Funktionen, die uns die Arbeit erleichtern können. Bei einem großen Artikel können wir beispielsweise die darin enthaltene Suchfunktion verwenden, um herauszufinden, dass ein bestimmtes Wort im Volltext falsch ist , damit wir es direkt ersetzen können. Wenn Sie das Dokument an Ihre Vorgesetzten senden, können Sie das Dokument verschönern, damit es besser aussieht usw. Nachfolgend wird Ihnen der Herausgeber die Schritte zum Zeichnen mitteilen Gepunktete Linie in Word. Lasst uns gemeinsam lernen! 1. Zuerst öffnen wir das Word-Dokument auf dem Computer, wie in der Abbildung unten gezeigt: 2. Geben Sie dann eine Textzeichenfolge in das Dokument ein, wie im roten Kreis in der Abbildung unten gezeigt: 3. Drücken Sie anschließend und Halten Sie [Strg+A] gedrückt. Wählen Sie den gesamten Text aus, wie im roten Kreis in der Abbildung unten dargestellt: 4. Klicken Sie oben in der Menüleiste auf [Start].

Wo ist die Schattierungseinstellung in Word? Wo ist die Schattierungseinstellung in Word? Mar 20, 2024 am 08:16 AM

Wir verwenden oft Word für Büroarbeiten, aber wissen Sie, wo sich die Schattierungseinstellungen in Word befinden? Heute werde ich Ihnen die spezifischen Operationsschritte mitteilen, schauen Sie sich das an, Freunde! 1. Öffnen Sie zunächst das Word-Dokument, wählen Sie einen Absatz mit Textabsatzinformationen aus, der mit einer Schattierung hinzugefügt werden soll, klicken Sie dann auf die Schaltfläche [Start] in der Symbolleiste, suchen Sie den Absatzbereich und klicken Sie auf die Dropdown-Schaltfläche rechts (wie im roten Kreis in der Abbildung unten dargestellt) ). 2. Nachdem Sie auf die Dropdown-Box-Schaltfläche geklickt haben, klicken Sie in den Optionen des Popup-Menüs auf die Option [Rand und Schattierung] (wie im roten Kreis in der Abbildung unten dargestellt). 3. Klicken Sie im Popup-Dialogfeld [Rand und Schattierung] auf die Option [Schattierung] (wie im roten Kreis in der Abbildung unten dargestellt). 4. Wählen Sie in der gefüllten Spalte eine Farbe aus

Spezifische Schritte zum Löschen des Abwärtspfeils in Word! Spezifische Schritte zum Löschen des Abwärtspfeils in Word! Mar 19, 2024 pm 08:50 PM

Wenn Sie im Büroalltag einen Text von einer Website kopieren und direkt in Word einfügen, sehen Sie häufig einen [Abwärtspfeil], der durch Auswählen gelöscht werden kann, wenn es jedoch zu viele sind solche Symbole. Gibt es also eine schnelle Möglichkeit, alle Pfeile zu löschen? Deshalb werde ich Ihnen heute die spezifischen Schritte zum Löschen des Abwärtspfeils in Word mitteilen! Zunächst einmal steht der [Abwärtspfeil] in Word tatsächlich für [Manueller Zeilenumbruch]. Wir können alle [Abwärtspfeile] durch [Absatzmarkierung]-Symbole ersetzen, wie in der Abbildung unten gezeigt. 2. Dann wählen wir die Option [Suchen und Ersetzen] in der Menüleiste (wie im roten Kreis in der Abbildung unten dargestellt). 3. Klicken Sie dann auf den Befehl [Ersetzen]. Es erscheint ein Popup-Fenster. Klicken Sie auf [Sondersymbole].

So zeichnen Sie eine Tabelle in Word So zeichnen Sie eine Tabelle in Word Mar 19, 2024 pm 11:50 PM

Word ist eine sehr leistungsfähige Office-Software. Word bietet im Vergleich zu WPS mehr Vorteile bei der Detailverarbeitung. Insbesondere wenn die Dokumentbeschreibung zu komplex ist, ist die Verwendung von Word in der Regel problemloser. Wenn Sie der Gesellschaft beitreten, müssen Sie daher einige Tipps zur Verwendung von Wörtern lernen. Vor einiger Zeit hat mir mein Cousin eine solche Frage gestellt. Ich sehe oft, wie andere Leute Tabellen zeichnen, wenn sie Word verwenden, und ich fühle mich auf einem sehr hohen Niveau. Ich habe damals gelacht, es schien ein hochrangiger Inhalt zu sein, aber tatsächlich waren nur drei Schritte erforderlich, um zu funktionieren. Wissen Sie, wie man eine Tabelle in Word zeichnet? 1. Öffnen Sie Word, wählen Sie die Stelle aus, an der Sie die Tabelle einfügen möchten, und suchen Sie in der oberen Menüleiste nach der Option „Einfügen“. 2. Klicken Sie auf die Option „Tabelle“ und es erscheinen dicht gepackte kleine Würfel.

See all articles