Autor Zpráva
hal_sk
Profil
Zdravím. Chcel by som rozdeliť text do pola, pričom oddeľovače budú 2 znaky: " " a "\n". Dá sa to aj za pomoci funkcie explode(), alebo ako sa to dá? Chcem totiž spraviť funkciu, ktorá v článku zistí pridlhý, medzerou, alebo zlomom neprerušený text a skráti ho.
radas
Profil *
nejdříve by se to mohlo rozdělit na /n což je konec řadku a pak podle " " a vše prochazet cyklem..
AM_
Profil
To je lepší pomocí regulárních výrazů, např.
$text = preg_replace('~([^\s]{50})[^\s]+~', '\\1...', $text);
Toto nahradí všechny souvislé řady nebílých znaků delší než 50 znaků prvními padesáti znaky a třemi tečkami. Snad to mám syntakticky dobře, neověřoval jsem.
Pokud budeš trvat na explode, nejdřív bych pomocí str_replace nahradil třeba mezery za \n a pak ti stačí triviální explode pomocí \n, ovšem řešení s regulárními výrazy počítá i s dalšími bílými znaky (tabulátory, \r)
Jan Tvrdík
Profil
hal_sk:
Jen doplním, že chytřejší explode se nazývá preg_split, ale pro tento účel (pokud ho chápu) je lepší řešení od AM_.

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:

0