Перейти к содержанию

Minamoto Michi

Администрация
  • Публикаций

    2472
  • Зарегистрирован

  • Посещение

  • Победитель дней

    271

Весь контент Minamoto Michi

  1. public function VideoParser($sText) { /** * youtube.com */ $sText = preg_replace('/<video>(?:http(?:s|):|)(?:\/\/|)(?:www\.|)youtube\.com\/watch\?v=([a-zA-Z0-9_\-]+)(&.+)?<\/video>/Ui', '<iframe width="560" height="315" src="http://www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe>', $sText); /** /** * youtu.be */ $sText = preg_replace('/<video>http:\/\/(?:www\.|)youtu.be\/([a-zA-Z0-9_\-]+)(&.+)?<\/video>/Ui', '<iframe width="560" height="315" src="http://www.youtube.com/embed/$1?rel=0" frameborder="0" allowfullscreen></iframe>', $sText); /** * twitch */ $sText = preg_replace('/<video>(?:http(?:s|):|)(?:\/\/|)(?:www\.|)twitch.tv\/([a-zA-Z0-9_\-]+)(&.+)?<\/video>/Ui', '<iframe src="https://player.twitch.tv/?channel=$1" frameborder="0" scrolling="no" height="315" width="560" class="youtube"></iframe>', $sText); /** * twitch */ $sText = preg_replace('/<video>(?:http(?:s|):|)(?:\/\/|)(?:www\.|)twitch.tv\/([a-zA-Z0-9_\-]+)(&.+)?\/v\/([A-Z]{1}|[0-9]{8}).*<\/video>/Ui', '<iframe src="https://player.twitch.tv/?video=v$3" frameborder="0" scrolling="no" height="315" width="560" class="youtube"></iframe>', $sText); /** * twitch chat */ $sText = preg_replace('/<video>(?:http(?:s|):|)(?:\/\/|)(?:www\.|)twitch.tv\/([a-zA-Z0-9_\-]+)(&.+)?\/chat<\/video>/Ui', '<div align="center"><iframe src="https://www.twitch.tv/$1/chat?popout=" frameborder="0" scrolling="no" height="500" width="650"></iframe></div>', $sText); /** * vimeo.com */ $sText = preg_replace('/<video>http:\/\/(?:www\.|)vimeo\.com\/(\d+).*<\/video>/i', '<iframe src="http://player.vimeo.com/video/$1" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>', $sText); /** * rutube.ru */ $sText = preg_replace('/<video>http:\/\/(?:www\.|)rutube\.ru\/tracks\/(\d+)\.html.*<\/video>/Ui', '<OBJECT width="470" height="353"><PARAM name="movie" value="http://video.rutube.ru/$1"></PARAM><PARAM name="wmode" value="window"></PARAM><PARAM name="allowFullScreen" value="true"></PARAM><EMBED src="http://video.rutube.ru/$1" type="application/x-shockwave-flash" wmode="window" width="470" height="353" allowFullScreen="true" ></EMBED></OBJECT>', $sText); /** * video.yandex.ru */ $sText = preg_replace('/<video>http:\/\/video\.yandex\.ru\/users\/([a-zA-Z0-9_\-]+)\/view\/(\d+).*<\/video>/i', '<object width="467" height="345"><param name="video" value="http://video.yandex.ru/users/$1/view/$2/get-object-by-url/redirect"></param><param name="allowFullScreen" value="true"></param><param name="scale" value="noscale"></param><embed src="http://video.yandex.ru/users/$1/view/$2/get-object-by-url/redirect" type="application/x-shockwave-flash" width="467" height="345" allowFullScreen="true" scale="noscale" ></embed></object>', $sText); /** * vk.com */ $regExp = '/<video>(?:http(?:s|):|)(?:\/\/|)(?:www\.|)vk\.com\/video((?:-|)[\d]+)_((?:-|)[\d]+)(?:\?[\s\S]+|)<\/video>/i'; if(preg_match($regExp, $sText)) { preg_match_all($regExp, $sText, $sTextMatches); for($i=0;$i<count($sTextMatches[1]);$i++){ $html = file_get_contents('http://vk.com/video'.$sTextMatches[1][$i].'_'.$sTextMatches[2][$i]); preg_match('/\\\"hash2\\\":\\\"([a-f0-9]+)\\\"/Ui', $html, $matches); $sText = preg_replace('/(?:http(?:s|):|)(?:\/\/|)(?:www\.|)vk\.com\/video'.$sTextMatches[1][$i].'_'.$sTextMatches[2][$i].'(?:\?[\s\S]+|)/Ui', '<iframe src="http://vk.com/video_ext.php?oid='.$sTextMatches[1][$i].'&id='.$sTextMatches[2][$i].'&hash='.$matches[1].'" width="560" height="315" frameborder="0"></iframe>', $sText); } } return $sText; }
  2. asd.php <?php ini_set('display_errors', 'On'); error_reporting(E_ALL); $sText="<video>http://vk.com/video-50584238_170993059</video>"; print "$sText\n"; $regExp = '/<video>(?:http(?:s|):|)(?:\/\/|)(?:www\.|)vk\.com\/video((?:-|)[\d]+)_((?:-|)[\d]+)(?:\?[\s\S]+|)<\/video>/i'; if(preg_match($regExp, $sText)) { preg_match_all($regExp, $sText, $sTextMatches); for($i=0;$i<count($sTextMatches[1]);$i++){ $html = file_get_contents('http://vk.com/video'.$sTextMatches[1][$i].'_'.$sTextMatches[2][$i]); preg_match('/\\\"hash2\\\":\\\"([a-f0-9]+)\\\"/Ui', $html, $matches); $sText = preg_replace('/(?:http(?:s|):|)(?:\/\/|)(?:www\.|)vk\.com\/video'.$sTextMatches[1][$i].'_'.$sTextMatches[2][$i].'(?:\?[\s\S]+|)/Ui', '<iframe src="http://vk.com/video_ext.php?oid='.$sTextMatches[1][$i].'&id='.$ } } print "$sText\n"; ?> Работает так: # php -ef asd.php <video>http://vk.com/video-50584238_170993059</video> <video><iframe src="http://vk.com/video_ext.php?oid=-50584238&id=170993059&hash=0f1473b96cbfc2fc" width="560" height="315" frameborder="0"></iframe></video> Там точно именно такого типа строка на вход попадает?
  3. Мой - преобразует :) Или надо обязательно с тегами "Видео"?
  4. $regExp = '/(?:http(?:s|):|)(?:\/\/|)(?:www\.|)vk\.com\/video((?:-|)[\d]+)_((?:-|)[\d]+)(?:\?[\s\S]+|)/i'; if(preg_match($regExp, $sText)) { preg_match_all($regExp, $sText, $sTextMatches); for($i=0;$i<count($sTextMatches[1]);$i++){ $html = file_get_contents('http://vk.com/video'.$sTextMatches[1][$i].'_'.$sTextMatches[2][$i]); preg_match('/\\\"hash2\\\":\\\"([a-f0-9]+)\\\"/Ui', $html, $matches); $sText = preg_replace('/(?:http(?:s|):|)(?:\/\/|)(?:www\.|)vk\.com\/video'.$sTextMatches[1][$i].'_'.$sTextMatches[2][$i].'(?:\?[\s\S]+|)/Ui', '<iframe src="http://vk.com/video_ext.php?oid='.$sTextMatches[1][$i].'&id='.$sTextMatches[2][$i].'&hash='.$matches[1].'" width="560" height="315" frameborder="0"></iframe>', $sText); } } Если ему в sText скормить строку http://vk.com/video-50584238_170993059Он в sText положит строку <iframe src="http://vk.com/video_ext.php?oid=-50584238&id=170993059&hash=0f1473b96cbfc2fc" width="560" height="315" frameborder="0"></iframe>Что весьма похоже на настоящий код: <iframe src="https://vk.com/video_ext.php?oid=-50584238&id=170993059&hash=0f1473b96cbfc2fc" width="607" height="360" frameborder="0"></iframe> Исходная версия хочет строки типа <video>http://vk.com/video-50584238_170993059</video>При этом "слепая": из второго числа (170993059) берет только первый символ (1).
  5. Последняя дуэль Пушкина.
  6. Вот и в наши местности весна полноценная пришла. Чирикают всякие "хохловатые желтушкИ" (def. от мелкой): Расцвели цветы, и уже (если присмотреться) что-то летает:
  7. Бремя доказательства лежит на тебе, формально, как на авторе. Хоть мне и достаточно будет привести один любой контрпример, чтоб твоя фантазия стала ложью. Делаем?
  8. Подпоить десептикона - бесценно: http://webm.armarium.org/i/2ARNYC.webm
  9. Интересно, какая цель у твоей фантазии?Есть те, что работают хуже, есть те, что так же. Есть, что быстрее.
  10. Скорее, "Новое зелье Драко не вызывало эпичного похмелья только у хозяина".
  11. Minamoto Michi

    К.Г.Ж.

    — Тук-тук! — Хто там?
  12. Конкурс фанфиков от МВД.
  13. Minamoto Michi

    Windows

    Может, это про Смартскрин? Типа: "...Установил Windows 10, скачал и запустил mail.ru agent..."
  14. Игровая механика такая механика.
  15. Скоро на экранах [R!]
  16. Результат прошлого обучения был "шумноват": https://i.ytimg.com/vi/bh2K9FFZjcM/maxresdefault.jpg Не скрою, обучение - на уровне:
  17. Minamoto Michi

    Windows

    "Счастье всем, и пусть никто не уйдёт обиженным" https://habrahabr.ru/company/eset/blog/279403/
  18. Кому аватарку?? :)
  19. Вариант: на другом компе качаешь и нарезаешь касперовский диск:https://support.kaspersky.ru/4162 Потом грузишь пострадавший комп с него и чистишь.
  20. "Осилила" частная, потому как госы это все технически прошли лет тридцать-пятьдесят назад. Периодически, пробуют на текущем уровне "железа", но результат, пока, один: не окупается. Тут ведь основная фишка - чтоб "килограмм на орбите" дешевле стал.
  21. "Ванна не работает", или "К восьмому — готов"!
  22. Задарили на ДР кайфун, и что с ним делать - я же не курю?

    1. Показать предыдущие комментарии  Ещё #
    2. Minamoto Michi

      Minamoto Michi

      Будет стоять, как нанокальян, точно :)

    3. Lance

      Lance

      Погуглил. Им, похоже, можно развлекаться как паззлом.

    4. Minamoto Michi

      Minamoto Michi

      Ты знал! Его в три подхода собирали, после ответа "а как он устроен?" :)

      P.S.:На трезвую голову оказался не кайфун, но iJust, тоже "из них".

×
×
  • Создать...