Autor | Zpráva | ||
---|---|---|---|
noName Profil * |
#1 · Zasláno: 15. 7. 2012, 00:04:31
Zdravím, potřeboval bych poradit jak rozdělit blok textu do pole. Takže když by byla věta: "Ahoj, jak se máš?" tak bych měl výstup array("ahoj", "jak", "se", "máš"). Mám následující kód:
$text = str_replace(array(".", ". ", ", ", ",", "(", ")", "-", "/"), ' ', $text); preg_match_all("~[\pL\.]{3,}~ui", $text, $newText); Zdá se mi, že to funguje tzn., že text rozdělí, ale ještě bych potřeboval odstranit u každé položky v poli na konci čárky, tečky, vykříčníky a pod. Díky za rady. |
||
abc Profil |
#2 · Zasláno: 15. 7. 2012, 00:21:09
noName:
$odstranit = array(".", ". ", ", ", ",", "(", ")", "-", "/", "!");//pridej si znaky, ktere chces odstranit $text = "ahoj, jak se máš?"; $newText = str_replace($odstranit, " ", $text); $newText = trim($newText); $newText = explode(" ",$newText); print_r($newText); |
||
Keeehi Profil |
Už takhle to funguje skvěle, ale dá se to zjednodušit:
<?php $text = "Ahoj, jak se máš?"; preg_match_all("~[\pL]{3,}~u", $text, $newText); var_dump($newText); // Array ( [0] => Array ( [0] => Ahoj [1] => jak [2] => máš ) ) |
||
noName Profil * |
#4 · Zasláno: 15. 7. 2012, 01:02:33
abc:
Díky. Keeehi: „To že to vynechává předložky a spojky (dvoupísmenná slova) doufám víš“ Ano, to vím. Je to schválně. No a mohl by jsi mi poradit jak na ty čísla a "uvaříme-li"? Díky. |
||
Keeehi Profil |
Jednoduše takto:
"~[-\pL\d]{3,}~u" "~(?<![-\pL\d])[-\pL]{3,}(?![-\pL\d])|(?<![-\pL\d])\d+(?![-\pL\d])~u" "~(?<![-\pL\d])[\pL]{3,}(?:-[\pL]{2,})?(?![-\pL\d])|(?<![-\pL\d])\d+(?![-\pL\d])~u" |
||
Časová prodleva: 12 let
|
0