Например, у меня есть четыре ссылки в следующей переменной:
$content = "
http://example.com/folder/Name.S01E01.720p.mp4
http://example.com/folder/Name.S01E02.720p.mp4
http://example.com/folder/Name.S02E01.480p.mp4
http://example.com/folder/Name.S02E02.480p.mp4
";
В переменной up я хочу создать заказ в соответствии с несколькими словами:
Season template is S00 And Episode template is E00 And Quality template is 720p and 480p
Итак, мне нужно объединить эти значения, чтобы получить результат,
мне нужна какая-то функция, чтобы сделать $ контент примерно таким:
Array
(
[01] => //Season Number
(
[720p] =>//Quality Name
(
[URLs] => //Full Url's
(
[0] => http://example.com/folder/Name.S01E01.720p.mp4
[1] => http://example.com/folder/Name.S01E02.720p.mp4
)
)
)
[02] => //Season Number
(
[480p] => //Quality Name
(
[URLs] => //Full Url's
(
[0] => http://example.com/folder/Name.S02E01.480p.mp4
[1] => http://example.com/folder/Name.S02E02.480p.mp4
)
)
)
)
Я надеюсь, вы понимаете, о чем я.
пожалуйста, посмотрите это:
$content = "
http://example.com/folder/Name.S01E01.720p.mp4
http://example.com/folder/Name.S01E02.720p.mp4
http://example.com/folder/Name.S02E01.480p.mp4
http://example.com/folder/Name.S02E02.480p.mp4
";
if(preg_match_all('/(https?://[^ ]+?(?:.mkv|.mp4))/ms', $content, $matches)){
foreach($matches[0] as $link){
if(preg_match('/(d++(p))/i',$link,$q)){
$quality[] = $q[0];
}
$full_url[] = trim(urldecode($link));
}
}
if(preg_match_all('/(S(d++)E(d++))/i', $content, $parts)){
foreach($parts[0] as $part){
$season[] = $part[2];
}
}
//var_dump($quality);
//var_dump($full_url);
//var_dump($season);
я хочу совместить сезон с $ full_url и качеством $.
Всего 1 ответ
Я добавил часть имени в качестве первого уровня и номер эпизода вместо динамического индекса для каждого URL. Если вы не хотите их использовать, просто используйте $result[$m[2]][$m[4]]['URLs'][] = $url;
, Я также пропустил часть .mp4
на случай, если у вас есть другие расширения:
$lines = array_filter(explode("
", $content));
foreach($lines as $url) {
preg_match('/^([^.]+).S(dd)E(dd).(d+p)/', pathinfo($url, PATHINFO_BASENAME), $m);
$result[$m[1]][$m[2]][$m[4]]['URLs'][$m[3]] = $url;
}
Учитывая ваш $content
это даст следующее:
Array ( [Name] => Array ( [01] => Array ( [720p] => Array ( [URLs] => Array ( [01] => http://example.com/folder/Name.S01E01.720p.mp4 [02] => http://example.com/folder/Name.S01E02.720p.mp4 ) ) ) [02] => Array ( [480p] => Array ( [URLs] => Array ( [01] => http://example.com/folder/Name.S02E01.480p.mp4 [02] => http://example.com/folder/Name.S02E02.480p.mp4 ) ) ) ) )
^
и захват одного или нескольких +
не точечных [^.]
Символов .
буква S
и взять две цифры dd
E
и запишите две цифры dd
.
и захватить одну или несколько цифр d+
и символ p