Donnerstag, 6. Juli 2006

PHP

Fatal error: Cannot clone object of class SimpleXMLElement due to zend.ze1_compatibility_mode

Der Kompatibilitätsmodus von Zend hilft vielleicht PHP4 Scripte unter PHP5 laufen zu lassen, doch kann er auch PHP5 Scripte so beeinflussen, dass das Script nicht mehr laufen kann...

Problem

Ein Script von mir, welches per simplexml_load_file eine XML Datei lädt funktionierte plötzlich nicht mehr. Ich bin der Sache auf den Grund gegangen indem ich erstmal das error_reporting auf E_ALL gestellt habe. Das zeigt nähmlich alle Ausgaben von PHP an, was man im Produktivbetrieb mit einer 0 wieder deaktiveren sollte.

Nachdem ich das Script wieder aufgerufen hatte, bekam ich folgende Fehlermeldung: Fatal error: Cannot clone object of class SimpleXMLElement due to 'zend.ze1_compatibility_mode'. Der Code der das verursachte könnte ich in Listing 1 sehen.

Lösung

Die erste Möglichkeit ist, in der php.ini den Kompatibilitätsmodus von Zend wieder auszuschalten. Das wäre aber die Holzhammermethode, da noch die meisten Scripte für PHP4 sind und den Zend-Kompatibilitätsmodus brauchen.

Die andere Möglichkeit ist, über den vhost.conf Eintrag des Apache den Wert zu ändern. Das kann man mit einem:
php_admin_flag zend.ze1_compatibility_mode Off
erreichen. Danach ein Neustrat des Apache und alles sollte wieder funktionieren

Die dritte Möglichkeite wäre, gezielter den Kompatibilitätsmodus von Zend auszuschalten. Das kann man einfach direkt im Script machen, solange die Funktion ini_set erlaubt ist. Also folgendes einfügen
ini_set ('zend.ze1_compatibility_mode', 0);
und der Zend-Kompatibilitätsmodus ist ausgeschaltet.



Listing 1

Download Code!

  1.  
  2. // ...Viel PHP Code
  3. // $xmlTarget enthält den Pfad zu XML Datei.
  4. $xmlObject = simplexml_load_file($xmlTarget);
  5.  
Bewertung: keine, 0 Stimme(n) 1697 Klicks
PHP
Von Mr.Foo in PHP am 06.07.06@15:39 Uhr

Trackbacks
Trackback für spezifische URI dieses Eintrags

Keine Trackbacks

6 Kommentare
Ansicht der Kommentare: (Linear | Verschachtelt)

tex - #1 - 20.08.2007 10:16 - (Antwort)

Hast du auch eine Möglichkeit gefunden den Code so zu ändern, dass er trotz des Kompatiblitätsmodus läuft?

Mr. Foo - #2 - 23.08.2007 11:25 - (Antwort)

Nicht wirklich, aber vielleicht hat sich dies in den neuen PHP-Versionen geändert.

cpp - #3 - 06.01.2008 15:49 - (Antwort)

Danke für denTip, aber es darf wohl keine Leerstele geben zwischen 'zend.' und 'ze1_compatibility_mode' in
ini_set ('zend. ze1_compatibility_mode', 0);

Mr. Foo - #3.1 - 08.01.2008 00:22 - (Antwort)

Danke für den Hinweis - wie das dort hingekommen ist, weiss ich aber auch nicht. :-)

anonymous - #4 - 08.03.2008 13:32 - (Antwort)

Vielen Dank, hat sehr geholfen!!!

Helmut - #4.1 - 21.01.2009 16:44 - (Antwort)

Sollte ini_set nicht erlaubt sein, kann man auch

php_flag zend.ze1_compatibility_mode Off

in der .htaccess hinterlegen. Das war bei mit das einzige, das funktioniert hat.


Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
 
 

Mr. Foo

Fatal error: Cannot clone object of class SimpleXMLElement due to zend.ze1_compatibility_mode

  • Homepage

Suche

Kategorien

  • Android (2)
  • C-Sharp (4)
  • Datenbank (30)
  • Delphi (2)
  • Entwicklung (36)
  • Flash (5)
  • Games (10)
  • Gutscheine (4)
  • Hardware (14)
  • HTML CSS (16)
  • Internet (88)
  • Java (32)
  • Javascript (24)
  • Linkdump (9)
  • Linux (102)
  • Low-Level (10)
  • Lua (8)
  • Musik (9)
  • Netzwerk (25)
  • New World Order (109)
  • Perl (3)
  • PHP (130)
  • Magento (5)
  • Symfony (3)
  • Zend Framework (7)
  • Probleme und Lösungen (26)
  • Python (22)
  • Ressourcen (23)
  • Sicherheit (91)
  • Software (60)
  • Sonstiges (47)
  • Own Stuff (48)
  • Spass (46)
  • Technik / Wissenschaft (4)
  • Tips (15)
  • Weisheiten (17)
  • Windows (23)
  • Wort des Tages (15)


Alle Kategorien

Archive

  • Mai 2012
  • April 2012
  • März 2012
  • Das Neueste ...
  • Älteres ...

Abonnieren lohnt sich!

  • XML RSS 2.0 feed
  • ATOM/XML ATOM 1.0 feed
  • XML RSS 2.0 Kommentare

Tagcloud

Datenbank Entwicklung Internet Java Javascript Linux Lösung Netzwerk News New World Order PHP Problem Probleme und Lösungen Sicherheit Software Sonstiges Spass Tipp Update Windows

Beliebte Einträge

  • Magento ist scheisse (197)
  • Plugin-container.exe deaktivieren (107)
  • BWin Betrug und Abzocke bei Minigames? (65)
  • C compiler cannot create executables unter Debian (53)
  • Scheiss Linux - USB-Platte viel zu langsam (wenns mal funktioniert) (43)
  • Sicheres Kontaktformular mit PHP - Spam verhindern (37)
  • UML-Diagramme aus Java-Klassen generieren – Java2UML (28)
  • Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden (28)
  • Option Bug im Internet Explorer bei Nutzung von innerHTML und Javascript (24)
  • Zend Studio - Javaw.exe lastet die CPU aus (24)

Kommentare

Hugo zu BWin Betrug und Abzocke bei Minigames?
So, 20.05.2012 12:25
ich habe mich gestern auf BWIN reg [...]
Ubuntu 12.04 zu The assembly mscorlib.dll was not found or could not be loaded.
Fr, 18.05.2012 17:11
Hat bei mir leider nicht geklappt. [...]
Oliver Riske zu Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden
Di, 15.05.2012 20:38
Super Danke!
anon zu BWin Betrug und Abzocke bei Minigames?
Sa, 05.05.2012 18:43
ihr scheiss betrüger
Jürgen zu Unable to elevate error:1814 VLC Problem
Mi, 02.05.2012 16:54
So einfach ist es bei mir jedenfal [...]
 

Kontakt/Informationen