Danke für die Reaktion. :-) Ich hatte es zwischenzeitlich wie folgt gelöst:
function checkForImages($str)
{
$table = $param_db_prefix."_image";
$alt = "alt_".$_SESSION['lang'];
// Prüfe im gesamten String, ob Bilder vorkommen.
$has_image = ereg("!.*.jpg|", $str);
if ($has_image)
{
$pos_1 = strpos($str, ".jpg|"); // erstes Bild im String
$prev_str = substr($str, $str, $pos_1 + 7); // Erster String-Teil.
$pos_2 = strpos($prev_str, "; // erstes Vorkommen des ::
$pos_3 = strrpos($prev_str, ".jpg|"); // letztes Vorkommen des ::
$image_name = substr($prev_str, $pos_2 + 7, $pos_3 + 2 - $pos_2 - 5); // Name des Bildes
$replace = substr($prev_str, $pos_2, $pos_3 + 6 - $pos_2 + 1); // zu ersetzender Teil mit img-Tag
// Prüfe, ob align = center, left oder right in diesem Teil-String.
$image_center = ereg("[image:[0-9).*.jpg|c]", $prev_str);
$image_left = ereg("!.*.jpg|l]", $prev_str);
$image_right = ereg("!.*.jpg|r]", $prev_str);
$next_str = substr($str, $pos_1 + 7); // Rest-String
$checked_text = checkForImages($next_str);
$query = "
SELECT
name,
$alt,
directory,
size
FROM
$table
WHERE
name = '$image_name'
";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
mysql_free_result($result);
if($image_center == true)$align = "center";
if($image_left == true)$align = "left";
if($image_right == true)$align = "right";
$alt = $row[$alt];
$dir = $row['directory'];
$size = $row['size'];
// img-Tag, das an Stelle von ::xxxx.jpg|?:: eingesetzt werden soll.
$img_src_str = "<img src="".$dir.$image_name."" align="".$align."" ".$size." alt="".$alt."">";
// Den neuen String zusammensetzen.
$new_string = str_replace($replace, $img_src_str, $prev_str).$checked_text;
$checked_text = $new_string;
}
else
{
$checked_text = $str;
}
return $checked_text;
}