Gå til innhold

Bedre regulært uttrykk i preg_replace


Anbefalte innlegg

Fikler litt med ett regulært uttrykk og har forsåvidt fått det til. Det jeg lurer på er om det er den riktige og optimale måten å gjøre det på.

 

Formålet er å finne url-en i img-tagger og fjerne alt annet enn filnavnet og filetternavnet.

 

Slik at

 

<p><img src="http://www.eksempel.no/bilde.jpg" /></p>

 

blir til

 

<p><img src="bilde.jpg" /></p>

.

 

Måten jeg har gjort det på er slik:

 


$tekst = '<p><img src="http://www.eksempel.no/bilde.jpg" /></p>';

 $ny_tekst = preg_replace('/(<img [^>]*src=")([^"]*?)([^"\/]*"[^>]*>)/i', "$1$3", $tekst)

 

Virker på meg som litt tungvint å lage såpass mange subpatterns. Håper noen har overskudd til å kikke litt på det.

Endret av RadiantHeart
Lenke til kommentar
Videoannonse
Annonse

Hmm, med det eksempelet du har ovenfor så hadde jo det letteste bare vært og brukt explode.

 

<?php

$var = "http://www.eksempel.no/bilde.jpg";

$split = explode('/', $var);
$num = count($var) - 1;
$bilde = $split[ $num ];

echo $bilde;

?>

 

Noe i den duren.

 

Hvis du derimot har feks

 

http://www.eksempel.no/folder/subfolder/bilde.png

Så vil den også bare gi ut bilde.png som output. Hvis du skal ha hele /folder/subfolder/bilde.png sullamitten, så trenger nok skriptet mitt en del modifikasjoner.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...