Daniel Z.: Mit regulären Ausdruck "preg_replace" HTML Tags ersetzen ?!

Hi Forumvolk,
habe moechte mit regulären Ausdruck "preg_replace"
folgendes anstellen...

$file = "beliebiger HTML Code bzw. Text";

$alt = array("/<span class="head">/", "/</span>/" );
$neu = array("<headline>", "</headline>");

$file = preg_replace($neu, $alt, $file);

... leider bekomme ich immer den Fehler "No ending delimiter found".
Was mache ich falsch?

Gruss Daniel

  1. hi,

    hmm, das sieht nach Denkfehler aus, denn...

    $file = "beliebiger HTML Code bzw. Text";

    $alt = array("/<span class="head">/", "/</span>/" );
    $neu = array("<headline>", "</headline>");

    $file = preg_replace($neu, $alt, $file);

    ... $neu = array, ebenso wie $alt = array - also kein string oder regExpr der ersetzt werden kann.

    vielleicht so:

    $alt = array("<span class="head">", "</span>" );
    $neu = array("<headline>", "</headline>");

    $file = str_replace($alt[0], $neu[0], $file);
    $file = str_replace($alt[1], $neu[1], $file);

    ungetestet. Hth

    Gruesse  Joachim

    1. Moin

      hmm, das sieht nach Denkfehler aus, denn...

      Das ist schon in Ordnung so. PHP erlaubt explizit Arrays und betrachtet die regulären Ausdrücke dann automatisch paarweise.

      Dein Code müsste trotzdem funktionieren, aber aus einem anderen Grund:

      $file = preg_replace($neu, $alt, $file);

      ^^^^  ^^^^

      $file = preg_replace($alt[0], $neu[0], $file);

      ^^^^     ^^^^

      Wenn Daniel es so macht, funktioniert es auch mit Arrays:

      $file = 'beliebiger HTML Code bzw. Text';
      $alt = array('/<span class="head">/', '/</span>/' );
      $neu = array('<headline>', '</headline>');
      $file = preg_replace($alt, $neu, $file);

      (getestet)

      --
      Henryk Plötz
      Grüße von der Ostsee

      1. moin,

        Das ist schon in Ordnung so. PHP erlaubt explizit Arrays und betrachtet die regulären Ausdrücke dann automatisch paarweise.

        cool, wusste ich nicht. Danke fuer den Tipp.

        Gruesse  Joachim

      2. Hi Henryk Plötz,

        tausend Dank und viele Gruesse aus Koeln!

        Gruss Daniel Z.

        Wenn Daniel es so macht, funktioniert es auch mit Arrays:

        $file = 'beliebiger HTML Code bzw. Text';
        $alt = array('/<span class="head">/', '/</span>/' );
        $neu = array('<headline>', '</headline>');
        $file = preg_replace($alt, $neu, $file);

        Henryk Plötz
        Grüße von der Ostsee