Итак, я пытаюсь сделать HTML-формуляр и использовать результирующие массивы в PHP. В основном я получаю то, что хочу, но одна вещь сложна, и я уже давно пытаюсь найти и искать в google.Разбиение массива динамической длины в PHP
Короткая версия моего HTML-формуляр:
<html>
<body>
<form action="test.php" method="POST"/>
<table border="0">
<tr>
<td align="right"><span style="font-family:Verdana">Übersicht</span></td>
<td><textarea name="uebersicht" cols="20" rows="20"></textarea></td>
</tr>
</table>
</form>
</body>
</html>
<?php
$uebersicht = $_POST['uebersicht'];
$uebersicht = preg_split('/\n/', $uebersicht);
for ($start=0; $start < count($uebersicht); $start++) {}
?>
А вот пример того, что текст выглядит, как я хочу, чтобы вставить в HTML-формульный:
Samperio (59.)
Brosinski (68.)
0:2
beendet
FSV Mainz 05Borussia Dortmund
Coface Arena, 34.000 Zuschauer
Schiedsrichter: Tobias Stieler aus Hamburg
Reus (18., Aubameyang)
Mkhitaryan (82., Aubameyang)
Mkhitaryan (10.)
Это сильно варьирует в зависимости от целей и карт. Разбить массив не сложно, я просто делаю $uebersicht = preg_split('/\n/', $uebersicht);
, как показано в коде.
Теперь я хочу получить каждый игрок, получивший карту в этой игре (каждая строка, которая заканчивается как Samperio (59.)
), команды (которые также должны быть разделены), каждый гол (например, линия Mkhitaryan (82., Aubameyang)
и каждая помощь (игроки в скобках, как Aubameyang
) в индивидуальной переменной. это важно знать, в какой команде игроки (первые линии являются игроки из FSV Mainz 05
, последние игроки из Borussia Dortmund
).
проблема здесь заключается в ее изменчивости Каждая игра выглядит по-другому, что можно показать в другом примере:
André (39., Brahimi)
Maicon (52., Neves)
Martins Indi (19.)
Marcano (25.)
Pereira (82.)
Imbula (89.)
2:1
beendet
FC PortoFC Chelsea
Estádio do Dragao, 55.000 Zuschauer
Schiedsrichter: Antonio Miguel Mateu Lahoz aus ESP
Willian (45.,)
Cahill (41.)
Azpilicueta (66.)
Matic (79.)
Невозможно работать с заданными номерами строк. Я действительно не знаю, как продолжить здесь и получить то, что я хочу. Есть ли возможность использовать триггер, например, «новая строка» и «(» или «)» в комбинации? Или найти конкретные символы и получить строку, в которой они найдены?
Или есть ли какие-либо решения без preg_split? Без этого первый пример выглядит следующим образом:
Samperio (59.) Brosinski (68.) 0:2 beendet FSV Mainz 05Borussia Dortmund Coface Arena, 34.000 Zuschauer Schiedsrichter: Tobias Stieler aus Hamburg Reus (18., Aubameyang) Mkhitaryan (82., Aubameyang) Mkhitaryan (10.)
Только одна длинная линия - но я догадался, что это сложнее!
Или, может быть, PHP не подходит для этого?
лучше использовать API, например http://www.openligadb.de/Sports – baao
@baao уверен, что если бы у него был такой вариант, он бы этого не делал :) – lrossy