Archief - eigen tag omvormen naar youtube embed

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

sarnath

Legacy Member
Ik ben bezig met een aantal custom tags te maken die gebruikers kunnen gebruiken om in te voegen in reacties.

Nu wil ik graag een youtubetag gebruiken in het volgende formaat:

[ youtube]http://www.youtube.com/watch?v=NMAYr709-9Y[ /youtube]

(er staat een spatie voor "youtube" omdat de site hier anders moeilijk doet :)

wat dan vervangen moet worden door:

Code:
<object width="250" height="176"><param name="movie" value="http://www.youtube.com/v/NMAYr709-9Y">   </param>   <param name="wmode" value="transparent">   </param>   <embed src="http://www.youtube.com/v/NMAYr709-9Y"   type="application/x-shockwave-flash" wmode="transparent"   width="250" height="176">   </embed> </object>

Nu krijg ik het wel gefixt dat er &1url vervangen wordt, maar omdat ik niet goed ben in reguliere expressies krijg ik het niet gefixt als er meerdere zijn, dus volgende tekst moet bijvoorbeeld kunnen:

HTML:
$input = Dit is het eerste filmpje:<br />[youtube]link naar eerste[/youtube]<br />en hier is nog een filmje:[youtube]link naar tweede[/youtube]
wat als ouput dus moet geven mijn getypte tekst en twee youtube embeds.

Iemand enig idee of ik dit kan klaarkrijgen, want het enige wat mij lukt is er ééntje vervangen en dan verdwijnt mijn tekst of het extracten van alle linken, maar dat is dus ook niet wat ik zoek.

Cycloon

Legacy Member
Je reg exp is waarschijnlijk greedy. Waarschijnlijk lijkt die nu op
Code:
\[youtube\](.+)\[/youtube\]

Die moet dit worden:

Code:
\[youtube\](.+?)\[/youtube\]

sarnath

Legacy Member
Had het idd een beetje vergezocht en zat zodanig te prullen dat ik het overzicht kwijt was :D

dit is het geworden voor de geïnteresseerden:

Code:
$text = "Dit is een tekst, dit is een link: [link]http://www.youtube.com[/link], <br />hier is een filmpje: <br />[youtube]lb02Ek-5Ris[/youtube] en dat was het dan. Einde."
$search = array('/\[youtube\](.*?)\[\/youtube\]/is','/\[link\](.*?)\[\/link\]/is');
$replace = array('<object width="250" height="176"><param name="movie" value="http://www.youtube.com/v/$1"></param><param name="wmode" value="transparent">   </param>   <embed src="http://www.youtube.com/v/$1"   type="application/x-shockwave-flash" wmode="transparent"   width="250" height="176">   </embed> </object>','<a href="$1">$1</a>');
return preg_replace($search,$replace,$text);

youtube is de key (v=), kan eventueel nog vervangen worden door de volledige url, maar dan moet je nog wat formatting doen, is iets voor later :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan