PHP Doku:: Dokument beginnen - function.xmlwriter-start-document.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzXML-ManipulationXMLWriterXMLWriter FunktionenXMLWriter->startDocument

Ein Service von Reinhard Neidl - Webprogrammierung.

XMLWriter Funktionen

<<XMLWriter->startComment

XMLWriter->startDTDAttlist>>

XMLWriter->startDocument

(PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)

XMLWriter->startDocumentDokument beginnen

Beschreibung

Objektorientiert:

bool XMLWriter::startDocument ([ string $version [, string $encoding [, string $standalone ]]] )

Prozedural:

bool xmlwriter_start_document ( resource $xmlwriter [, string $version [, string $encoding [, string $standalone ]]] )

Beginnt ein neues Dokument.

Parameter-Liste

xmlwriter

Nur für prozedurale Aufrufe. Die XMLWriter-resource, die bearbeitet werden soll. Diese Ressource wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

version

Versionsnummer des Dokuments als Teil der XML-Deklaration. Standardmäßig 1.0.

encoding

Kodierung des Dokuments als Teil der XML-Deklaration. Standardmäßig NULL.

standalone

yes oder no. Standardmäßig NULL.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
icepick dot pt at hotmail dot com
30.03.2009 23:25
I was having a very hard time triyng to use:

$writer->startDocument( '1.0' , 'Windows-1252' );

Somehow this caused the generation of an empty xml file, and I could not figure out why.
When all other efforts failed I asked for help to the team that developed the XMLwriter extension, and got a very quick reply as follows:

Quote:
==============================
Windows-1252 support is only available if libxml2 is link with iconv
support (it usually is, but there are exceptions). I know on my Mac, the
built in libxml2 doesnt provide iconv support - they go with some
Unicode hack which doesnt provide it, so I had to build my own. It is
built by default (and your code works) on my linux machines.
 
It is possible to create the XML without a declaration, which means you
could add it manually, but if you use any characters that are differnt
between UTF-8 and Windows-1252, the encoding would be wrong in the
document, so do not recommend.
==============================

Then light was made on my head: I am using a linux server distribution that by default is still running PHP 4.3. A few months ago I decided to force the upgrade of PHP to the newest version 5.1.6 at that time, and that has brougth me the XMLwriter extension that I am now using. But clearly there are compatibility issues betwen the rest of the server's defaults and PHP 5 wich is probably why it's development team has not upgraded yet.

Let's hope all the remaining environments catch up with this extension. It is in fact most handy.

And in the meantime, I have figured out a (not recomended, obviously) workaroud that works for me:

Instead of using two parameters, I used only the first one:

$writer->startDocument( '1.0" encoding="Windows-1252' );

this will output:

<?xml version="1.0" encoding="Windows-1252"?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)