Kai: Suchmuster in String finden und ersetzen.

Beitrag lesen

Hallo,

ich habe folgende Funktion geschrieben um einen Teilstring aus einem Text herauszulesen und dieses Suchmuster dann durch ein Bild zu ersetzen. Das klappt für ein Bild pro String auch wunderbar, aber wenn ich nun n Bilder auf diese Weise in den Text einfügen möchte, passt es natürlich nicht mehr so ganz.

Ein Text sähe z. B. vorher so aus:
Das ist der Text mit dem Bild ::1133.jpg::

Und danach so:
Das ist der Text mit dem Bild <img src="images/1133.jpg" alt="Der Marktplatz" width="600" height="400">

Bei mehreren Bildern wäre er dann:

Das ist der Text mit dem Bild ::1133.jpg:: und dem Bild ::1254:: Was ist davon zu halten?

Klar, macht das nicht unbedingt Sinn, aber ich bräuchte die theoretische Möglichkeit n Bilder in den Text einzufügen. Muss ich das rekursiv lösen oder geht das auch mit Stringfunktionen?

function checkForImages($str)
{
    $alt   = "alt_".$_SESSION['lang'];
    $has_image = ereg("::[0-9].*.jpg::", $str);
    if ($has_image)
    {
        $pos_1 = strpos($str, "::");
        $pos_2 = strrpos($str, "::");
        $name  = substr($str, $pos_1 + 2, $pos_2 - $pos_1 - 3);
        $replace = substr($str, $pos_1, $pos_2 - $pos_1);
        $query = "
                  SELECT
                      name,
                      $alt,
                      directory,
                      size
                  FROM
                      images
                  WHERE
                      name = '$name'
                 ";
        $result = mysql_query($query);
        $row    = mysql_fetch_array($result);
        mysql_free_result($result);
        $alt = $row[$alt];
        $dir = $row['directory'];
        $size = $row['size'];
        $img_src_str = "<img src="".$dir.$name."" ".$size." alt="".$alt."">";

$new_string = str_replace($replace, $img_src_str, $str);
        $checked_text = $new_string;

}
    else
    {
        $checked_text = $str;
    }
    return $checked_text;
}

Viele Grüße,

Kai