Preg replace og størelses tjek af billeder

Tags:    php

Jeg har en tekst-streng evt. indeholdende en eller flere [img]adresse[/img]. Dette skal udskiftes med <img src="adresse"/> og hvis billedet er større (højde, bredde) end tilladt så skal der i <img> tagget også inkluderes et højte og bredde agrument. Mit problem er at jeg både skal finde hvilke steder i teksten dette måske er, og derefter både undersøge højden og bredden (getimagesize-funktionen), og derefter udskifte den, muligvis med størelses angivelse inkluderet. Her er den kode jeg har indtil nu, den bruges alle steder bruger-input skal redigeres:

<pre> function tekst($tekst) {
$find = array("/\\[b\\](.*?)\\[\\/b\\]/",
"/\\[i\\](.*?)\\[\\/i\\]/",
"/\\[img\\](.*?)\\[\\/img\\]/",
"/\\[size=([1-9]|[1-2][0-9])\\](.*?)\\[\\/size\\]/",
"/\\[u\\](.*?)\\[\\/u\\]/",
"/\\[url\\](.*?)\\[\\/url\\]/",
"/\\[url=(.+?)\\](.*?)\\[\\/url\\]/",
"/\\s\\s+/",
"/(\\<br \\/\\>\\s\\<br \\/\\>\\s)(\\<br \\/\\>\\s)+/");
$erstat = array("<b>\\\\1</b>",
"<i>\\\\1</i>",
"<img src=\\"\\\\1\\" />",
"<span style=\\"font-size: \\\\1px\\">\\\\2</span>",
"<u>\\\\1</u>",
"<a href=\\"\\\\1\\">\\\\1</a>",
"<a href=\\"\\\\1\\">\\\\2</a>",
" ",
"");
$tekst = nl2br($tekst);
$tekst = preg_replace($find, $erstat, $tekst);
$tekst = htmlwrap($tekst);
$smileys = mysql_query("SELECT * FROM smileys");
while($smiley = mysql_fetch_array($smileys)){
$tekst = str_replace("{$smiley["kode"]}", "<img alt=\\"{$smiley["navn"]}\\" src=\\"/grafik/smileys/{$smiley["fil"]}\\" title=\\"{$smiley["navn"]}\\" />", $tekst);
}
return $tekst;
}</pre>



Indlæg senest redigeret d. 09.02.2010 14:53 af Bruger #6300
4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Jeg vil bare vide hvordan man finder placeringen af en eller flere forekomster af [img][/img], og derefter gemmer hvad der står imellem i en variabel så det kan undersøges, jeg er virkelig i tidsnød så det ville være rart hvis nogen vidste dette :)

På forhånd tak

Brug (.*?) til at finde og til at vise brug \\\\et eller andet tal fx hvis du har 3 af (.*?) skal den først hedde \\\\1 den næste \\\\2 og den sidste \\\\3
Hilsen
Jan S.



Jeg vil bare vide hvordan man finder placeringen af en eller flere forekomster af [img][/img], og derefter gemmer hvad der står imellem i en variabel så det kan undersøges, jeg er virkelig i tidsnød så det ville være rart hvis nogen vidste dette :)

På forhånd tak



Takker :-)
Men... Hvordan kan jeg lige gemme det i en variabel?



Indlæg senest redigeret d. 09.02.2010 14:53 af Bruger #6300
Ingen respons :/



Indlæg senest redigeret d. 09.02.2010 14:53 af Bruger #6300
t