Autor Zpráva
Pavelxyz
Profil *
Ahoj,

mám dotaz, potřeboval bych poradit jak néjlepe a bezpečně parsovat text v následující podobě - vráti se mi to jako Plain Text v rámci HTTP.

name: value
name: value
name: value
.
.
.

Tereticky by neměl value pokračovat nějakým oddělovačem řádků... Tedy vždy je hodnota na jednom řádku. Samozřejmě, že name se mění.

Díky za rady

Pavel
Alphard
Profil
Rozdělit podle konce řádků (explode()).
Pak jednotlivé prvky opět rozdělit podle :, jestli je možné, že value obsahuje dvojtečku, použít třetí parametr limit funkce explode().
Z výsledných prvků pomocí trim() osekat bílé znaky.
Majkl578
Profil
Osobně bych spíš než explodování volil regulár:
$data = <<< DATA
name: value
name: value
name: value
DATA;

preg_match_all('~^(.*)\:(.*)$~m', $data, $matches, PREG_SET_ORDER);

var_dump($matches);
Tori
Profil
Majkl578:
má regulár nějakou nevýhodu oproti explodování?
(jeho výhodou a tedy důvodem vaší volby je předpokládám flexibilita?)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: