Autor | Zpráva | ||
---|---|---|---|
Jan Ježek Profil * |
#1 · Zasláno: 23. 11. 2005, 16:07:31
Kvůli mod_rewrite potřebuji odstranit diakritiku z názvů článků. Jde mi o tohle:
název článku > nazev-clanku Je také potřeba ošetřit vkládání znaků jako tečky, vykřičníky atp. Mohl byste mi někdo pomoct nebo mě odkázat na dobrý zdroj? Spíš bych uvítal pomoc, je potřeba to udělat co nejrychleji a nemám čas to studovat. Děkuji |
||
kaifman Profil |
#2 · Zasláno: 23. 11. 2005, 16:17:21
|
||
Jan Ježek Profil * |
#3 · Zasláno: 23. 11. 2005, 17:49:53
Děkuji, ale ještě bych poteboval nějak ošetřit ty tečky a vykřičníky.
|
||
hw3 Profil |
#4 · Zasláno: 23. 11. 2005, 18:39:05 · Upravil/a: hw3
Jan Ježek: ještě bych to projel (například) funkcí Str_Replace pro nahrazení různých znaků pomlčkami, či "ničím":
|
||
Jan Ježek Profil * |
#5 · Zasláno: 23. 11. 2005, 18:49:50
function iso2ascii($text) {
$return = strtr($text, "áčďéěíľňóřšťúůýžÁČĎÉĚÍĽŇÓŘŠŤÚŮÝŽ", "acdeeilnorstuuyzACDEEILNORSTUUYZ"); $return = Str_Replace(Array(" ", "_"), "-", $return); //nahradí mezery a podtržítka pomlčkami $return = Str_Replace(Array("(",")",".","!",",","\"","'"), "", $return); //odstraní ().!,"' $return = strtolower($return); return $return; } Takhle je to úplně nejlepší. Tedy teoreticky. V praxi mi odstraní dikritiku jen pokud je na písmenem čárka. Háčky a kroužky to nedokáže odstranit. Co s tím? Jsem zoufalý.... Je to nastavením PHP? |
||
hw3 Profil |
#6 · Zasláno: 23. 11. 2005, 19:02:23
V jakém kódování jsou data, která chcete ošetřit? Není to v UTF-8? Houby o tom vím, ale mám pocit, že by mohl být problém v tom.
|
||
Jan Ježek Profil * |
#7 · Zasláno: 23. 11. 2005, 19:07:03
Chci to pro svůj volně dostupný redakční sytém Webcreator, takže by to mělo být nezávislé na verzi a nastavení PHP.
|
||
Jan Ježek Profil * |
#8 · Zasláno: 23. 11. 2005, 19:09:11
O kódování také nic nevím. Soubory jsou v CP1250, kódování windows-1250. Chci to pro svůj volně dostupný redakční sytém Webcreator, takže by to mělo být nezávislé na verzi a nastavení PHP.
|
||
hw3 Profil |
#9 · Zasláno: 23. 11. 2005, 19:09:43 · Upravil/a: hw3
Zkuste použít tuto upravenou fci:
Teď by to TEORETICKY mělo fungovat. Str_Replace prý nevadí kódování UTF. UPDATE: pardon, nevšiml jsem si vaší odpovědi. zkuste to tedy, ale asi to nepomůže |
||
Jan Ježek Profil * |
#10 · Zasláno: 23. 11. 2005, 19:14:23
Něco u mě musí být špatně. Když tím proženu tyto písmena:
ěščřžýáíéúů Vrátí toto: ěsčřzýaieuů U některých písmen to fuguje, a jiných ne.... |
||
Acci Profil |
#11 · Zasláno: 23. 11. 2005, 19:16:37
|
||
Jan Ježek Profil |
#12 · Zasláno: 23. 11. 2005, 19:35:54
Nechápu to, ale tohle také vůbec nefunguje. Nevrací mi to vůbec nic :(
|
||
hw3 Profil |
#13 · Zasláno: 23. 11. 2005, 19:43:22
Jan Ježek: jj, to mě taky ne. Nechápu to. (Zkoušeno u mě na localhostu Apache/2.0.54 (Debian GNU/Linux) mod_python/3.1.3 Python/2.3.5 PHP/4.3.10-16 mod_perl/1.999.21 Perl/v5.8.4, i na Webzdarma)
Avšak stejně myslím, že by to nevyřešilo ten problém se znaky. |
||
Acci Profil |
#14 · Zasláno: 23. 11. 2005, 19:46:36
Když jsem to zkoušel, taky mi to nefungovalo, ale myslel jsem si, že něco dělám blbě já.
|
||
Jan Ježek Profil |
#15 · Zasláno: 23. 11. 2005, 19:53:45
Na PHP5 to nefunguje, an ty znaky to neřeší.... To je konec.
|
||
llook Profil |
#16 · Zasláno: 23. 11. 2005, 19:53:55
Já používám tohle:
/**Myslím, že pro středoevropské použití by to mělo stačit. |
||
Jan Ježek Profil |
#17 · Zasláno: 23. 11. 2005, 20:16:24
Mělo, ale při vložení č ho nahradí -269-. Nechápu jak je to možné. I přesto děkuji, je to lepší než dřív.
|
||
hw3 Profil |
#18 · Zasláno: 23. 11. 2005, 20:17:46
llook: To mi sice funguje, ale nevím, jestli to vyřeší ten problém se znaky J.Ježka.
Jan Ježek: Pokud už jste (neúspěšně) vyzkoušel řešení llooka, tak mě ještě napadá: jakým způsobem zkoušíte funkčnost té původní funkce? vkládáte to do samostatného skriptu, či to zkoušíte odesílat nějak přes formulář? IMHO by totiž mohl být problém v tom, že skript jako takový není napsán v codepage Windows-1250 (ale předpokládám, že je, pokud to tvoříte ve Win). Nebo (což je pravděpodobnější) není kódování uvedeno v hlavičce skriptu:
(ale jenom hádám!). A ještě: zkoušíte to u sebe na lokálu nebo na Webzdarma? Nezapomeňte ale určitě ozkoušet to llookovo řešení. |
||
Jan Ježek Profil |
#19 · Zasláno: 23. 11. 2005, 20:21:21
Jinak si už neumím poradit. Může to dělat problémy, ale hlavně že to nějak funguje. |
||
Jan Ježek Profil |
#20 · Zasláno: 23. 11. 2005, 20:25:23
To snad né. Bylo to tou hlavičkou... Díky všem
|
||
hw3 Profil |
#21 · Zasláno: 23. 11. 2005, 20:31:05
Jan Ježek: Super! Jsem rád, že se nám to nakonec podařilo vyřešit :-)
|
||
Časová prodleva: 22 dní
|
|||
Polaroid Profil |
#22 · Zasláno: 15. 12. 2005, 20:13:24
to Hagon: no tak
|
||
halogan Profil |
#23 · Zasláno: 15. 12. 2005, 22:31:34
to all: prominte ze taham stare zalezitosti, ale moje funkce mi funguje zcela bez problemu na PHP 5. Zkuste si prekontrolovat:
1. Podporu mbstring 2. Nastaveni mb_internal_encoding Vice popsano v clanku. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0