Боюсь, вам нужно будет использовать другое регулярное выражение, чтобы получить повторные совпадения матчей. Итак, вы можете сделать что-то вроде этого:
preg_match_all("/(?:S|R|B|O|A|K|H|P|U|i) +(?:IA|E|N|) +[0-9.]+\/[0-9]+ +via +([0-9.]+), +([a-zA-Z0-9.]+|), +cost +(?:[0-9]+:|)[0-9]+, +age +[0-9]+ +\n((?: +via +[0-9.]+, +(?:[a-zA-Z0-9.]+|) +\n)*)/",$s,$matches,PREG_SET_ORDER);
foreach($matches as $id=>$match)
{
unset($matches[$id][0]);
if(isset($match[3])) {
preg_match_all("/ +via +([0-9.]+), +([a-zA-Z0-9.]+|) +\n/",$match[3],$subpatternMatches,PREG_SET_ORDER);
unset($matches[$id][3]);
foreach($subpatternMatches as $spmid=>$spm) {
unset($subpatternMatches[$spmid][0]);
$matches[$id] = array_merge($matches[$id],$subpatternMatches[$spmid]);
}
}
}
Который получает следующие данные для вашего файла примера:
array(4) {
[0]=>
array(6) {
[0]=>
string(6) "10.140"
[1]=>
string(8) "bond1.30"
[2]=>
string(6) "10.141"
[3]=>
string(8) "bond1.31"
[4]=>
string(6) "10.142"
[5]=>
string(8) "bond1.32"
}
[1]=>
array(2) {
[1]=>
string(6) "10.140"
[2]=>
string(8) "bond1.30"
}
[2]=>
array(2) {
[1]=>
string(6) "10.140"
[2]=>
string(8) "bond1.30"
}
[3]=>
array(2) {
[1]=>
string(6) "10.140"
[2]=>
string(8) "bond1.30"
}
}
Ваша ошибка указывает, что ваш bundle.js
загружен относительно текущего URL-адреса. Добавьте /
в начало src
, чтобы сделать его абсолютным.
<script src="/bundle.js"></script>