Ik heb in m'n gastenboek de functie gemaakt dat je youtube filmpjes kunt toevoegen. De url komt dan tussen [ youtube ] URL [/ youtube] te staan.

Het uitlezen werkt wel, maar nu wil ik de code uit de URL halen:

http://www.youtube.com/watch?v=CODE

Daarvoor heb ik dit:

<?php

$youtube_zoek = preg_replace("/\[youtube\](.*?)\[\/youtube\]/si", "\\1", $getMessage);
$youtube_link = explode('?v=', $youtube_zoek);
$youtube_code = $youtube_link[1];
$getMessage = preg_replace("/\[youtube\](.*?)\[\/youtube\]/si", "<a href=\"blabla\"><img src=\"http://i2.ytimg.com/vi/$youtube_code/default.jpg\"></a>", $getMessage);

echo $getMessage;

?>

Hij haalt nu de code eruit, maar ook de rest van het bericht (dus ook wat achter [/ youtube] staat)

Hoe kan ik nou zorgen dat de explode functie alleen de youtube-url pak en niet het gehele bericht?

Kijk maar eens naar [php]preg_replace_callback[/php]

EDIT: Een voorbeeld:

<?php

$message = 'Hi check this out: [youtube]http://www.youtube.com/watch?v=CODE[/youtube] It\'s fucking awesome!';

function yt_to_link($matches)
{
	preg_match('|\?v\=(.*?)$|', $matches[2], $code);
	return '<a href="blabla"><img src="http://i2.ytimg.com/vi/' . $code[1]. '/default.jpg"></a>';
}

$output = preg_replace_callback('|(\[youtube\](.*?)\[\/youtube\])|', 'yt_to_link', $message);

print $output;


Geeft:

Hi check this out: <a href="blabla"><img src="http://i2.ytimg.com/vi/CODE/default.jpg"></a> It's fucking awesome!
Oké bedankt!! het werkt

Nu heb ik alleen nog een probleempje bij de function

<?php
function yt_to_link($matches)
{
preg_match('|\?v\=(.*?)$|', $matches[2], $code);
return '<a href="#" onClick="displayMessageYT('youtube.php?filmcode=blabla');return false"><img src="http://i2.ytimg.com/vi/' . $code[1]. '/default.jpg"></a>';
}
?>

Nu werkt de Onclick niet... waarschijnlijk komt het door " of ' maar ik weet niet hoe ik dat moet veranderen, heb al wel het een en ander geprobeerd daarmee


edit: het werkt al:

Moest / toegevoegd worden:
<?
return '<a href="#" onClick="displayMessageTV(\'paginas/ajax/includes/youtube.php?filmcode=' . $code[1]. '\');">';
?>
}

Reageren