Code ersetzen Problem!?

VillaiN

Grünschnabel
Habe eine Datenbank wo Bilder gespeichert werden. Nun wollte ich so eine Art BB Code machen, um diese z.B. Automatisch in News eintragen zu können. D.h. ich gebe in ein Formular [img=[/B] id] ein. Und nun wollte ich per replace (z.b. eregi) das er mir aus der Datenbank für die angegebene ID den genauen Namen des Bildes holt. Nur leider kann ich ja keine SQL Abfrage in den eregi_replace Befehl eingeben, oder

Hier mein Code so wie ich es mir gedacht hatte. Leider ist dies ja so nicht möglich Falls jemand eine Idee oder Funktion weiss wie ich hier etwas weiter komme bitte posten

Danke im Vorraus.

PHP:
<?


// SQL ABFRAGE
//	
//	$sql="SELECT * FROM images WHERE id=$img";
//	$result=mysql_query($sql);
//	
//	while ($row=mysql_fetch_array($result)) { 
//      echo "<img src=\"$row[url]\" border=\"0\">"; }
	

function replace($str){

// Hier sollte die SQL Abfrage rein 
$str=eregi_replace("\\[img=([^\\[]*)]"," // Hier sollte die SQL ABFRAGE REIN    ",$str);	
	
// Restlichen Sachen die geändert werden sollen 
$str=str_replace("<","&lt;",$str);
$str=str_replace(">","&gt;",$str);
$str=eregi_replace("([ \r\n])http://([^ ,\r\n]*)","\\1[ url]http://\\2[ /url]",$str);
$str=eregi_replace("([ \r\n])https://([^ ,\r\n]*)","\\1[ url]https://\\2[ /url]",$str);
$str=eregi_replace("([ \r\n])ftp://([^ ,\r\n]*)","\\1[ url]ftp://\\2[ /url]",$str);
$str=eregi_replace("([ \r\n])www.([^ ,\r\n]*)","\\1[ url]http://www.\\2[ /url]",$str);
$str=eregi_replace("^http://([^ ,\r\n]*)","[ url]http://\\1[ /url]",$str);
$str=eregi_replace("^https://([^ ,\r\n]*)","[ url]https://\\1[ /url]",$str);
$str=eregi_replace("^ftp://([^ ,\r\n]*)","[ url]ftp://\\1[ /url]",$str);
$str=eregi_replace("^www.([^ ,\r\n]*)","[ url]http://www.\\1[ /url]",$str);
$str=eregi_replace("\\[url\\]www.([^\\[]*)\\[img\\]www.([^\\[]*)\\[/img\\]\\[/url\\]","<a href=\"http://www.\\1\" target=_blank><img src=\"http://www.\\2\" border=\"0\"></a>",$str);
$str=eregi_replace("\\[url\\]http://([^\\[]*)\\[img\\]http://([^\\[]*)\\[/img\\]\\[/url\\]","<a href=\"http://\\1\" target=_blank><img src=\"http://\\2\" border=\"0\"></a>",$str);
$str=eregi_replace("\\[ url\\]www.([^\\[]*)\\[/url\\]","<a href=\"http://www.\\1\" target=_blank>\\1</a>",$str);
$str=eregi_replace("\\[ url\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=_blank>\\1</a>",$str);
$str=eregi_replace("\\[ url=([^\\[]*)\\]([^\\[]*)\\[\\/url\\]","<a href=\"\\1\" target=\"_blank\">\\2</a>",$str);
$str=eregi_replace("\\[ MAIL=([^\\[]*)]([^\\[]*)\\[\\/MAIL\\]","<a href=mailto:\\1>\\2</a>",$str);
$str=eregi_replace("\\[mail\\]([^\\[]*)\\[/mail\\]","<a href=mailto:\"\\1\">\\1</a>",$str);
$str=eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[\\/url\\]","<a href=\"\\1\" target=\"_blank\">\\2</a>",$str);
$str=eregi_replace("\\[ FONT=([^\\[]*)]","<span style='font-family:\\1'>",$str);
$str=eregi_replace("\\[\/FONT]","</span>",$str);
$str=eregi_replace("\\[ SIZE=([^\\[]*)]","<span style='font-size:\\1'>",$str);
$str=eregi_replace("\\[\/SIZE]","</span>",$str);
$str=eregi_replace("\\[ COLOR=([^\\[]*)]","<span style='color:\\1'>",$str);
$str=eregi_replace("\\[\/COLOR]","</span>",$str);
$str=eregi_replace("\\[B]","<b>",$str);
$str=eregi_replace("\\[\/B]","</b>",$str);
$str=eregi_replace("\\[I]","<i>",$str);
$str=eregi_replace("\\[\/I]","</i>",$str);
$str=eregi_replace("\\[U]","<u>",$str);
$str=eregi_replace("\\[\/U]","</u>",$str);
$str=str_replace("\n","<br>",$str);

   echo "$str";

}

?>
Hier sollte die SQL Abfrage rein !?Hier sollte die SQL Abfrage rein !?
 
Versuchs mal hiermit:

PHP:
<?PHP

function replace($str){

// Restlichen Sachen die geändert werden sollen
$str=str_replace("<","&lt;",$str);
$str=str_replace(">","&gt;",$str);

preg_match_all("(\[ img=([0-9]+)\])i",$str, $matches);
$anzahl=count($matches[1]);
for($i=0; $i<=$anzahl; $i++) 
{
	$result = mysql_query("SELECT * FROM images WHERE id='".$matches[1]."' LIMIT 1");
	$row = mysql_fetch_array($result);
	
	$str = preg_replace('(\[ img=([0-9]+)\])i','<img src="'.$row['url'].'" border="0">',$str,1);
}  

$str=eregi_replace("([ \r\n])http://([^ ,\r\n]*)","\\1[ url]http://\\2[ /url]",$str);
$str=eregi_replace("([ \r\n])https://([^ ,\r\n]*)","\\1[ url]https://\\2[ /url]",$str);
$str=eregi_replace("([ \r\n])ftp://([^ ,\r\n]*)","\\1[ url]ftp://\\2[ /url]",$str);
$str=eregi_replace("([ \r\n])www.([^ ,\r\n]*)","\\1[ url]http://www.\\2[ /url]",$str);
$str=eregi_replace("^http://([^ ,\r\n]*)","[ url]http://\\1[ /url]",$str);
$str=eregi_replace("^https://([^ ,\r\n]*)","[ url]https://\\1[ /url]",$str);
$str=eregi_replace("^ftp://([^ ,\r\n]*)","[ url]ftp://\\1[ /url]",$str);
$str=eregi_replace("^www.([^ ,\r\n]*)","[ url]http://www.\\1[ /url]",$str);
$str=eregi_replace("\\[url\\]www.([^\\[]*)\\[img\\]www.([^\\[]*)\\[/img\\]\\[/url\\]","<a href=\"http://www.\\1\" target=_blank><img src=\"http://www.\\2\" border=\"0\"></a>",$str);
$str=eregi_replace("\\[url\\]http://([^\\[]*)\\[img\\]http://([^\\[]*)\\[/img\\]\\[/url\\]","<a href=\"http://\\1\" target=_blank><img src=\"http://\\2\" border=\"0\"></a>",$str);
$str=eregi_replace("\\[url\\]www.([^\\[]*)\\[/url\\]","<a href=\"http://www.\\1\" target=_blank>\\1</a>",$str);
$str=eregi_replace("\\[url\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=_blank>\\1</a>",$str);
$str=eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[\\/url\\]","<a href=\"\\1\" target=\"_blank\">\\2</a>",$str);
$str=eregi_replace("\\[MAIL=([^\\[]*)]([^\\[]*)\\[\\/MAIL\\]","<a href=mailto:\\1>\\2</a>",$str);
$str=eregi_replace("\\[mail\\]([^\\[]*)\\[/mail\\]","<a href=mailto:\"\\1\">\\1</a>",$str);
$str=eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[\\/url\\]","<a href=\"\\1\" target=\"_blank\">\\2</a>",$str);
$str=eregi_replace("\\[ FONT=([^\\[]*)]","<span style='font-family:\\1'>",$str);
$str=eregi_replace("\\[\/FONT]","</span>",$str);
$str=eregi_replace("\\[ SIZE=([^\\[]*)]","<span style='font-size:\\1'>",$str);
$str=eregi_replace("\\[\/SIZE]","</span>",$str);
$str=eregi_replace("\\[ COLOR=([^\\[]*)]","<span style='color:\\1'>",$str);
$str=eregi_replace("\\[\/COLOR]","</span>",$str);
$str=eregi_replace("\\[ B]","<b>",$str);
$str=eregi_replace("\\[\/B]","</b>",$str);
$str=eregi_replace("\\[ I]","<i>",$str);
$str=eregi_replace("\\[\/I]","</i>",$str);
$str=eregi_replace("\\[ U]","<u>",$str);
$str=eregi_replace("\\[\/U]","</u>",$str);
$str=str_replace("\n","<br>",$str);

echo "$str";

}
?>
 
Zurück