1

Тема: масив

Ребята помогите с масивом, ну никак не получается их перебирать

+ открыть спойлер
Array
(
    [announce] => http://tr4.torrent4me.com/ann?uk=ckNcgMhQv0
    [announce-list] => Array
        (
            [0] => Array
                (
                    [0] => http://tr4.torrent4me.com/ann?uk=ckNcgMhQv0
                    [1] => http://tr4.tor4me.info/ann?uk=ckNcgMhQv0
                    [2] => http://tr4.tor2me.info/ann?uk=ckNcgMhQv0
                )

            [1] => Array
                (
                    [0] => http://retracker.local/announce
                )

            [2] => Array
                (
                    [0] => http://test
                )

        )

    [comment] => http://kinozal.tv/details.php?id=1773424
    [created by] => uTorrent/2210
    [creation date] => 1593865910
    [encoding] => UTF-8
    [info] => Array
        (
            [files] => Array
                (
                    [0] => Array
                        (
                            [length] => 1901068881
                            [path] => Array
                                (
                                    [0] => The.100.S07E01.720p.rus.LostFilm.mkv
                                )

                        )

                    [1] => Array
                        (
                            [length] => 2028568117
                            [path] => Array
                                (
                                    [0] => The.100.S07E02.720p.rus.LostFilm.mkv
                                )

                        )

                    [2] => Array
                        (
                            [length] => 1722996389
                            [path] => Array
                                (
                                    [0] => The.100.S07E03.720p.rus.LostFilm.mkv
                                )

                        )

                    [3] => Array
                        (
                            [length] => 1728221748
                            [path] => Array
                                (
                                    [0] => The.100.S07E04.720p.rus.LostFilm.mkv
                                )

                        )

                    [4] => Array
                        (
                            [length] => 1532431368
                            [path] => Array
                                (
                                    [0] => The.100.S07E05.720p.rus.LostFilm.mkv
                                )

                        )

                    [5] => Array
                        (
                            [length] => 1552580811
                            [path] => Array
                                (
                                    [0] => The.100.S07E06.720p.rus.LostFilm.mkv
                                )

                        )

                    [6] => Array
                        (
                            [length] => 1423458761
                            [path] => Array
                                (
                                    [0] => The.100.S07E07.720p.rus.LostFilm.mkv
                                )

                        )

                )

            [name] => The.100.  (Season 07) LostFilm
            [piece length] => 4194304
            [pieces] => Ўshn

нужно вывести
                    echo '<channel>' . "\n";
                    echo '<title><![CDATA[' The.100.S07E01.720p.rus.LostFilm.mkv(по порядку) ']]></title>' . "\n";
                    echo '<stream_url><![CDATA[TorrentStream@0(здесь ключ)@1773424']]></stream_url>' . "\n";
                    echo '<logo_30x30><![CDATA[]]></logo_30x30>' . "\n";
                    echo '</channel>' . "\n";
                    echo '<channel>' . "\n";
                    echo '<title><![CDATA[' The.100.S07E02.720p.rus.LostFilm.mkv(по порядку) ']]></title>' . "\n";
                    echo '<stream_url><![CDATA[TorrentStream@1(здесь ключ)@1773424']]></stream_url>' . "\n";
                    echo '<logo_30x30><![CDATA[]]></logo_30x30>' . "\n";
                    echo '</channel>' . "\n";
                    и так далее
                    Спасибо

2

Re: масив

пробовал вот так вроде работает но есть ошибки

+ открыть спойлер
                   foreach (array['info'] as $v)
            { 
            //echo debug($v);
            foreach ( $v as $key => $val ){
                        //echo debug($key);
            //echo debug($val);
            echo '<channel>' . "\n";
                        echo '<title><![CDATA[' .$val[path][0] . ']]></title>' . "\n";
                        echo '<stream_url><![CDATA[Stream@'.$key.'@'.$new_torr_filename.']]></stream_url>' . "\n";
                        echo '</channel>' . "\n";
            }
            }

в конце получаю
<b>Warning</b>:  Invalid argument supplied for foreach() in на вот эту строку foreach ( $v as $key => $val ){

3

Re: масив

bond пишет:

но есть ошибки

в конце получаю
<b>Warning</b>:

А чего не использовать переменную куда получаешь массив?

+ Пример
$array = Array
(
    'announce' => 'http://tr4.torrent4me.com/ann?uk=ckNcgMhQv0',
    'announce-list' => Array(
            Array
                (
                    'http://tr4.torrent4me.com/ann?uk=ckNcgMhQv0',
                    'http://tr4.tor4me.info/ann?uk=ckNcgMhQv0',
                    'http://tr4.tor2me.info/ann?uk=ckNcgMhQv0',
                ),

             Array
                (
                    'http://retracker.local/announce',
                ),
            Array
                (
                    'http://test',
                ),

        ),

    'comment' => 'http://kinozal.tv/details.php?id=1773424',
    'created by' => 'uTorrent/2210',
    'creation date' => 1593865910,
    'encoding' => 'UTF-8',
    'info' => Array
        (
            'files' => Array
                (
                     Array
                        (
                            'length' => 1901068881,
                            'path' => Array
                                (
                                    'The.100.S07E01.720p.rus.LostFilm.mkv',
                                ),

                        ),

                     Array
                        (
                            'length' => 2028568117,
                            'path' => Array
                                (
                                   'The.100.S07E02.720p.rus.LostFilm.mkv',
                                ),
                        ),

                     Array
                        (
                            'length' => 1722996389,
                            'path' => Array
                                (
                                     'The.100.S07E03.720p.rus.LostFilm.mkv',
                                ),

                        ),

                     Array
                        (
                            'length' => 1728221748,
                            'path' => Array
                                (
                                     'The.100.S07E04.720p.rus.LostFilm.mkv',
                                ),

                        ),

                     Array
                        (
                            'length' => 1532431368,
                            'path' => Array
                                (
                                     'The.100.S07E05.720p.rus.LostFilm.mkv',
                                ),

                        ),

                     Array
                        (
                            'length' => 1552580811,
                            'path' => Array
                                (
                                     'The.100.S07E06.720p.rus.LostFilm.mkv',
                                ),

                        ),

                     Array
                        (
                            'length' => 1423458761,
                            'path' => Array
                                (
                                    'The.100.S07E07.720p.rus.LostFilm.mkv',
                                ),

                        ),

                ),

            'name' => 'The.100.  (Season 07) LostFilm',
            'piece length' => 4194304,
            'pieces' => 'Hex данные'
            
            ),
            
            
   );

Примерно так через foreach

+ открыть спойлер
  foreach($array['info']['files'] as $k => $v){
       echo '<channel>' . "\n";
       echo '<title><![CDATA['.$v['path'][0].']]></title>' . "\n";
       echo '<stream_url><![CDATA[TorrentStream@'.$k.'@1773424]]></stream_url>' . "\n";
       echo '<logo_30x30><![CDATA[]]></logo_30x30>' . "\n";
       echo '</channel>' . "\n";
                        
    
}

И на выходе как-то так.

+ открыть спойлер
<channel>
<title><![CDATA[The.100.S07E01.720p.rus.LostFilm.mkv]]></title>
<stream_url><![CDATA[TorrentStream@0@1773424]]></stream_url>
<logo_30x30><![CDATA[]]></logo_30x30>
</channel>
<channel>
<title><![CDATA[The.100.S07E02.720p.rus.LostFilm.mkv]]></title>
<stream_url><![CDATA[TorrentStream@1@1773424]]></stream_url>
<logo_30x30><![CDATA[]]></logo_30x30>
</channel>
<channel>
<title><![CDATA[The.100.S07E03.720p.rus.LostFilm.mkv]]></title>
<stream_url><![CDATA[TorrentStream@2@1773424]]></stream_url>
<logo_30x30><![CDATA[]]></logo_30x30>
</channel>
<channel>
<title><![CDATA[The.100.S07E04.720p.rus.LostFilm.mkv]]></title>
<stream_url><![CDATA[TorrentStream@3@1773424]]></stream_url>
<logo_30x30><![CDATA[]]></logo_30x30>
</channel>
<channel>
<title><![CDATA[The.100.S07E05.720p.rus.LostFilm.mkv]]></title>
<stream_url><![CDATA[TorrentStream@4@1773424]]></stream_url>
<logo_30x30><![CDATA[]]></logo_30x30>
</channel>
<channel>
<title><![CDATA[The.100.S07E06.720p.rus.LostFilm.mkv]]></title>
<stream_url><![CDATA[TorrentStream@5@1773424]]></stream_url>
<logo_30x30><![CDATA[]]></logo_30x30>
</channel>
<channel>
<title><![CDATA[The.100.S07E07.720p.rus.LostFilm.mkv]]></title>
<stream_url><![CDATA[TorrentStream@6@1773424]]></stream_url>
<logo_30x30><![CDATA[]]></logo_30x30>
</channel>

И без ошибок

Отладка кода — это как охота. Охота на баги.
Спасибо сказали: bond1

4

Re: масив

помогите с регуляркой никак не получается
https://cdn-400.vb17110frankfoley.pw/stream2/cdn-400/(вот здесь нужно заменить на свое)/MJTMsp1RshGTygnMNRUR2N2MSlnWXZEdMNDZzQWe5MDZzMmdZJTO1R2RWVHZDljekhkSsl1VwYnWtx2cihVT25EVs1mTtllMZdVUy4EVjpXWtVENNRkQop1RZlnTqtGMZJTSzkVbGlmWqlVP:1595871201:127.0.0.1:dc852b99fb8789afe4746455cdcf642cb839f575fb3459ef043e092ad437eb38/360/index.m3u8
начало строки может менятся содержимое

5

Re: масив

bond пишет:

вот здесь нужно заменить на свое

Я замену делаю str_replace, зачем там регулярка? Та часть, что меняется однозначная привязка по ip, когда получается на сервере ссылка, там ip сервер всегда, т.е. постоянная величина, ее меняем на другую постоянную величину, которая зависит от ip клиента (и более не от чего). Так, что ни какой регулярки не нужно,  str_replace все делает на ура. Более интересный вопрос, как получить эту величину для случайного ip. Я видел, что один автор это делает, но как я не знаю, поэтому у меня просто таблица замены, если бы знал, ничего принципиально бы не изменилось, тем же str_replace ом бы менял, без лишней круговни. Не раскопал, как из ip получить эти 32 байта?

6

Re: масив

bond пишет:

помогите с регуляркой никак не получается
https://cdn-400.vb17110frankfoley.pw/stream2/cdn-400/(вот здесь нужно заменить на свое)/MJTMsp1RshGTygnMNRUR2N2MSlnWXZEdMNDZzQWe5MDZzMmdZJTO1R2RWVHZDljekhkSsl1VwYnWtx2cihVT25EVs1mTtllMZdVUy4EVjpXWtVENNRkQop1RZlnTqtGMZJTSzkVbGlmWqlVP:1595871201:127.0.0.1:dc852b99fb8789afe4746455cdcf642cb839f575fb3459ef043e092ad437eb38/360/index.m3u8
начало строки может менятся содержимое

Для примера свое нужно хотя бы указывать.
Что есть и как ты хочешь,чтобы было понятно.
Пробуй через preg_replace();

+ Пример
$my_dir = 'вот здесь свое';        
$str = 'https://cdn-400.vb17110frankfoley.pw/stream2/cdn-400/вот здесь чужое /MJTMsp1RshGTygnMNRUR2N2MSlnWXZEdMNDZzQWe5MDZzMmdZJTO1R2RWVHZDljekhkSsl1VwYnWtx2cihVT25EVs1mTtllMZdVUy4EVjpXWtVENNRkQop1RZlnTqtGMZJTSzkVbGlmWqlVP:1595871201:127.0.0.1:dc852b99fb8789afe4746455cdcf642cb839f575fb3459ef043e092ad437eb38/360/index.m3u8';
$link = preg_replace('#https://(.*?)/stream2/(.*?)/(.*?)/(.*?)#si','https://$1/stream2/$2/'.$my_dir.'/$4',$str);
echo $link;
+ Выход
https://cdn-400.vb17110frankfoley.pw/stream2/cdn-400/вот здесь свое/MJTMsp1RshGTygnMNRUR2N2MSlnWXZEdMNDZzQWe5MDZzMmdZJTO1R2RWVHZDljekhkSsl1VwYnWtx2cihVT25EVs1mTtllMZdVUy4EVjpXWtVENNRkQop1RZlnTqtGMZJTSzkVbGlmWqlVP:1595871201:127.0.0.1:dc852b99fb8789afe4746455cdcf642cb839f575fb3459ef043e092ad437eb38/360/index.m3u8

посмотреть можно здесь

Отладка кода — это как охота. Охота на баги.
Спасибо сказали: bond1

7 (2020.07.28 15:20:20 отредактировано Mr.Max)

Re: масив

Для начала из страницы нужно брать что нужно а не вырезать что не нужно . Используя preg_match_all можно тем же for перебрать выбранные элементы