Heey,
ik ben niet echt goed met php, maar ook niet dat je zegt van je kan er nix van. Maar ik zit met een probleem.
Ik heb een functie gemaakt voor UBB tags. De ene functie is alleen voor de [i-mg][/i-mg] tags, en eentje om alle links (www.link.nl etc) om te zetten naar klikbare links.
De bovenstaande functie kijkt of een plaatje breder / langer dan 250px is, en zo ja verkleint hem op de site, maakt er een link naar wat opent in een nieuwe pagina waar het plaatje op orgineel formaat getoond wordt.
Bovenstaande functie zorgt ervoor dat alle links omgezet worden in klikbare links. En hier zit dus het probleem... Omdat je als je een image wilt gebruiken ook een link moet gebruiken. Hierdoor zie ik ipv een image, alleen maar html wat dus niet klopt.
Kan iemand mij helpen om dit te verhelpen? Dus dat overal de links worden omgezet, behalve tussen deze 'speciale' [i-mg] tags?
Alvast bedankt,
Sander
ik ben niet echt goed met php, maar ook niet dat je zegt van je kan er nix van. Maar ik zit met een probleem.
Ik heb een functie gemaakt voor UBB tags. De ene functie is alleen voor de [i-mg][/i-mg] tags, en eentje om alle links (www.link.nl etc) om te zetten naar klikbare links.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| function UBBimg($bericht) { $returnText = ""; $endtag = "[/img]"; $untextje = str_replace($endtag,$endtag ."'",$bericht); $untextje = explode("'",$bericht); foreach($untextje as $str) { if(eregi("(\\[img\])(http://[A-Z0-9[:punct:]/\\.-]+)(\\[/img\])", $str, $parts)) { $link = $parts[2]; $info = @getimagesize($link); if($info) { $breedte = $info[0]; $hoogte = $info[1]; if($breedte < 250 && $hoogte < 250){ // Het plaatje is groot genoeg dus laat de orginele maten: $str = str_replace("[img]","<img border='0' src='",$str); $str = str_replace("[/img]","'>",$str); } else { if($breedte > $hoogte) { $width = 250; $height = round((250 / $breedte) * $hoogte,0); } else { $height = 250; $width = round((250 / $hoogte) * $breedte,0); } $str = str_replace("[img]","<br /><div align=\"center\"><a href=\"$link\" target=\"_new\"><img border=\"0\" width=\"$width\" height=\"$height\" src=\"",$str); $str = str_replace("[/img]","\" alt=\"Klik hier voor een vergroting\"></a></div><br />",$str); } } } $returnText .= $str; } return $returnText; } |
De bovenstaande functie kijkt of een plaatje breder / langer dan 250px is, en zo ja verkleint hem op de site, maakt er een link naar wat opent in een nieuwe pagina waar het plaatje op orgineel formaat getoond wordt.
PHP:
1
2
3
4
5
6
7
8
9
10
11
| function UBBcode($bericht) { // [knip] $bericht = preg_replace("/(?<!=\S)(?:(https?:\/\/|ftp:\/\/|news:|telnet:)|(www\.))(\S+)/ixe",'"<a href=\"".(strlen("\1") > 0 ? "\1" : "http://")."\2\3\" target=\"_blank\">\1\2\3</a>"',$bericht); $bericht = preg_replace("/([^\s]+@[^\s,]+)/",'<a href="mailto:\\1">\\1</a>',$bericht); // [knip] return $bericht; } |
Bovenstaande functie zorgt ervoor dat alle links omgezet worden in klikbare links. En hier zit dus het probleem... Omdat je als je een image wilt gebruiken ook een link moet gebruiken. Hierdoor zie ik ipv een image, alleen maar html wat dus niet klopt.
Kan iemand mij helpen om dit te verhelpen? Dus dat overal de links worden omgezet, behalve tussen deze 'speciale' [i-mg] tags?
Alvast bedankt,
Sander