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

Uprava stringu – PHP – Fórum – Programujte.comUprava stringu – PHP – Fórum – Programujte.com

 

Prog.0
Věrný člen
17. 1. 2007   #1
-
0
-

jou, potrebujem spravit prevod nadpisu na pekne citatelny format do url (SEO), vypotil som asik takyto code:

$title_url = strtolower($title);                   // male pismenka


$title_url = ereg_replace("[á|ä]","a",$title_url); // odstranenie diakritiky
$title_url = ereg_replace("č","c",$title_url);
$title_url = ereg_replace("ď","d",$title_url);
$title_url = ereg_replace("[é|ě]","e",$title_url);
$title_url = ereg_replace("í","i",$title_url);
$title_url = ereg_replace("[ĺ|ľ]","l",$title_url);
$title_url = ereg_replace("ň","n",$title_url);
$title_url = ereg_replace("[ó|ô]","o",$title_url);
$title_url = ereg_replace("[ŕ|ř]","r",$title_url);
$title_url = ereg_replace("š","s",$title_url);
$title_url = ereg_replace("ť","t",$title_url);
$title_url = ereg_replace("[ú|ů]","u",$title_url);
$title_url = ereg_replace("ý","y",$title_url);
$title_url = ereg_replace("ž","z",$title_url);

$title_url = ereg_replace("[^a-z0-9]+","-",$title_url); // nahradi vsetko okrem a-z0-9 za "-"
$title_url = ereg_replace("(.*)-$","\\1",$title_url); // ak je nakonci "-" tak ju vyhodi



robi to napr z tohto: Káble (FTP, UTP, telefónne) toto: kable-ftp-utp-telefonne

ten postup sa mi vsak zda, ...kapik nahlavu... preto sa chcem opytat na nejaky rozumnejsi sposob.

Vopred thanx ;-)

Nahlásit jako SPAM
IP: ...–
Prog.
Ondrej Juríček
~ Moderátor
0
Stálý člen
17. 1. 2007   #2
-
0
-

Už len s estetického hľadiska, by som namiesto tých 14 riadkov v prostrednom bloku použil funkciu strtr.

<?php

$title_url = strtr($title_url, "áäčďéěí", "aacdeei"); // atd.
?>

Nahlásit jako SPAM
IP: ...–
Prog.0
Věrný člen
17. 1. 2007   #3
-
0
-

To OndreJ: Dik... :ms_0005: ...presne to som potreboval...

Nahlásit jako SPAM
IP: ...–
Prog.
Zdeněk Večeřa
~ Korektor
0
Grafoman
18. 1. 2007   #4
-
0
-
Nahlásit jako SPAM
IP: ...–
www.devtea.cz | zdenekvecera.cz | @ZdenekVecera
Redaktor Programujte.com a Živě.cz
Prog.0
Věrný člen
19. 1. 2007   #5
-
0
-

Zdeny píše:#
# To Prog.: Trocha inspirace#
##
#http://programujte.com/view.php?cisloclanku=2006092301

Dakujeeem, pekne si to napisal :-)

Tak nakoniec som dospel k niecomu takemu:
$title_url = strtr(strtolower($title),"áäčďéěíĺľňóôŕřšťúůýž","aacdeeillnoorrstuuyz");

$title_url = trim (ereg_replace("[^a-z0-9]+","-",$title_url),"-");

Nahlásit jako SPAM
IP: ...–
Prog.
olgo0
Věrný člen
19. 1. 2007   #6
-
0
-

To Prog.: neni som si isty ale nenahradi ten tvoj kod nahodou pomlckami aj velke pismena?

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Prog.0
Věrný člen
19. 1. 2007   #7
-
0
-

To olgo: nie, ako prve sa vsetko prevedie na male (strtolower)

...len ja si neni som stale isty na zaklade coho v php funguje strtolower
ci sa nemoze stat to, ze nebude vediet zmensit niektore znaky ako ÁÄŮ na male áäů pri nejakej nespravnej konfuguracii, alebo kodovani...

zda sa mi rozumnejsie volat najprv strtolower a potom prevadzat len male znaky ("áäčďéěíĺľňóôŕřšťúůýž" na "aacdeeillnoorrstuuyz") ako v opacnom poradi (v Zdeny-ho clanku http://programujte.com/view.php?cisloclanku=2006092301), pretoze sa tym zjednodusi praca funkcie strtr (menej znakov na prevod -- mala by bezat rychlejsie :ms_0007: -- // zda sa mi to cistejsie po stranke programatorskej // )

Na druhej strane, je opacny postup istejsi, ak sa najprv prevedie
"ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž" na "aaccdeeeinoorstuuuyzaaccdeeeinoorstuuuyz" tak fcia strtolower sa uz postara iba o znaky A..Z

...asi som puntickar a zacinam rozoberat somariny :ms_0063:

Nahlásit jako SPAM
IP: ...–
Prog.
olgo0
Věrný člen
19. 1. 2007   #8
-
0
-

To Prog.: aha sorry to som si nevsimol ale [^a-z0-9] mozes (v tomto pripade) nahradit za [\W].

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Ondrej Juríček
~ Moderátor
0
Stálý člen
19. 1. 2007   #9
-
0
-

Prog.: áno, funkcia strtolower nevie konvertovať niektoré znaky. Tak radšej použi inú funkciu, ako je napr. mb_convert_case s MB_CASE_LOWER a môžeš konvertovať znakovú sadu akú chceš.

Nahlásit jako SPAM
IP: ...–
Jakub0
Super člen
19. 1. 2007   #10
-
0
-
Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
Prog.0
Věrný člen
22. 1. 2007   #11
-
0
-

To olgo: Reg vyrazy su pre mna zatim spanielska dedina, ale myslim ze \W mi bude nahradzat vsetko okrem a-z,0-9 no necha aj "_", co sa mi nepaci (chcem len pismenka, cisla a pomlcky).

To OndreJ: Dik, mb_... vidim prvy krat, zase som o nieco mudrejsi :-)

To D1ce: Thanx, prestudovane ;-)

Nahlásit jako SPAM
IP: ...–
Prog.
olgo0
Věrný člen
22. 1. 2007   #12
-
0
-

To Prog.:njn. ale uprimne povedane mam racej _ ako -

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Prog.0
Věrný člen
22. 1. 2007   #13
-
0
-

To olgo: Aj ja radsej "_", ale...

Pride lama do mojho shopu, otvori si nejaku kategoriu, nalistuje sa mu niekolko produktov. Cely stastny ze nasiel mouse aku chce vola kamaratovi, pozri si stranku, a diktuje www....sk/hardware/klavesnice_a_mysi/opticke_bezdrotove/

...vies ako dlho bude trvat takemu lamovi kym vysvetli kamaratovi ako napise tu ciarku co vyzera ako pomlcka ale pise sa nizsie...?!

Bezny uzivatelia niesu zvyknuty pouizivat znak "_" a vacsina z nich ani nevie, ako sa pise. (Ja osobne neviem ako sa po slovensky spravne nazyva :ms_0217: ) Preto myslim ze "-" bude lepsia, aj ked opticky citatelnejsia by bola varianta s "_"

pre porovnanie:

www....sk/hardware/klavesnice-a-mysi/opticke-bezdrotove/

www....sk/hardware/klavesnice_a_mysi/opticke_bezdrotove/

Nahlásit jako SPAM
IP: ...–
Prog.
olgo0
Věrný člen
22. 1. 2007   #14
-
0
-

www....sk/hardware/klavesnice_a_mysi/opticke_bezdrotove/


je 100% krajsie (samozrejme tym nepodrivam tvoje argumenty)

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Prog.0
Věrný člen
22. 1. 2007   #15
-
0
-

olgo píše:#
#

www....sk/hardware/klavesnice_a_mysi/opticke_bezdrotove/

#
#je 100% krajsie (samozrejme tym nepodrivam tvoje argumenty)


...ale nevidel som to nikoho takto pouzivat, vacsinou badam pomlcky, tak neviem...

ale aj mne sa to paci viac ... asi nad tym budem este vela meditovat :-D

Nahlásit jako SPAM
IP: ...–
Prog.
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, 62 hostů

Podobná vlákna

Nacteni Stringu — založil dargorar

Komprimace stringu — založil JMM

Parsování stringu v C++ — založil jirkab

Otazky k stringu ;) — založil Tom@sQo

 

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