За последние 24 часа нас посетили 19364 программиста и 1606 роботов. Сейчас ищут 822 программиста ...

Парсинг ссылки на видео ютьюб

Тема в разделе "PHP для новичков", создана пользователем Колбася, 20 июн 2012.

  1. Колбася

    Колбася Активный пользователь

    С нами с:
    12 дек 2011
    Сообщения:
    722
    Симпатии:
    0
    Подскажите вот есть борда и на ней люди кидают ссылки на видео с ютьюба
    дайте ссыль на исходник как преобразовывать именно ссылки с ютьюба сразу в такой экранчик размером
    320 на 240 и там нажимаешь и сразу видео идети ненадо ютьюбку включать
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну я бы сделал примерно такую штуку. Смотрите, вот урл видео с ютубы:
    А вот какой код предлагает ютуба, чтоб встроить это видео:
    Код (Text):
    1. <iframe width="320" height="240" src="http://www.youtube.com/embed/I8A61eY1Efg" frameborder="0" allowfullscreen></iframe>
    .
    Догадываетесь, как из первого получить второе? Нужно регуляркой вырезать ID видео, и подставить его в HTML-код
     
  3. Колбася

    Колбася Активный пользователь

    С нами с:
    12 дек 2011
    Сообщения:
    722
    Симпатии:
    0
    Да! Спасибо!
    А где примеры посмотреть можно такого кода с приминением php?
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну вот так примерно. ТОлько в видео от ютубы перед ?v нет пробела. Пришлось поставит, иначе этот форум её преобразовывал в /v/Svipj7y2qjI
    Код (Text):
    1. <?php
    2.  
    3. $youtube_url = "http://www.youtube.com/watch? v=Svipj7y2qjI";
    4.  
    5. preg_match("!v\=([A-z|0-9]*)!", $youtube_url, $url_parts);
    6.  
    7. $video_id = $url_parts[1];
    8. ?>
    9. <iframe width="320" height="240" src="http://www.youtube.com/embed/<?php echo $video_id; ?>" frameborder="0" allowfullscreen></iframe>
     
  5. Колбася

    Колбася Активный пользователь

    С нами с:
    12 дек 2011
    Сообщения:
    722
    Симпатии:
    0
    Вот код -
    Код (Text):
    1. function colorQuote($message) {
    2.     global $tinyib, $mysql_posts_table, $mysql_database, $mysql_password, $mysql_username, $mysql_host;
    3.     $message=str_replace("<", "&lt;", $message);
    4.     $message=str_replace("'", "&#39;", $message);
    5.     $message=str_replace("\n", "<br>\n", $message);
    6.     $cd = getcwd();
    7.     $lastSlash = 0;
    8.     if (($lastSlash = strrpos($cd, '/')) === false)
    9.     {
    10.         if (($lastSlash = strrpos($cd, '\\')) === false)
    11.         {
    12.             $lastSlash = 0;
    13.         }
    14.     }
    15.     $boardAddress = substr($cd, $lastSlash+1);
    16.     if(preg_match("#.*(>>|&gt;&gt;)([0-9]+).*#is", $message)) {
    17.         if($tinyib['databasemode']=="flatfile") {
    18.             $board=file("inc/flatfile/.posts");
    19.             $threads = array();
    20.             for($i=0; $i<count($board); $i++) {
    21.                 if(isset($board[$i])) {
    22.                     $board[$i]=explode("\t", $board[$i]);
    23.                     if(!$threads[$board[$i][0]]=$board[$i][1]) $threads[$board[$i][0]]=$board[$i][0];
    24.                 }
    25.             }
    26.             function postRef($threads, $boardAddress, $matches) {
    27.                 return "<a href='/{$boardAddress}/res/{$threads[$matches[2]]}.html#{$matches[2]}'>&gt;&gt;{$matches[2]}</a>";
    28.             }
    29.             $callback = curry('postRef', 3);
    30.             $message=preg_replace_callback("#(>>|&gt;&gt;)([0-9]+)#si", $callback($threads, $boardAddress), $message);
    31.         } elseif($tinyib['databasemode']=="mysql") {
    32.             mysql_connect($mysql_host, $mysql_username, $mysql_password);
    33.             function postRef($matches) {
    34.                 global $mysql_posts_table, $mysql_database, $__link, $tinyib;
    35.                 $id=&$matches[2];
    36.                 $result = mysql_db_query($mysql_database, "SELECT `parent` FROM `".$mysql_posts_table."` WHERE `id` = $id;");
    37.                 if($result) while($post=mysql_fetch_assoc($result)) $par=$post['parent'];
    38.         if($par) return "<a href=\"{$tinyib['dir']}{$tinyib['board']}/res/$par.html#$id\">&gt;&gt;$id</a>";
    39.         else return "<a href=\"{$tinyib['dir']}{$tinyib['board']}/res/$id.html\">&gt;&gt;$id</a>";
    40.             }
    41.             $message=preg_replace_callback("#(>>|&gt;&gt;)([0-9]+)#", "postRef", $message);
    42.             mysql_close();
    43.         }
    44.     }
    45.     $message_lines=explode("\n", $message);
    46.     for($i=0; $i<count($message_lines); $i++) {
    47.         if(preg_match("#^(\*|\+|-) .*#si", $message_lines[$i])) {
    48.             if(!preg_match("#^(\*|\+|-) .*#si", $message_lines[$i-1]) && substr($message_lines[$i-1], 0, 4)!="<ul>" && substr($message_lines[$i-1], 0, 4)!="<li>"){
    49.                 $message_lines[$i]="<ul>".preg_replace("#^(\*|\+|-) (.*)#si", "<li>\\2</li>", $message_lines[$i]);
    50.             }
    51.             $message_lines[$i]=preg_replace("#^(\*|\+|-) (.*)#si", "<li>\\2</li>", $message_lines[$i]);
    52.             if(!preg_match("#^(\*|\+|-) .*#si", $message_lines[$i+1]) && substr($message_lines[$i+1], 0, 5)!="</ul>" && substr($message_lines[$i+1], 0, 4)!="<li>"){
    53.                 $message_lines[$i].="</ul>";
    54.             }
    55.         }
    56.         if(preg_match("|^[0-9]+\..*|si", $message_lines[$i])) {
    57.             if(!preg_match("|^[0-9]+\..*|si", $message_lines[$i-1]) && substr($message_lines[$i-1], 0, 4)!="<ol>" && substr($message_lines[$i-1], 0, 4)!="<li>"){
    58.                 $message_lines[$i]="<ol>".$message_lines[$i];
    59.             }
    60.             $message_lines[$i]=preg_replace("|[0-9]+\.(.*)|si", "<li>\\1</li>", $message_lines[$i]);
    61.             if(!preg_match("|^[0-9]+\..*|si", $message_lines[$i+1]) && substr($message_lines[$i+1], 0, 5)!="</ol>" && substr($message_lines[$i+1], 0, 4)!="<li>"){
    62.                 $message_lines[$i].="</ol>";
    63.             }
    64.         }
    65.         $message_lines[$i]=preg_replace("|^>(.*)|is", "<span class=\"unkfunc\">&gt;\\1</span>", $message_lines[$i]);
    66.         if(preg_match("|^[\s]{4}.+$|si", $message_lines[$i])){
    67.             $message_lines[$i]=preg_replace("|^[\s]{4}(.+)$|si", "<pre>\\1</pre>", $message_lines[$i]);
    68.         }
    69.     }
    70.     $message=implode("\n", $message_lines);
    71.     $message=preg_replace("|\*\*([^\*\*]+)\*\*|si", "<strong>\\1</strong>", $message);
    72.     $message=preg_replace("|\*([^\*]+)\*|si", "<em>\\1</em>", $message);
    73.     $message=preg_replace("|__([^__]+)__|si", "<span style='text-decoration: underline;'>\\1</span>", $message);
    74.     $message=preg_replace("#(http://|ftp://|mailto:|irc:|news:)([^\s]+[^\s\.,?(!):;])#si", "<a href='\\1\\2' target='_blank'>\\1\\2</a>", $message);
    75.     $message=preg_replace("|%%([^%%]+)%%|si", "<span class='spoiler'>\\1</span>", $message);
    76.     $message=preg_replace("|`([^`]+)`|si", "<pre>\\1</pre>", $message);
    77.     return $message;
    78. }
    Нужно сделать чтобы вставка была с ютьюба - рутьюба - и конечно же редтюба :} размер видео 320 на 240 если кто уже делал подобное посоветуйте как получше написать :)
     
  6. Крыс

    Крыс Активный пользователь

    С нами с:
    3 фев 2012
    Сообщения:
    449
    Симпатии:
    0
    Блин, ты принципиально ничего не хочешь делать сам?
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    У человека социальный эксперимент. Типа написать весь сайт чужими руками бесплатно. http://oneredpaperclip.blogspot.com
     
  8. Колбася

    Колбася Активный пользователь

    С нами с:
    12 дек 2011
    Сообщения:
    722
    Симпатии:
    0
    С участием добровольцев! :)
    Я уже дописал там :) terget blank чтоб ссылка открывалась в новом окне))
    Сейчас вот что читаю - http://www.php.su/functions/?preg-replace

    Добавлено спустя 34 секунды:
    и вот - может кому будет интересно :) - http://www.mysql.ru/docs/man/Date_and_time_functions.html