[PHP] - preg_replace mit eigener Funktion funktioniert nicht richig
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
-
Hallo,
ich bin gerde dabei mein BBCode-System zu erweitern. Es handelt sich jetzt um eine Funktion zum Bilderanzeigen mit einem Thumbnail!
BBCode-Tag:
[thumb=http://adresse.des.thumbnails.jpg]http://adresse.des.richtigen.bildes.jpg[/thumb]
Der Code Schnipsel dazu:
preg_replace Teil:
$to_do = preg_replace('#\[thumb=(.*)\](.*)\[/thumb\]#Uis', show_image_thumb("\\1", "\\2"), $to_do);
Funktion show_image_thumb:
function show_image_thumb($file1, $file2){ global $l2; if(!$file1) {$file1 = "images/bbcodes/thumb_h.gif"; } if(!$file2) {$file2 = $file1; } $info_file2 = getimagesize($file2); $to_return = '<a href="javascript:GrafikAnzeigen(\''.$file2.'\', \''.$info_file2[0].'\', \''.$info_file2[1].'\')" title="'; if($l2 == de) $to_return .= 'Vergrößern'; if($l2 == it) $to_return .= 'ingrandire'; $to_return .= '"><img border="0" alt="" src="'.$file1.'"></a>'; return $to_return; }
Es funktioniert alles soweit, auser, dass
nicht den richtigen Variablen inhalt erh?lt!getimagesize($file2);
Jedoch hier schon:
GrafikAnzeigen(\''.$file2.'\', \''.$info_file2[0].'\', \''.$info_file2[1].'\')
Die Error Message zu getimagesize():
Warning: getimagesize(\2) [function.getimagesize]: failed to open stream: No such file or directory in [Pfad] on line [Zeile]
Danke f?r eure Hilfe! Bin f?r jede Hilfe dankbar, auch wenn es nur Denkanst??e sind!
Kontakt auch vie PN oder ICQ (302924578) m?glich -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi,
ich bin mir nicht ganz sicher, ob das funktioniert, aber versuch mal folgenden preg_replace:
$to_do = preg_replace('/\[thumb=(.*)\](.*)\[/thumb\]/ie', 'show_image_thumb("\\1", "\\2")', $to_do);
mfg,
hr -
heavyraptor schrieb:
Hi,
ich bin mir nicht ganz sicher, ob das funktioniert, aber versuch mal folgenden preg_replace:
$to_do = preg_replace('/\[thumb=(.*)\](.*)\[/thumb\]/ie', 'show_image_thumb('\\1', '\\2')', $to_do);
mfg,
hr
fnktioniert so leider nicht!
Habe eine andere m?glichkeit gefunden:
function show_image_thumb($file){ global $l2; $file1 = $file[1]; $file2 = $file[2]; if(!$file1) {$file1 = "images/bbcodes/thumb_h.gif"; } if(!$file2) {$file2 = $file1; } $info_file2 = getimagesize($file2); $to_return = '<a href="javascript:GrafikAnzeigen(\''.$file2.'\', \''.$info_file2[0].'\', \''.$info_file2[1].'\')" title="'; if($l2 == de) $to_return .= 'Vergrößern'; if($l2 == it) $to_return .= 'ingrandire'; $to_return .= '"><img border="0" alt="" src="'.$file1.'"></a>'; return $to_return; }
und
$to_do = preg_replace_callback('#\[thumb=(.*)\](.*)\[/thumb\]#Uis', "show_image_thumb", $to_do);
und funktioniert super!
PS: Kann geclosed werden -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage