Указать полученный с DOM путь к плееру в php

Существует: http://server1.com/player.php Внутри сервера 1 есть игрок с Clappr это выглядит так:

<script type='text/javascript'>

        var player = new Clappr.Player({
        source: window.atob("bXlzdHJlYW0ubTN1OA=="),
        plugins: [],
        parentId: '#player',
        width: '100%',
        height: '100%',
        //hlsMinimumDvrSize: 0,
        chromecast: {
          appId: '9DFB77C0',
          media: {
            type: ChromecastPlugin.None,
            title: 'Tittle',
            subtitle: 'Sub'
        }}
        //playback: {
          //  hlsjsConfig: {
            //    liveSyncDurationCount: 2
            //}
        //}
    });

Я использовал следующий код в файле с именем test.php внутри http://server2.com.

  • (Проверьте код PHP в конце).

И я получил:

var player = new Clappr.Player({ source: window.atob("bXlzdHJlYW0ubTN1OA=="), plugins: []
  1. Как расшифровать маршрут? (bXlzdHJlYW0ubTN1OA== в mystream.m3u8)
  2. После того, как путь расшифрован, как я могу оставить его в покое для использования в новом проигрывателе?

[https://stackoverflow.com/a/44234560/12765259][1]


$url = 'http://server1.com/player.php';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10');
$html = curl_exec($curl);
curl_close($curl);
$dom = new DOMDocument();
@$dom->loadHTML($html);  //convert character asing
$xpath = new DOMXPath($dom);    
$script = $xpath->query ('//script[contains(text(),"window.atob(")]')->item (0)->nodeValue;

$json = end(explode( 'sources:', $script));
$json = explode ( ']', $json)[0].']';

echo $json 

?>```


  [1]: https://stackoverflow.com/a/44234560/12765259

person slowdmelendez360    schedule 13.09.2020    source источник
comment
Что я действительно хочу сделать, так это: сохранить путь потока внутри файла на сервере моего веб-сайта, чтобы при изменении пути с server1.com он продолжал работать внутри server2.com.   -  person slowdmelendez360    schedule 13.09.2020


Ответы (1)


Для этого вы должны найти следующие функции PHP: base64_decode и preg_match

Затем сделайте что-то вроде этого:

// get $html with CURL...
// for example
$html = '<script>...window.atob("bXlzdHJlYW0ubTN1OA==")...';

// capture window.atob("....") inside a variable: $html_snip
preg_match('/(window\.atob\(\".*\"\))/', $html, $html_snip);

// transform it to array [0][window.atob(] [1][....] [2][)]
$html_snip = explode('"', $html_snip[0]);

// get the encoded part [1][...]
$encoded_link = $html_snip[1];

// decode it from base64 to "mystream.m3u8"
$real_link = base64_decode($encoded_link);

// Now you can use $real_link where you want

// A. save it in a file...
$save_path = "links.txt";
file_put_contents($save_path, $real_link);

// B. echo it inside a <script>
<script>
    // javacript here....
    var real_link = "<?php echo $real_link; ?>";
</script>
person verjas    schedule 13.09.2020