Portál AbcLinuxu, 26. dubna 2024 00:44


Dotaz: Jak číst data řádku po řádce v PHP

6.3.2011 17:24 Pepa
Jak číst data řádku po řádce v PHP
Přečteno: 805×
Odpovědět | Admin
Zdravím, potřeboval bych číst data z proměné řádku po řádce (z formuláře z textarea a pak taky z databáze). Na internetu jsem všude našel jen jak číst řádku po řádce ze souboru. Ale z proměné to jsem nikde nenašel. Nevíte někdo jak na to? Díky

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 2× (LangPa, Tomáš Heger (geckon))
6.3.2011 18:09 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Jak číst data řádku po řádce v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžeš zkusti třeba:
$rows = explode("\n", $textareadata);
echo $rows[0];
echo $rows[1];
6.3.2011 18:33 Pepa
Rozbalit Rozbalit vše Re: Jak číst data řádku po řádce v PHP
No jo to mě nenapadlo, díky moc!
7.3.2011 00:01 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak číst data řádku po řádce v PHP
No, ale to tam zůstane '\r', lepší by bylo:
$rows = explode("\r\n", $textareadata);
echo $rows[0];
echo $rows[1];
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
LangPa avatar 7.3.2011 00:10 LangPa | skóre: 12 | blog: LangPavel | Hradec Králové
Rozbalit Rozbalit vše Re: Jak číst data řádku po řádce v PHP
Pokud vím, "\r" není povinné a (opravte mě), vkládají ho jen windows.
7.3.2011 10:21 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak číst data řádku po řádce v PHP
Opravím, více řádkové data jako textarea se posílají (nebo by se měla) \r\n, bez ohledu na OS či prohlížeč.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
7.3.2011 05:53 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Jak číst data řádku po řádce v PHP
Tradičně se říká:
Linux - \n
Widle - \r\n
Mac OS - \r (novější asi \n, ale nevím přesně nejsem jablkožrout)
Takže pokud vás to trápí, asi bych šel touto cestou:
$textareadata="foo
bar\r
baz\rok?";

$rows = preg_split("/\\n|\\r\\n|\\r/", $textareadata);

print_r($rows);
P.S. Pro extra velké množství dat se nabízí i strtok(), ale myslím že ve většině případů je to pole postačující řešení.
7.3.2011 10:47 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak číst data řádku po řádce v PHP
Tradičně ano, ale jak jsem psal výše z textarea vám přijde \r\n (nebo by mělo).

Protože považuji za jediný správný konec řádku '\n' :), tak vstupní data upravuji tímto způsobem:
$textareadata = str_replace("\r","\n",str_replace("\r\n","\n",$textareadata));
A pak už lze použít i to explode("\n",$textareadata);.
Někdy může být nepříjemné zjištění, že řetězce končí '\r' a to ne vždy.
To je pak sranda u regexp něco jako '.*baf$' :).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.