Announcement

Collapse
No announcement yet.

PHP(embedded) im XSLT ausführen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • PHP(embedded) im XSLT ausführen

    Hallo Leute!

    Ich würde gerne einen einfachen PHP-Befehl ausführen und das im XSLT.
    Das ganze wird als HTML-Seite transformiert.

    Und zwar möchte ich einen string mittelt urlencode() codieren, da ich sonst Probleme mit dem PLUS-Zeichen bekomme. Beim Auslesen der GET-Parameter wird das + zu einem Leerzeichen, da es nicht im endsrpechenden %-Format in die url gelangt.

    Ich habe mich nun etwas mit Processing-Instructions gespielt, bin jedoch nicht soweit gekommen, dass die PHP-Befehle auch ausgeführt werden.

    Hat jemand eine Idee?

    Code:
    <a>
    	<xsl:attribute name="href">
    		<xsl:text>details.php?Id=</xsl:text>
    		<xsl:processing-instruction name="php">urlencode({CurrentProducer}) ?</xsl:processing-instruction>
    	</xsl:attribute>
    	<img border="0">
    		<xsl:attribute name="src"><xsl:value-of select="PreviewImageURL"/></xsl:attribute>
    	</img>
    </a>
    Danke im Voraus!

  • #2
    Aktiviere die PHP-Unterstützung an der Prozessorinstanz mit registerPHPFunctions und deklariere den php-Namensraum im Stylesheet (xmlnshp="http://php.net/xsl"). Dann lassen sich die PHP-Funktionen über php:function('name', argument) verwenden.

    Comment


    • #3
      Ah, besten Dank!
      Werde ich sofort versuchen. (EDIT: Funktioniert wunderbar)

      Ich hätte allerdinsg noch eine Alternative gefunden, und zwar XPATH.

      Laut Dokumentation gibt es dort die Funktion encode-for-uri. Die würde genau das machen was ich möchte, jedoch wird diese Funktion nicht erkannt?

      "xmlXPathCompOpEval: function encode-for-uri not found"
      Zuletzt editiert von void; 23.07.2009, 14:24.

      Comment


      • #4
        PHP unterstützt bisher nur XSLT/XPath 1.0. Die schöne 2.0-Welt kann man leider noch nicht nutzen.

        Comment


        • #5
          Ah... danke für die Info... das macht die Sache natürlich etwas durchsichtiger.

          Comment

          Working...
          X