Alexander (HH): jetzt mit error_reporting(E_ALL) ... *grrr*

Beitrag lesen

Moin Moin!

*Grrr*... error_reporting(E_ALL) und schon kommt was: "Datei konnte nicht gefunden werden".

Woher kommt die Meldung? Word oder PHP?

Jetzt brat mir einer aber einen Storch! Folgende Schreibweisen erzeugen immer wieder diese Fehlermeldung:
w://w-00180.doc
w:/w-00180.doc
w:\w-00180.doc
w:\w-00180.doc

Die Datei heißt wirklich 'w-00180.doc' und liegt auf Laufwerk 'w:'. Wie sonst soll ich sie denn bitteschön referenzieren, wenn obige Schreibweisen nicht helfen?

Die Windows-API verträgt Forward Slashes, Word vermutlich nicht. Bleiben also Backslashes. PHP verwurstet innerhalb von Strings einen für sich selbst, Du mußt also jeden Backslash, der in der OLE-Schnittstelle ankommen soll, in PHP-Strings doppelt schreiben.

Mit etwas "Glück" verwurstet Word den String auch nochmal, so dass Du nochmal Backslashes verdoppeln mußt.

Vielleicht erforschst Du die OLE-API erst einmal mit VB oder irgendetwas anderem aus der MS-Ecke? Oder Du suchst Dir einen Word-Leser, der ohne Word auskommt.

Bei DocX hätte sich natürlich angeboten, das DocX stumpf mit ZIP zu entpacken und das enthaltene XML mit üblichen Tools zu verwursten.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".