Wie aktiviere ich XSLT-Funktionen in PHP 5?

8

Ich möchte eine xml-Datei als HTML-verschachtelte Liste mit xslt ausdrucken, und soweit ich weiß, ist der Code korrekt, aber ich bekomme diesen Fehler

  

Schwerwiegender Fehler: Aufruf der undefinierten Funktion xslt_create ()

Was ich vermute, bedeutet, dass die xslt-Funktionen nicht aktiviert wurden. Wie aktiviere ich diese Funktionen in PHP? Gibt es eine PHP-Datei, die ich einfügen muss (wie die Funktionsweise von Javascript-Bibliotheken) oder ist es etwas komplizierter? Ich bin gehostet mit MediaTemple.

Hier ist der PHP-Code, den ich verwende:

%Vor%

Vielen Dank im Voraus!

    
Chris Armstrong 15.12.2010, 14:38
quelle

3 Antworten

7

Sie müssen PHP mit der Unterstützung dafür kompilieren und sicherstellen, dass alle erforderlichen Abhängigkeiten vorhanden sind . Bitte beachten Sie die entsprechenden Kapitel im PHP Handbuch für XSLT .

Aus dem Kapitel Anforderungen

  

Diese Erweiterung benötigt die PHP-Erweiterung libxml. Dies bedeutet, dass die Übergabe von --enable-libxml ebenfalls erforderlich ist, obwohl dies implizit ausgeführt wird, da libxml standardmäßig aktiviert ist. Diese Erweiterung verwendet Sablotron und Expat, die beide bei » Ссылка zu finden sind. Binärdateien werden ebenso wie Quellen zur Verfügung gestellt. Aktivieren Sie dies mit der Option --with-xslt mit PHP 4.

Aus dem Kapitel Installation

  

Führen Sie unter Unix configure mit den Optionen --enable-xslt --with-xslt-sablot aus. Die Sablotron-Bibliothek sollte irgendwo installiert werden, wo Ihr Compiler sie finden kann. Stellen Sie sicher, dass dieselben Bibliotheken mit der Sablotron-Bibliothek verknüpft sind wie mit PHP. Die Konfigurationsoptionen: --with-expat-dir = DIR --with-iconv-dir = DIR hilft Ihnen dabei, sie zu spezifizieren. Wenn Sie nach Unterstützung fragen, erwähnen Sie immer diese Direktiven und ob weitere Versionen dieser Bibliotheken irgendwo auf Ihrem System installiert sind. Geben Sie natürlich alle Versionsnummern an.

Die empfohlene Erweiterung für die Verwendung von XSL-Transformationen mit PHP5 ist XSL . Wenn Sie nur zwei Dokumente umwandeln müssen, wie in Ihrem Beispiel gezeigt, betrachten Sie dieses Beispiel aus dem PHP-Handbuch:

%Vor%

Die transformToXML -Methode gibt das transformierte Dokument oder FALSE zurück, so dass Sie das if / else von Ihrem Code beibehalten können. In jedem Fall sollte es trivial sein, den Code zu aktualisieren.

    
Gordon 15.12.2010, 14:43
quelle
16

Abhängig von Ihrer Distribution von Linux können Sie das php5-xsl-Modul einfach installieren, die Zeile "extension = php_xsl.so" in Ihre php.ini-Datei einfügen und Ihren apache2-Server neu starten.

Das hat bei Ubuntu 11.10 funktioniert. Sie können "sudo apt-get install php5-xsl" in die Befehlszeile eingeben, um php5-xml zu installieren.

    
jakimfett 25.04.2012 17:56
quelle
2

Nun, ist sehr einfach, aber auf php.net könnte es genauer erklärt werden.

Ich verwende einen Andock-Container, der ubuntu base enthält und php-fpm verwendet.

Die Schritte zum Installieren dieser Erweiterung in meinem Kontext waren:

Suche zuerst die xsl-Erweiterung im Linux-Repository apt-cachesuche xsl

Ich habe das php5-xsl gefunden, also wurde es nur installiert apt-get install php5-xsl

dass der Installationsprozess die Setup-Konfiguration bereits hinzugefügt wird, wenn nicht passiert, machen Sie sich einfach vim /etc/php5/mods-available/xsl.ini

füge diesen Inhalt ein: Erweiterung = xsl.so

(offensichtlich sind die Pfade entsprechend Ihrer php Konfigurationseinstellungen, aber mein Beispiel ist die Standardkonfiguration)

Neustart Sie php fpm und fertig!

    
Paulo Victor 14.10.2014 10:01
quelle

Tags und Links