Chce na stronie aby każdy link z YT dodany zamieniał się na film, czy to jest możliwe, a jak tak to jak to można zrobić?
Przecież na YT możesz sobie kod na stronę wygenerować. A zamienić możesz dodając pewnie odpowiednie zmienne do linku o oplatając go w kod do wstawiania Flashy (HTML albo JS).
Racja, ale ja chce zrobić jak ktoś doda link z YT do komentarzy to zamienia się na Film.
Tak to też umiem
Ale bez BBCode od razu po wysłaniu zwykłego linku z YT zamienia się na film.
To może dajesz ifa który sprawdza kazdy komentarz czy nie ma w nim okreslonego Ciągu znaków (np. youtube.com=cośtam) i jeżeli ma to opakowuje go samo w tagi albo bbcode
Przy pomocy wyrażeń regularnych (wyrażenie dla URLa znajdziesz bez problemu w sieci) dobierasz się do wszystkich linków w treści. Mając już owego URLa wystarczy rozpoznać czy jest to URL filmiku na YouTube, pseudokod:
String content = "Treść komentarza, a tutaj http://youtube.com/watch?v=1234321123 filmik z YT.";
String content = content.replace("/wzorzec-na-URL/", function(String match) {
URL url = new URLParser(match);
if (url.getHostname() == "youtube.com") {
String youtubeKey = url.getParameter("v");
return "
Chyba coś źle zrobiłem?
$wejsce = String content = "Treść komentarza, a tutaj http://youtube.com/watch?v=1234321123 filmik z YT.";
$zamiana = String content = content.replace("http://www.youtube.com/watch?v=", function(String match) {
URL url = new URLParser(match);
if (url.getHostname() == "youtube.com") {
String youtubeKey = url.getParameter("v");
return '
';
}
});
$com = preg_replace($wejsce, $zamiana, $com);[/code]
Napisałem, że to jest pseudokod, a nie kod PHP.
$content = 'Treść komentarza...';
$content = preg_replace('#(?:http|ftp)s?://(?:[a-z0-9][\w]*\.)+[a-z]{2,6}(?:/\S*)?#is', function($matches) {
$url = parse_url($matches[0]);
if (preg_match('#^(?:www\.)?youtube\.[a-z]{2,3}$#', $url['host'])) {
$q = parse_str($path['query']);
if (isset($q['v'])) {
return 'KOD ODTWARZACZA YT DLA FILMU O ID SPOD $q[v]';
}
}
return '' . htmlspecialchars($matches[0]) . '';
});[/code]