Odstránenie diakritiky – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Odstránenie diakritiky – PHP – Fórum – Programujte.comOdstránenie diakritiky – PHP – Fórum – Programujte.com

 

Hudacik0
Duch
18. 4. 2010   #1
-
0
-

Vygooglil som si túto funkciu:

function OdstranDiakritiku ($text) 

{
// prevod nebezpečných znakov na entity
$text = HTMLSpecialChars($text);
//Odstránenie medzier
$not_allowed = ' ';
$text = str_replace($not_allowed, "_", $text);
// zbavíme sa spätných lomiek
$text = StripSlashes($text);
// zalomíme riadky
$text = NL2BR($text);
// prepíšeme diakritické znaky
$text = StrTr($text,
"áäčďéíľňôšťúýžÁČĎÉÍĽŇÓŠŤÚÝŽ",
"aacdeilnostuyzACDEILNOSTUYZ");
return $text;
}


No nefunguje tak ako má, ak ju použijem pre string "ľščťžýáí", dostanem úplne odveci "yzZLyiZOZzUYULUu". Podobné veci sa mi stávajú aj s funkciami, ktoré som našiel v PHP manuále. V čom by mohol byť problém?

Nahlásit jako SPAM
IP: 85.135.159.–
"You never finish a program, you just stop working on it."
Lordest0
Super člen
18. 4. 2010   #2
-
0
-

hmm budes to musiet robit postupne :D

<?php

$text = "Toto je súbor formátu .php";
$text = strtr($text, array("ú" => "u", "á" => "a"));
echo $text; // Toto je subor formatu .php
?>


Nahlásit jako SPAM
IP: 85.216.242.–
hrach
~ Redaktor
+1
Boss
18. 4. 2010   #3
-
0
-

ale kdepak. třeba nějak takhle:

function toAscii($string)

{
if (defined('ICONV_IMPL') && ICONV_IMPL != 'libiconv') {

/**
* @author David GRUDL
* @link http://davidgrudl.cz
*/
static $table = array(
"\xc3\xa1"=>"a","\xc3\xa4"=>"a","\xc4\x8d"=>"c","\xc4\x8f"=>"d","\xc3\xa9"=>"e",
"\xc4\x9b"=>"e","\xc3\xad"=>"i","\xc4\xbe"=>"l","\xc4\xba"=>"l","\xc5\x88"=>"n",
"\xc3\xb3"=>"o","\xc3\xb6"=>"o","\xc5\x91"=>"o","\xc3\xb4"=>"o","\xc5\x99"=>"r",
"\xc5\x95"=>"r","\xc5\xa1"=>"s","\xc5\xa5"=>"t","\xc3\xba"=>"u","\xc5\xaf"=>"u",
"\xc3\xbc"=>"u","\xc5\xb1"=>"u","\xc3\xbd"=>"y","\xc5\xbe"=>"z","\xc3\x81"=>"A",
"\xc3\x84"=>"A","\xc4\x8c"=>"C","\xc4\x8e"=>"D","\xc3\x89"=>"E","\xc4\x9a"=>"E",
"\xc3\x8d"=>"I","\xc4\xbd"=>"L","\xc4\xb9"=>"L","\xc5\x87"=>"N","\xc3\x93"=>"O",
"\xc3\x96"=>"O","\xc5\x90"=>"O","\xc3\x94"=>"O","\xc5\x98"=>"R","\xc5\x94"=>"R",
"\xc5\xa0"=>"S","\xc5\xa4"=>"T","\xc3\x9a"=>"U","\xc5\xae"=>"U","\xc3\x9c"=>"U",
"\xc5\xb0"=>"U","\xc3\x9d"=>"Y","\xc5\xbd"=>"Z"
);

return strtr($string, $table);
}

return iconv("utf-8", "us-ascii//TRANSLIT", $string);
}

Nahlásit jako SPAM
IP: 88.101.68.–
http://jan.skrasek.com@hrachcz – webdeveloper
Kuboslav0
Newbie
19. 4. 2010   #4
-
0
-

Lordest napsal:
hmm budes to musiet robit postupne :D

<?php
$text = "Toto je súbor formátu .php";
$text = strtr($text, array("ú" => "u", "á" => "a"));
echo $text; // Toto je subor formatu .php
?>




Aj ja si myslím, že takto je to celkom jednoduché:

http://programujte.com/?akce=diskuze&kam=vlakno&tema=14928-url_name-function#125990

Nahlásit jako SPAM
IP: 78.80.43.–
</microsoft>
hrach
~ Redaktor
+1
Boss
19. 4. 2010   #5
-
0
-

To Kuboslav : ta tvoje funkce je celkem spatna, pac si poradi jen s nekterymi znaky, lepsi je to hnat pres ten iconv, ktery to umi univerzalne (treba i pro slovenstinu)

Nahlásit jako SPAM
IP: 195.113.171.–
http://jan.skrasek.com@hrachcz – webdeveloper
Hudacik0
Duch
19. 4. 2010   #6
-
0
-

Ďakujem za pomoc, môžem sa ešte spýtať, čo robí

if (defined('ICONV_IMPL') && ICONV_IMPL != 'libiconv')

Nahlásit jako SPAM
IP: 85.135.226.–
"You never finish a program, you just stop working on it."
KIIV
~ Moderátor
+43
God of flame
19. 4. 2010   #7
-
0
-

to evidentne zjistuje, jestli vubec iconv v php mas... pokud ne tak to udela pomoci te tabulky a strtr..
pokud mas tak to prevede pomoci iconv

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hrach
~ Redaktor
+1
Boss
19. 4. 2010   #8
-
0
-

nn, zjistuje je to, jestli je interni knihovna libiconv, pac ta druha jina (ted si nazev nevzpominam) neumi spravne zachazet s ceskymi znaky.

Nahlásit jako SPAM
IP: 195.113.171.–
http://jan.skrasek.com@hrachcz – webdeveloper
Kuboslav0
Newbie
19. 4. 2010   #9
-
0
-

hrach napsal:
To Kuboslav : ta tvoje funkce je celkem spatna, pac si poradi jen s nekterymi znaky, lepsi je to hnat pres ten iconv, ktery to umi univerzalne (treba i pro slovenstinu)



Neviem prečo to hneď odsudzuješ .. nie je zle napísaná - je napísaná na upravenie stringu tak aby sa dal použiť do URL (k tomuto sa zvyčajne takéto funkcie používajú). Iconv Ti napr * prevedie na * čo v URI ťažko použiješ, takže nakoniec sa bez klasického strtr neozaobídeš

Nahlásit jako SPAM
IP: 78.80.43.–
</microsoft>
hrach
~ Redaktor
+1
Boss
19. 4. 2010   #10
-
0
-

To Kuboslav :
zadání funkce je na odstranení diakritiky, ne na vytvoreni url verze. na vytvoreni urv verze mam uplne jinou funkci, ktera mj. vyuziva teto funkce. Ale neplest dve veci dohromady.
A proc to odsuzuji, budu chtit pridat polskou lokalizaci a hned budu muset kvuli tomu upravovat tuto funkci a vyhledavat jake ze to znaky vubec polstina obsahuje? ne, to je blbej pristup...

Nahlásit jako SPAM
IP: 195.113.171.–
http://jan.skrasek.com@hrachcz – webdeveloper
Lordest0
Super člen
19. 4. 2010   #11
-
0
-

To hrach :

ja som iba odpovedal na to preco mu to nejde ;) pri pouziti tej funkcie.. on sa vobec nepytal na iny sposob..

Nahlásit jako SPAM
IP: 85.216.242.–
hrach
~ Redaktor
+1
Boss
19. 4. 2010   #12
-
0
-

To Lordest : srr, špatné tlačítko dopovědět
To Hudacik : ta špatná knihovna se jmenuje "glibc", jde to vyčíst v phpinfo

Nahlásit jako SPAM
IP: 88.101.68.–
http://jan.skrasek.com@hrachcz – webdeveloper
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 22 hostů

Podobná vlákna

Odstránenie diakritiky — založil muhahaha

Odstranenie diakritiky — založil HowIDied

Odstránenie obrázku — založil Zavada

Odstranenie suboru — založil Tayson

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý