在PHP

时间:2015-10-21 15:43:44

标签: php html arrays

所以,我正在尝试做一个HTML表格并在PHP中使用结果数组。大多数情况下,我得到了我想要的东西,但有一件事很棘手,而且我已经尝试在谷歌搜索了很长一段时间了。

我的HTML公式的简短版本:

<html>
  <body>
    <form action="test.php" method="POST"/>
      <table border="0">
        <tr>
          <td align="right"><span style="font-family:Verdana">&#220;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.)结尾),团队(也必须分开),每个目标(如行{{ 1}}和每个助手(括号中的球员,如Mkhitaryan (82., Aubameyang))成为一个单独的变量。重要的是要知道球员是哪支球队(第一线是来自Aubameyang的球员,最后一线是来自FSV Mainz 05的球员。

这里的问题是它的可变性。每个游戏看起来都不同,这可以在另一个例子中显示:

Borussia Dortmund

无法使用设定的行号。我真的不知道如何继续前进,得到我想要的东西。是否有可能使用触发器,例如“new line”和“(”或“)”之类的组合?或者搜索特定字符并获取它们所在的行?

或者没有preg_split的解决方案吗?没有,第一个例子看起来像这样:

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.)

只有一条长线 - 但我猜这种方式更难?!

或者PHP可能不是正确的“语言”?

1 个答案:

答案 0 :(得分:1)

对于记录,没有更好的语言,可以使用php,javascript,python,无论你想要什么。更多的是要弄清楚这个过程,一旦你这样做,你可以用你想要的任何语言编写代码。

您最好的选择是逐行浏览,并尝试在每一行中确定内容,目标,辅助目标,惩罚或其他元数据。

我首先将你已经完成的newline分解为一个数组,然后使用foreach数组元素,通过另一个查找某些预设模式的regex语句运行它。对于目标,它可能是一些文本,后跟一个开头和右括号,中间有一个整数。

你需要学习一个垃圾正则表达式来做到这一点,但它确实是唯一的方法,除非你想支付stats.com或使用另一个API来获得已正确格式化的数据。

此外,第一线可能始终是球队,但目标数是使其余线条动态化的原因。这样,您可以更轻松地找到某些元数据。

所以,你可以说第1行总是团队名称,第2行总是位置,然后其他一切都是惩罚和目标。