@xplover13

Как записать каждое значение отдельно?

Через curl получаю HTML:
<title>TEST PAGE</title>
<body background="fon.jpg">
<h1 style="text-align:center;">TEXT</h1>
<p style="text-align:center;">GOOD</p>
</body>
<center>
  <form method="POST" action="" style="margin-top:5%">
  </form>
<br/><br/>
Name: Moscow<br>Status: <font color=red>Yes</font><br>Number Status: <font color=green>5009</font><br>Phone number: <font color=red>+790000000</font><br></center>
</center>
</body>


Из него мне нужно доставать и записывать куда-то данные:
Name: Moscow
Status:Yes
Number Status:5009
Phone number:+790000000

Понятно дело, можно извернуться кверху головой и достать эти данные, через ф-ции или еще чего-нибудь.

Проблема в том, что curl может вернуть нам вовсе что-то типа - Error: 5009 и тут уже задача стоит проверять как-то типо:
if ($data != Error)) {
//
}


ЗАДАЧА выбрать данные и записать каждое значение - отдельно, чтобы в дальнейшем к нему можно было легко обращаться по названию (Name, Status, Number Status итд, так как эти поля являются УНИКАЛЬНЫМИ, а то что через двоеточие - всегда разное). Если еще проще - вот есть JSON формат, $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; в нем легко обратится к "a" и получить число 1. Примерно тоже самое мне нужно. Может как-то записать эти данные через json_encode или записать в массив?

P.s. HTML теги перед записью можно убрать, они не нужны.
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Тупой вариант:
if (preg_match("#</form>[\s\r\n]*<br/><br/>[\s\r\n]*(.+?)</center>#s", $data, $regs))
{
        foreach(explode("<br>", $regs[1]) as $v)
        {
                if (preg_match("#^([^:]+):\s*(.+)$#", strip_tags($v), $regs2))
                {
                        $arr[$regs2[1]] = $regs2[2];
                }
        }
}
echo($arr['Name']." = ".$arr['Status']); // Moscow = Yes
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы