login  Naam:   Wachtwoord: 
Registreer je!
 Forum

preg replace met (.*) (Opgelost)

Offline christophe195 - 31/07/2012 16:10 (laatste wijziging 31/07/2012 16:17)
Avatar van christophe195Lid ik wil een text laten vervangen als er 'http://www.youtube.com/watch?v=BJ-CmHZrKHU' staat dat hij daar de foto van laat zien en een link naar het filmpje.

maar hij doet niet's, hij doet geen replace
ik heb nu deze code
  1. $bericht = preg_replace("#\[youtube]http://www.youtube.com/watch?v=(.*)\[/youtube]#Smi", "<a href='http://www.youtube.com/watch?v=\\1'><img src='http://i1.ytimg.com/vi/\\1/default.jpg' alt='Youtube filmpje' height='42' width='42' /></a>", $bericht);


wat doe ik fout?

1 antwoord

Gesponsorde links
Offline Martijn - 31/07/2012 16:23 (laatste wijziging 02/08/2012 17:03)
Avatar van Martijn Crew PHP De vragenteken na '/watch' moet escaped -> \?. Vragenteken doet namelijk nu 'de H voor mij mag 0 of 1 x voorkomen, dus watc of watch', en je wilt m als tekst.

Dan de [youtube] wil graag zo: \[youtube\]. Blokken geven een range aan [0-9] = 0|1|2|3|4|5|6|7|8|9

Deze regex
\[youtube\]http:\/\/www.youtube.com\/watch\?v=(.*)\[\/youtube\]

Geeft bij deze tekst
[youtube]http://www.youtube.com/watch?v=adsadsasdasdads[/youtube]

Bij \\1: adsadsasdasdads 


Edit:
Er staat nu dit "watch\?v=(.*)", daar kun je beter dit van maken: "watch\?v=(.*?)". Dat heet ungreedy en doet dit:

Regex1: [voorbeeld](.*)[/voorbeeld]
Regex2: [voorbeeld](.*?)[/voorbeeld]

De regexen selecteren nu dit (let op, ik heb niet geescaped voor leesbaarheid)
regex1: [voorbeeld]tekst[/voorbeeld] andere tekst [voorbeeld]tekst2[/voorbeeld]
regex2: [voorbeeld]tekst[/voorbeeld] andere tekst [voorbeeld]tekst2[/voorbeeld]

Apart dus 
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.233s