Avatar billede asgrone Nybegynder
07. august 2008 - 16:30 Der er 6 kommentarer

hjælp til preg_replace

Hej
Jeg har lavet et script som tjekker efter billede tags i en tekststreng og scalerer det hvis den finder et. Det er stykket sammen af eksempler jeg har fundet rundt på nettet, og derfor er der også en fejl som jeg ikke kan finde ud af at løse.

Her er scriptet:
function img_tag(&$text)
{
      $text = preg_replace('/<img[^>]+src[\\s=\'"]+([^"\'>\\s]+)/is', '<img src=\'../include/scripts/image.php/coffee-bean.jpg?width=500&height=500&image=$1\'/>', $text);
      return $text;
}

Problemet er at den stopper hvis der et mellemrum i filnavnet. F.eks. ved "sti/billede 1.jpg", ville funktionen kun returnere "sti/billede".
Er der en som kan gennemskue hvad jeg skal lave om?
Avatar billede erikjacobsen Ekspert
07. august 2008 - 17:33 #1
Skal du så ikke bare fjerne  \\s  ?
Din parameterværdi $1 bør så yderligere urlencodes, så " " bliver til "+".
Avatar billede erikjacobsen Ekspert
07. august 2008 - 17:34 #2
Jeg tænker på at ændre  ([^"\'>\\s]+)  til  ([^"\'>]+)
Avatar billede asgrone Nybegynder
07. august 2008 - 17:42 #3
det virkede, men jeg er ikke sikker på hvad du mener med urlencode..
Avatar billede w13 Novice
07. august 2008 - 17:45 #4
Det er så specialtegn kan sendes via url. På den måde sker der ikke fejl, hvis der er mærkelige tegn med, eller mellemrum som i dit eksempel.
Avatar billede erikjacobsen Ekspert
07. august 2008 - 17:57 #5
Avatar billede erikjacobsen Ekspert
07. august 2008 - 17:58 #6
For selv om "det virkede", så er det forkert, da et "råt mellemrum" ikke er lovligt i en url ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester