Autor | Zpráva | ||
---|---|---|---|
karel_ Profil * |
#1 · Zasláno: 13. 10. 2011, 15:10:44
Ahoj,
"nejakym zázrakem" a rychlostudiem jsem došel k řešení rozparsování částí textu do dvou proměnných, ale nemůžů přijít na to, jak "připojit" další: $desc="user:karelp popis od uzivatele, nebo nejaky komentar"; preg_match('/(?P<status>\w+):(?P<username>\w+)/', $desc, $matches); print_r($matches); /* rozparsuje do pole: Array ( [0] => user:karelp [status] => user [1] => user [username] => karelp [2] => karelp */ ) tj jak připojit "popis od uzivatele, \nnebo nejaky komentar" ? Tuším, že by to mohlo být preg_match('/(?P<status>\w+):(?P<username>\w+)\n(?P<note>\w+)/', $desc, $matches); ale nebere... |
||
Jack Finger Profil |
#2 · Zasláno: 13. 10. 2011, 16:59:35 · Upravil/a: Jack Finger
karel_
Dle mého názoru je zde problémů více: 1. místo \n musí být \\n 2. vyvstává problém s novým řádkem na různých systémech (UNIX má tuším jen \r, Windows \r\n, OS X \n nebo tak nějak). Tedy pokud máš řetězec: první řádek\ndruhý řádek pak je to v pořádku. Máš-li ale: První řádek druhý řádek může nastat problém, protože každý systém si jej přeloží na ten svůj znak. |
||
Tori Profil |
#3 · Zasláno: 13. 10. 2011, 20:19:01
karel:
Odpovídající odřádkování pro systém, na kterém PHP běží, je v konstantě PHP_EOL. Pokud bude některá část (např.ten komentář) zalomená přes více řádků, musíte použít i modifikátor s. preg_match('/^(?P<status>\w+):(?P<username>\w+)'.PHP_EOL.'+(?P<note>.+)/s', $desc, $matches); \s+ |
||
karel_ Profil * |
#4 · Zasláno: 14. 10. 2011, 00:40:46
díky, zkusím se s tím poprat...
|
||
Časová prodleva: 13 let
|
0