За последние 24 часа нас посетили 17627 программистов и 1639 роботов. Сейчас ищут 2240 программистов ...

Задача на PHP с поиском и выборкой нужных значений в строке.

Тема в разделе "Сделайте за меня", создана пользователем bull1251, 7 сен 2014.

  1. bull1251

    bull1251 Новичок

    С нами с:
    7 сен 2014
    Сообщения:
    5
    Симпатии:
    0
    Предисловие.
    Имеется разрабатываемый сейчас сайт http://svadebka.hol.es на базе DLE, с разделом "видеозаписи". В указанном разделе размещаются публикации со вставкой видеозаписей из сервиса YouTube. В шаблоне сайта размещен блок вывода последних видеозаписей. Данный блок выводит ссылки на последние размещенные публикации из раздела "видеозаписи", а также должен выводить скриншот видеозаписи размещенного внутри публикации.

    Постановка задачи.
    Информацию, размещенную внутри каждой публикации можно вытащить из БД в виде одной строки имеющий примерно следующий вид:

    <!--dle_media_begin:http://www.youtube.com/watch?v=s7Xm1fmV9DU--><iframe title="YouTube video player" width="640" height="480" src="http://www.youtube.com/embed/s7Xm1fmV9DU?rel=0&amp;wmode=transparent" frameborder="0" allowfullscreen></iframe><!--dle_media_end-->

    На данном примере указан только код вставки видео на страницу. Но нужно учитывать, что до и после данного кода может находиться текст публикации.
    Внутри данного кода имеется необходимый нам ID нужного видео, состоящий из 11 символов: "s7Xm1fmV9DU".
    Скриншот нужного видео можно получить с ютуба по ссылке http://img.youtube.com/vi/[VIDEO_ID]/[0-3].jpg
    Конечно у каждого видео будет разный ID, но ссылка на нужный ID всегда следует за строчкой "src="http://www.youtube.com/embed/"

    Задача. Средствами PHP необходимо:
    1) взять текст публикации из БД в виде одной строки (присвоить его значение к строковой переменной) ;
    2) найти в данной строке значение "src="http://www.youtube.com/embed/" и получить позицию последнего символа;
    3) с последующих дальше позиций получить значение 11 символов и присвоить его ко второму переменному.
    4) вывести скриншот видеозаписи в нужном месте блока "видеозаписи".
    Например так <img src="http://img.youtube.com/vi/<?php echo значение_переменной2 ?>/0.jpg" alt="Скриншот фильма" {title}">

    На сайте сейчас вывод скриншотов реализовано не совсем так как нужно. У меня не получается реализовать 2 и 3 пункт поставленной задачи. Подскажите как решить данную задачу.
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Задача на PHP с поиском и выборкой нужных значений в стр

    Именно так как вы написали и решить. Вам что надо, код за вас написать? :)
     
  3. bull1251

    bull1251 Новичок

    С нами с:
    7 сен 2014
    Сообщения:
    5
    Симпатии:
    0
    Re: Задача на PHP с поиском и выборкой нужных значений в стр

    Да, у меня не получается написать код.

    Пробовал писать след. код:
    $str = '<!--dle_media_begin:http://www.youtube.com/watch?v=s7Xm1fmV9DU--><iframe title="YouTube video player" width="640" height="480" src="http://www.youtube.com/embed/s7Xm1fmV9DU?rel=0&amp;wmode=transparent" frameborder="0" allowfullscreen></iframe><!--dle_media_end-->';

    preg_match (".+/embed//([^\b]+)",$str, $matches);
    print_r( $matches);

    На выходе получаю ошибку. Не подскажете как должно быть правильно?
     
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Задача на PHP с поиском и выборкой нужных значений в стр

    какую?
     
  5. bull1251

    bull1251 Новичок

    С нами с:
    7 сен 2014
    Сообщения:
    5
    Симпатии:
    0
    Re: Задача на PHP с поиском и выборкой нужных значений в стр

    Проверял на сайте http://sandbox.onlinephpfunctions.com
    PHP версии 5.3.27 выдает следующий результат:
    Код (Text):
    1. Result:
    2. <br /> <b>Warning</b>: preg_match() [<a href='function.preg-match'>function.preg-match</a>]: No ending delimiter '.' found in <b>[...][...]</b> on line <b>3</b><br />
     
  6. bull1251

    bull1251 Новичок

    С нами с:
    7 сен 2014
    Сообщения:
    5
    Симпатии:
    0
    Re: Задача на PHP с поиском и выборкой нужных значений в стр

    Решил задачу следующим кодом:
    Код (Text):
    1. <? $id = strpos('{short-story}', "embed");
    2. echo substr('{short-story}', $id+6, 11); ?>
     
  7. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Re: Задача на PHP с поиском и выборкой нужных значений в стр

    preg_match ("~embed\/(.*?)\?~",$str, $matches);