Ich habe ein großes Problem mit der PHP DOMDocument :: validate(), die die DTD systematisch zu fragen scheint.DOMDocument :: validate() Problem
Es ist ein großes Problem, wenn ich z. B. ein XHTML-Dokument as explained here validieren möchte.
Wie w3.org scheint alle Anforderung von einem PHP-Server zu verwerfen, was es unmöglich ist mein Dokument mit dieser Methode zu validieren ...
Gibt es eine Lösung für das?
Dank durch Voraus
[EDIT] Hier einige Präzisierungen:
/var/www/test.php:
<?php
$implementation = new DOMImplementation();
$dtd = $implementation->createDocumentType
(
'html', // qualifiedName
'-//W3C//DTD XHTML 1.0 Transitional//EN', // publicId
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-'
.'transitional.dtd' // systemId
);
$document = $implementation->createDocument('', '', $dtd);
$document->validate();
Warning: DOMDocument::validate(http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
in /var/www/test.php on line 14
Warning: DOMDocument::validate(): I/O warning : failed to load external entity "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" in /var/www/test.php on line 14
Warning: DOMDocument::validate(): Could not load the external subset "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" in /var/www/test.php on line 14
Related Frage:
nicht sicher, was das Problem ist. 'DOMDocument :: validate' validiert das Dokument basierend auf der DTD des geladenen Dokuments. – Gordon
Zum Beispiel, wenn ich diese DTD bereitstellen: http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd, wenn ich DOMDocument :: validate() aufrufen, PHP eine Anfrage senden, um die Datei zu erhalten , aber w3.org antwortet systematisch mit einem 403 Forbidden oder einem 503 Service nicht verfügbar, und PHP sendet mir die Warnung: Fehler beim Laden der externen Entität "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional. dtd " –
Ich sehe, ja. Es ist ein Bug offen dafür: http://bugs.php.net/bug.php?id=48080 – Gordon