Jak zrobić automatyczne zamienianie linku z YT na film?


(Saver) #1

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ć?


(ra-v) #2

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).


(Saver) #3

Racja, ale ja chce zrobić jak ktoś doda link z YT do komentarzy to zamienia się na Film.


(Sylwekqaz19) #4

BBcode zrobisz

łap link http://wiki.phpbb3.pl/wiki/BBCode:YouTube


(Saver) #5

Tak to też umiem :smiley:

Ale bez BBCode od razu po wysłaniu zwykłego linku z YT zamienia się na film.


(Barthezz) #6

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


(A2248476) #7

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 "

(Saver) #8

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]

(A2248476) #9

Napisałem, że to jest pseudokod, a nie kod PHP. :wink:

$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]

(Saver) #10