Probleme mit DOMDocument in PHP: 5.2.6 im neuen Xampp 1.6.7

Alles, was PHP betrifft, kann hier besprochen werden.

Probleme mit DOMDocument in PHP: 5.2.6 im neuen Xampp 1.6.7

Postby Walter_vdV » 10. July 2008 15:32

Ich versuche zur zeit ein Wiki aufzubauen und benutze dazu als Basis MediaWiki.
MediaWiki benutzt den Konstruktor

Code: Select all
$dom = new DOMDocument;


Mit der php-Version 5.2.5 aus Xampp 1.6.6a funkioniert das auch noch. In der neuen Version erhalte ich nun die Fehlermeldung, dass der Konstruktor mindestens einen Parameter erwartet.
Ich gehe mal davon aus, dass die DOM-Funktionen in php_domxml.dll definiert sind. Wenn man die Versionen der dll's vergleicht so hat sich diese von 5.2.5.5 nach 5.2.6.6 geändert. Also vermutlich eine, unter anderem, Änderung des Konstruktors. Nach meinem php-Manual v. 05.12.07, was Neueres kenn ich nicht, können dem Konstruktor optional 2 Parameter übergeben werden, in der Form (__construct ( [string $version [, string $encoding]]):

Code: Select all
$dom = new DOMDocument('1.0', 'iso-8859-1');


Also mal ausprobiert, diese Parameter können ja nicht schaden. Nun bekomme ich die Fehlermeldung, dass Parameter 2 vom Typ long sein muss. Also folgende Version probiert (mind. 1 parameter s.oben):

Code: Select all
$dom = new DOMDocument('1.0');


NUn bekomme ich einen Parse-Error.

Kurz und gut, welche Parameter erwartet der Konstruktor nun, wo kann man sowas nachlesen, wie bekommt man solche einschneidenden Veränderungen mit. In diesem Fall ist es evtl. noch einfach, ich möchte aber nicht in bestehendem Code, wie in Media-Wiki, grosse Veränderungen vornehmen ohne dann zu wissen, welche Auswirkungen das hat.

Ich habe dann noch versucht die neue dll durch die alte zu ersetzen. Komischerweise taucht dann der gleiche Fehler auf. (Ja, ich habe den Apache neu gestartet, sogar den PC).

Ein völlig konfuser Hobby-Programmierer hofft auf Hilfe.
Danke im Voraus.

PS. Was ist eigentlich der Unterschied, ausser den Dateigrössen, zwischen den dll's in den php-Verzeichnisen "ext" und "extension"?
Walter_vdV
 
Posts: 48
Joined: 20. January 2005 20:09

Postby Wiedmann » 10. July 2008 16:36

Ich gehe mal davon aus, dass die DOM-Funktionen in php_domxml.dll definiert sind.

Sollte diese Extension bei dir aktiviert sein, und du benutzt PHP5, deaktiviere diese.

Nach meinem php-Manual v. 05.12.07, was Neueres kenn ich nicht,

http://de.php.net/manual/en/index.php

PS. Was ist eigentlich der Unterschied, ausser den Dateigrössen, zwischen den dll's in den php-Verzeichnisen "ext" und "extension"?

./ext = PHP5
./extension = PHP4
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Walter_vdV » 10. July 2008 19:54

Danke Wiedmann, funktioniert. Jetzt kapiere ich auch was im Manual steht aber da braucht es schon Deinen Hinweis. Ja und php_domxml.dll ist in Xampp 1.6.6a deaktiviert und in Xampp 1.6.7 aktiviert. Jetzt ist alles klar, aber da muss man schon sehr verquer denken.
Stellt sich für mich nur noch die Frage, wenn es für PHP4 ein eigenes extension-Verzeichnis gibt warum ist dann die dll noch im ext-Verzeichnis
Walter_vdV
 
Posts: 48
Joined: 20. January 2005 20:09

Postby Wiedmann » 10. July 2008 21:04

wenn es für PHP4 ein eigenes extension-Verzeichnis gibt warum ist dann die dll noch im ext-Verzeichnis

Weil es diese Extension auch für PHP5 gibt (und wenn geladen, die DOM-Extension überschreibt).
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Walter_vdV » 10. July 2008 21:08

Im Manual steht aber, falls dies noch aktuell ist, das man domxml mit PHP5 nicht mehr benutzen soll.
Walter_vdV
 
Posts: 48
Joined: 20. January 2005 20:09

Postby Wiedmann » 10. July 2008 21:21

das man domxml mit PHP5 nicht mehr benutzen soll.

Yup, eben weil sie die normale DOM-Extension überschreibt.

(Und wenn sie beim standardmässig XAMPP geladen ist, ist das ein Bug. Für manche mag es aber durchaus einen Grund geben diese zu benutzen, und der kann diese dann laden)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Walter_vdV » 10. July 2008 23:00

Danke Wiedmann für Deine Bemühungen. Ich wollte es jetzt genau wissen, weil das ganze Problem für mich so unlogisch angefangen hat, natürlich auch bedingt durch meine Unwissenheit in diesem Fall. Als Bug in Xampp würde ich das nicht bezeichnen, eher als Versehen. Aber was wichtiges habe ich neben anderen Dingen gelernt -> php.ini-Dateien vergleichen bei vermeintlichen Fehlern.
Walter_vdV
 
Posts: 48
Joined: 20. January 2005 20:09

Auch ich habe das Problem

Postby watzmann » 16. July 2008 15:21

Hat sich erledigt. Ich habe in einem Anfall geistiger Umnachtung die php.ini im PHP-Verzeichnis editiert. Das ist natürlich wenig erfolgversprechend, da (wenn man 3,2 Sekunden nachdenkt) die php.ini im apache/bin Verzeichnis geändert werden muss. Nur dann bringt der Neustart des Apache wirklich Sinn. Soweit musste ich erstmal denken, nach einem halben Dutzend Neuinstallationsvesuchen und einem Nachmittag rumrätseln. Man kann ganz schön vernagelt sein...

------------------------------------------------------------------------------------

Hi,

Ich gehe mal schwer davon aus, dass mich das gleiche Problem erwischt hat, die Fehlermeldung (beim Öffnen eines frisch installierten MediaWiki) lautet:

Warning: domdocument::domdocument() expects at least 1 parameter, 0 given in E:\xampp\htdocs\mediawiki-1.12.0\includes\Preprocessor_DOM.php on line 566

Fatal error: Call to undefined method domdocument::loadXML() in E:\xampp\htdocs\mediawiki-1.12.0\includes\Preprocessor_DOM.php on line 568

i
Wiedmann wrote:
Ich gehe mal davon aus, dass die DOM-Funktionen in php_domxml.dll definiert sind.

Sollte diese Extension bei dir aktiviert sein, und du benutzt PHP5, deaktiviere diese.



Also habe ich flugs (wie hin diesem Thread gelesen) in der Datei php.ini den Eintrag extension=php_domxml.dll mittels Semikolon auskommentiert. Da ich den Eintrag auch in der php5.ini gefunden habe, wurde er dort ebenfalls auskommentiert.

Nur leider bleibt das Problem vorhanden, die Fehlermeldung bleibt unverändert (und natürlich habe ich zum Schluss auch den Rechner neu gestartet...). XAMPP 1.6.7 mit PHP5 ist frisch installiert. Alle mit XAMPP gekommenen Tools laufen. Als wenig PHP Bewanderter bin ich etwas ratlos.

Könnte es sein, dass MediaWiki auf diese Funktion setzt? So würde ich auf den zweiten Blick die Fehlermeldung interpretieren. Aber dass das Auskommentieren der Extension so garkeine Wirkung hat, ist auch verwirrend.

CIAO
Wolfgang
watzmann
 
Posts: 1
Joined: 16. July 2008 15:05

Postby Walter_vdV » 17. July 2008 10:57

@watzmann, man kann es ja mal mit der falschen ini-Datei probieren, schadet ja nicht :-)
Nichts für ungut aber mir geht es manchmal auch so, da ist man wie vernagelt und suckelt sich an einem Problem fest, wo sich dann hinterher herausstellt, dass es gar keines ist!
Walter_vdV
 
Posts: 48
Joined: 20. January 2005 20:09

domxml deaktivieren: Lösung

Postby Ulukai » 02. September 2008 18:15

Hallo,

bin gerade auch auf dieses umständliche Problem gestossen.
Folgende Lösung unter Xampp 1.6.7
Die verwendete php.ini liegt unter ${xampp-installation-dir}/apache/bin/php.ini
Dort mit einem Semikolon die Zeile in der die extension aktiviert wird auskommentieren:
;extension=php_domxml.dll
xampp-apache neu starten. Fertig.

Gefunden habe ich es, weil in der apache/conf/extra/httpd-xampp.conf das php5-Modul aus apache/bin geladen wird.

EDIT: So und jetzt habe ich auch gelesen, dass die Lösung bereits im Thread stand, ist mir wohl beim ersten mal lesen irgendwie entgangen .. tss tss.. :)

Viele Grüße,

Ulukai
Ulukai
 
Posts: 1
Joined: 02. September 2008 18:10


Return to PHP

Who is online

Users browsing this forum: No registered users and 3 guests