Ersetzung von nur einem Zeilenumbruch in Funktion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ersetzung von nur einem Zeilenumbruch in Funktion

    Hallo zusammen,

    ich verwende eine Funktion auf meiner Website, die mir etwas Kopfzerbrechen bereitet und zwar folgende:

    Code:
    function parse_list($string, $replace) {
            $array = explode('[*]', str_replace('<br />', '', stripcslashes($string)));
            $return = array();
            foreach ($array AS $val) {
                $val = trim($val);
                if (!empty($val)) {
                    $return[] = str_replace('\1', $val, $replace);
                }
            }
            return implode("\n", $return);
        }
    Nun ersetzt diese Funktion ganz oben natürlich alle Zeilenumbrüche (<br />).

    Die Funktion soll jedoch nur ausschließlich das erste <br /> ersetzen. Leider bekomme ich es einfach nicht hin. Preg_replace führt leider auch nicht zu dem gewünschten Ergebnis unter Nutzung des Limit Parameters. Zumindest habe ich es einfach nicht geschafft, das in die Funktion zu bekommen.

    Wäre klasse, wenn mir da jemand helfen könnte - denn in PHP bin ich nicht wirklich Experte (Anfänger)?

    Viele Grüße
    Mark

  • #2
    Wenn du preg_replace verwendest, dann sollte es doch gehen. Wie sieht dein preg_replace aus?


    Ansonsten könntest du dir das etwas anders basteln mittels substr_replace und den Positionsfunktionen wie strpos: Du ersetzt damit einfach das erste <br /> in deiner Variablen, nachdem du mittels strpos die Position des 1. Auftretens gefunden hast und das als Parameter an substr_replace übergibst.
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Ich hatte es so versucht:

      PHP-Code:
      function parse_list($string$replace) {
              
      $array explode('[*]'preg_replace('<br />'''stripcslashes($string), 1));
              
      $return = array();
              foreach (
      $array AS $val) {
                  
      $val trim($val);
                  if (!empty(
      $val)) {
                      
      $return[] = str_replace('\1'$val$replace);
                  }
              }
              return 
      implode("\n"$return);
          } 

      Kommentar

      Lädt...
      X