@codertj
Пока учусь в php

Помогать в regex можете?

есть такой код

"file":"[480p]\/storage\/458f706a\/hls\/stream_2.m3u8,[720p]\/storage\/458f706a\/hls\/stream_1.m3u8,[1080p]\/storage\/458f706a\/hls\/stream_0.m3u8","thumbnails":"\/storage\/458f706a\/thumbnails\/data.vtt",


как меня вытащить каждый [480p]\/storage\/458f706a\/hls\/stream_2.m3u8, отдельно в preg_match_all
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
@maksam07
Разделитель через запятую уже не работает?
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Enokin
@Enokin
Full-stack разработчик
$string = '[480p]\/storage\/458f706a\/hls\/stream_2.m3u8,[720p]\/storage\/458f706a\/hls\/stream_1.m3u8,[1080p]\/storage\/458f706a\/hls\/stream_0.m3u8';
preg_match_all('/([^,]+)/', $string, $matches);

print_r($matches[0]);

Ответ будет таким
Array
(
    [0] => [480p]\/storage\/458f706a\/hls\/stream_2.m3u8
    [1] => [720p]\/storage\/458f706a\/hls\/stream_1.m3u8
    [2] => [1080p]\/storage\/458f706a\/hls\/stream_0.m3u8
)
Ответ написан
Комментировать
v3shin
@v3shin
Веб-шаман
Есть два стула:
$a = "[480p]\/storage\/458f706a\/hls\/stream_2.m3u8,[720p]\/storage\/458f706a\/hls\/stream_1.m3u8,[1080p]\/storage\/458f706a\/hls\/stream_0.m3u8";
preg_match_all('/(\[480p\].*?),/', $a, $m);
var_dump($m[1][0]);

$a = "[480p]\/storage\/458f706a\/hls\/stream_2.m3u8,[720p]\/storage\/458f706a\/hls\/stream_1.m3u8,[1080p]\/storage\/458f706a\/hls\/stream_0.m3u8";
$a = explode('[480p]', $a);
if (isset($a[1])) {
	$a = explode(',', $a[1]);
	var_dump('[480p]' . $a[0]);
}
Ответ написан
Комментировать
@pantsarny
Ну судя по всему это json, только в {} обернуть
Затем json_decode
Затем file в explode с разделителем запятая
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы