Autor | Zpráva | ||
---|---|---|---|
Stehlik Profil * |
#1 · Zasláno: 15. 6. 2012, 16:29:33
zdravím, jak se zbavit speciálních znaků...
používám str_replace ale seznam znaků začíná být ošklivě dlouhý :( |
||
_es Profil |
#2 · Zasláno: 15. 6. 2012, 16:33:23
Stehlik:
„jak se zbavit speciálních znaků“ „Špeciálne“ znamená konkrétne čo? |
||
Stehlik Profil * |
#3 · Zasláno: 15. 6. 2012, 16:38:34
ϖ • … ′ ″ ‾ ⁄ ℘
ℑ ℜ ™ ℵ ← ↑ → ↓ ↔ ∏ ∑ √ ∞ ∫ ∩ ≈ ≠ ≡ ≤ ≥ ◊ ♠ ♣ ♥ ♦ je jich obrovské množství... |
||
Rfilip Profil |
#4 · Zasláno: 15. 6. 2012, 16:46:09
odkud ty znaky pocházejí?
|
||
Joker Profil |
#5 · Zasláno: 15. 6. 2012, 16:49:42
Stehlik:
Jestli je zakázané všechno kromě nějaké množiny povolených znaků, bylo by lepší na to jít přes nahrazení všeho, co není v té množině. Šlo by to udělat přes regulární výraz. |
||
Stehlik Profil * |
#6 · Zasláno: 15. 6. 2012, 17:38:29
jak na to?
chtěl bych tyto znaky pouze vypustit :D ale text aby zůstal :) |
||
Jan Tvrdík Profil |
#7 · Zasláno: 15. 6. 2012, 18:03:13
Stehlik:
Takhle třeba odstraníš všechny nealfanumerické znaky: $s = preg_replace('#[^a-z0-9]+#i', '', $s); |
||
_es Profil |
Stehlik:
„je jich obrovské množství...“ No a ich definícia je aká? Písmeno z azbuky je „špeciálny znak? A čo písmeno z gréckej abecedy? Nemecké písmeno ß? České písmeno s diakritikou? „text aby zůstal“ A ako definuješ „text“? |
||
Stehlik Profil * |
#9 · Zasláno: 16. 6. 2012, 11:01:21
Jan Tvrdík:
> akhle třeba odstraníš všechny nealfanumerické znaky: > > $s = preg_replace('#[^a-z0-9]+#i', '', $s); a jak do toho dostanu diakritiku, čárku, pomlčku, dvojtečku a závorky? děkuji |
||
_es Profil |
#10 · Zasláno: 16. 6. 2012, 11:35:45
Stehlik:
„a jak do toho dostanu diakritiku, čárku, pomlčku, dvojtečku a závorky?“ A ako máme vedieť, čo všetko ty považuješ za „špeciálne“ znaky? |
||
Stehlik Profil * |
#11 · Zasláno: 16. 6. 2012, 12:38:01
_es:
„A ako máme vedieť, čo všetko ty považuješ za ‚špeciálne‘ znaky?“ promiň ale čárka, dvojtečka a pomlčka se v češtině běžně používají a závorku bych "oželil" ale jelikož se používá i na smajlíky rád bych je měl zahrnuty... |
||
_es Profil |
#12 · Zasláno: 16. 6. 2012, 14:32:30
Stehlik:
No tak si do toho regulárneho výrazu doplň všetky znaky, ktoré ty nepovažuješ za „špeciálne“. Asi ti ťažko niekto poradí presne, keď ani nie si schopný definovať tú „špeciálnosť“, či „text“ v tvojom ponímaní. |
||
Stehlik Profil * |
#13 · Zasláno: 16. 6. 2012, 16:55:52
kdybych to uměl už zde nepíšu ...
ale jak z toho vyrvat fiakritiku fakt netuším :( |
||
Jan Tvrdík Profil |
Stehlik:
Co všechno považuješ za znaky s diakritikou? |
||
Stehlik Profil * |
#15 · Zasláno: 16. 6. 2012, 17:13:41
ěščřžýáíéůúďť a to samé ve velkých...?
|
||
Jan Tvrdík Profil |
#16 · Zasláno: 16. 6. 2012, 17:59:07
$s = preg_replace('#[^a-z0-9ěščřžýáíéůúďťĚŠČŘŽÝÁÍÉŮÚĎŤ,.:()-]+#i', '', $s); |
||
Majkl578 Profil |
[#16] Jan Tvrdík:
Chybí tam modifikátor u (regulár obsahuje unicode znaky). Pak by se ještě hodilo přidat vykřičník, otazník, chybějící české znaky (ó, ž atd.) a další, i méně používané (třeba pomlčku). |
||
Jan Tvrdík Profil |
#18 · Zasláno: 16. 6. 2012, 21:20:15
Majkl578:
„Chybí tam modifikátor u (regulár obsahuje unicode znaky)“ Regulár neobsahuje žádné znaky, které nejsou obsaženy ve windows-1250. |
||
Majkl578 Profil |
[#18] Jan Tvrdík:
Zkus si například toto: $s = 'žluťoučký /ůň :)'; $s = preg_replace('#[^a-z0-9ěščřžýáíéůúďťĚŠČŘŽÝÁÍÉŮÚĎŤ,.:()-]+#i', '', $s); echo $s; A následně přidej modifikátor u. Výstup bude odlišný. V prvním případě: Žluťoučkýků�:) (UTF-8 ň je nepovolené, je ze znaků 197 a 136 desítkově, ale absencí modifikátoru u se nepovažuje za UTF-8 znak, ale za dva znaky; 136 tedy vypadne, ale tento zbylý znak má ASCII 197, tato hodnota byla totiž povolena např. znakem Ť (197 a 164 desítkově))
v druhém: Žluťoučkýků:) |
||
Jan Tvrdík Profil |
Majkl578:
Při nepoužití modifikátoru u samozřejmě předpokládám, že soubor nebude uložen jako utf-8, ale jako windows-1250. Pokud bude skript uložen v kódování utf-8, tak je pochopitelně modifikátor u nezbytný. |
||
Časová prodleva: 12 let
|
0