Парсинг <script type=“text/javascript”> на php

103
08 февраля 2022, 15:40

Создал парсер

В html документе есть код

<script type="text/javascript">
    var player = new Playerjs({
        id:"videoplayer2535",
        file:"https://ashdi.vip/content/stream/films/zavtra_ne_pomre_nkoli_2535/hls/index.m3u8",
        poster:"https://ashdi.vip/content/stream/films/zavtra_ne_pomre_nkoli_2535/screen.jpg",
        subtitle:"",
    });
</script>

Как средствами парсера вытянуть ссылку

https://ashdi.vip/content/stream/films/zavtra_ne_pomre_nkoli_2535/hls/index.m3u8

Пробовал так

$stream = $one_dom->find('script[type=text/javascript]', 0);

Подскажите решение.

Answer 1

Можно использовать регулярные выражения

Javascript

let text=`
<script type="text/javascript">
    var player = new Playerjs({
        id:"videoplayer2535",
        file:"https://ashdi.vip/content/stream/films/zavtra_ne_pomre_nkoli_2535/hls/index.m3u8",
        poster:"https://ashdi.vip/content/stream/films/zavtra_ne_pomre_nkoli_2535/screen.jpg",
        subtitle:"",
    });`;
let re = /file:"(.*?)",/;
let result = text.match(re);
document.write(result[1]);

php

$text = '<script type="text/javascript">
    var player = new Playerjs({
        id:"videoplayer2535",
        file:"https://ashdi.vip/content/stream/films/zavtra_ne_pomre_nkoli_2535/hls/index.m3u8",
        poster:"https://ashdi.vip/content/stream/films/zavtra_ne_pomre_nkoli_2535/screen.jpg",
        subtitle:"",
    });
</script>';

preg_match('/file:"(.*?)",/', $text, $matches, PREG_OFFSET_CAPTURE);
print_r($matches[0][0]);

/file:"(.*?)",/; искомая строка начинается с file:" далее группа в скобках: любые символы .* ? лечит квантификатор * от жадности. ", конец группы.

Answer 2
$text = '<script type="text/javascript">
  var player = new Playerjs({
    id: "videoplayer2535",
    file:"https://ashdi.vip/content/stream/films/zavtra_ne_pomre_nkoli_2535/hls/index.m3u8",
    poster: "https://ashdi.vip/content/stream/films/zavtra_ne_pomre_nkoli_2535/screen.jpg",
    subtitle: "",
  });
</script>';
preg_match('/file:"\K[^"]+/', $text, $matches);
echo $matches[0];

https://3v4l.org/eJYOt

READ ALSO
PhpMyadmin ошибка

PhpMyadmin ошибка

У меня ошибка в phpMyadmin, пропали все базы данныхКогда только захожу пишет

129
Масив php, вывести данные

Масив php, вывести данные

Здраствуйте, пожалуйста помогайте чайнику :)

87
Добавление в массив во время перебора PHP

Добавление в массив во время перебора PHP

Мне нужно во время перебора массива добавить новое значение в следующий элементДелаю так:

79
Из базы надо вывести сортированном ввиде

Из базы надо вывести сортированном ввиде

дорогие мегамозги! Помогите, пожалуйстаМне необходимо вывести из базы клиентов сортированном ввиде (Картинка2) В корне проекта содержиться...

77