Str_replace Teljes sorok törlése.

Str_replace Teljes sorok törlése.
2019-10-13T17:35:48+02:00
2019-10-13T19:30:37+02:00
2022-08-11T15:25:30+02:00
Hutolada
Sziasztok. Azt szeretném kérdezni,hogy van egy adott kódom,de nem tudom,hogy lehetne pl azt megoldani,hogy van 9 sor.

A következő soroket törölni:

Tahát szeretném törölni a 2,3,4,5,8,9 sort
Mert csak ezek kellenek.:
1,6,7

sak ez maradjon a file-ban:
#EXTM3U
#EXTINF:-1,(#3)  - M1
https://streaming.mytvback.com:443/stream/3ZJVn3VRxULXFvj3Ciz-SA/157..
A kódom így néz ki:

<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://onlinestream.live/play'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, 'https://onlinestream.live/tv'); $html = curl_exec($ch); $str = "Line 2\nLine 3\rLine 4\r\nLine 5\nLine 8\nLine 9\n"; $order = array("\r", "\r", "\r","\r","\r","\r"); $html = str_replace($order, "", $html); $url = $html; echo ($html); ?>
Az a baj ha lekérem az m1-et vlc-re mindig ezt adja be:

#EXTM3U
#EXTINF:-1,(#1)  - M1
https://redirect.onlinestream.live/streamredir.m3u8?live=m1&ext=.m3u8
#EXTINF:-1,(#2)  - M1
https://c201-node62-cdn.connectmedia.hu:443/31101/f89808b69ffc5d6ab7..
#EXTINF:-1,(#3)  - M1
https://streaming.mytvback.com:443/stream/3ZJVn3VRxULXFvj3Ciz-SA/157..
#EXTINF:-1,(#4) M1 HD
http://152.66.115.226:33391/bysid/100
#EXTINF:-1,(#5 - 193/?) M1- Akkor. Amikor.
M1- Akkor. Amikor.



Azt nem tudom,hogy lehetne a $replace - be sorokat megadni törlés/cserére.
Mutasd a teljes hozzászólást!
Hali!

1. Bontsd a letöltött szöveget (M3U8-fájlt) sorokra:
… $html = curl_exec($ch); $lines = array_map('trim', preg_split('/[\n\r]+/', $html, -1, PREG_SPLIT_NO_EMPTY)); $result = [];
2.a. Ha tutira biztosan mindig az 1., 6. és 7. sort szeretnéd csak visszakapni:
$result = [$lines[0], $lines[5], $lines[6]];
2.b. Ha nem mindig az 1., 6. és 7. sort szeretnéd visszakapni, de fel lehet állítani valamilyen mintát, ami alapján azonosítani lehet a sort és meg tudod adni, hogy mennyi rá következő sort adjon még az illető mintával azonosított sorhoz:
$lineCount = count($lines); $required = [ ['pattern' => '/^#EXTM3U/i', 'additionalLines' => 0], ['pattern' => '/^#EXTINF:\-1,\(#3\)/i', 'additionalLines' => 1], ]; for ($i = 0; $i < $lineCount; $i++) { foreach ($required as $rule) { if (preg_match($rule['pattern'], $lines[$i])) { $result = array_merge($result, array_slice($lines, $i, $rule['additionalLines'] + 1)); $i += $rule['additionalLines']; break; } } }
3. Az eredményül kapott tömböt öszerakva:
$html = implode("\n", $result); $url = $html; echo $html; …
Mutasd a teljes hozzászólást!

  • Nagyon szépen köszönöm. Pontosan ezt szerettem volna.

    Íg nagyon frankó:

    <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://onlinestream.live/play.m3u?id=5901&ext=.m3u'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, 'https://onlinestream.live/tv'); $html = curl_exec($ch); $lines = array_map('trim', preg_split('/[\n\r]+/', $html, -1, PREG_SPLIT_NO_EMPTY)); $result = [$lines[0], $lines[5], $lines[6]]; $str = "Line 1\nLine 2\rLine 3\r\nLine 4\n"; $order = array("\r", "", "\r",""); $html = implode("\n", $result); $url = $html; echo $html; ?>
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd