Autor Zpráva
Tomikkkkk
Profil *
Mam jeste jednu prosbicku, mam script, ktery mi upravuje URL adresu tak, aby se v ni zobrazoval nadpis nejakeho clanku a jeho ID. Napriklad takto:

Vozidlo Škoda s koly 17" je super vůz (id článku je 1000). Url vypada takto:

http://clanek.domena.cz/vozidlo-skoda-s-koly-17-je-super-vuz_1000

jenze mi můj script nejak spravne nefunguje, potreboval bych udelat co nejlehceji prevod nazvu clanku do URL v takovem formatu jak jsem psal, mam to zatim delano takto

$nepovolene_znaky_nazvu = "ÁÍÉÓÚÝČĎŘČŠŤĚŽŇŃáäčćďéěëíňńóöřŕšśťúůüýž'=+(),.!?*´%></\\";
$povolene_znaky_nazvu = "aieouycdrcsteznnaaccdeeeinnoorrsstuuuyz----------------";

<?php echo preg_replace("/(-){2,}/i", "-",StrTr(strtolower(str_replace(" ","-",strtolower(stripslashes($rec_clanek["nazev"])))), $nepovolene_znaky_nazvu, $povolene_znaky_nazvu)); ?>_<?php echo $rec_inz["id"]; ?>

Poradite mi prosim nekdo jak to jednoduseji udelat? Popr. jak docilit toho, aby to v URL adrese nepsalo (kvuli uvozovkam?)

http://clanek.domena.cz/vozidlo-skoda-s-koly-17%22-je-super-vuz_1000¨

Diky moc
Str4wberry
Profil
http://php.vrana.cz/automaticke-vytvoreni-pratelskeho-url.php
Akacko
Profil
Tomikkkkk
http://php.vrana.cz/vytvoreni-pratelskeho-url.php
Tomikkkkk
Profil *
Tak jsem to zkusil, nakonec jsem musel udelat toto:

$url = $nadpis;
$url = StrTr($url, "áäčďéěëíňóöřšťúůüýžÁÄČĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽ", "aacdeeeinoorstuuuyzAACDEEEINOORSTUUUYZ");
$url = preg_replace('~[^\\pL0-9_]+~u', '-', $url);
$url = trim($url, "-");
$url = iconv("utf-8", "us-ascii//TRANSLIT", $url);
$url = strtolower($url);
$url = preg_replace('~[^-a-z0-9_]+~', '', $url);
return $url;

pouzivam totiz windows-1250, ale url vypada nyni takto:

http://clanek.domena.cz/skoda-na-15-quot-kolech_12067.html

potrebuju se zbavit i toho quot :-(
Tomikkkkk
Profil *
To quot pise při tom, když jsou v názvu uvozovky
Tomikkkkk
Profil *
Myslíte, že se dalo řešení udělat takto?

$url = htmlspecialchars_decode($nadpis);

funguje mi to, ale nerad bych udělal něco co by mohl uživatel zneužít
Str4wberry
Profil
„pouzivam totiz windows-1250, ale url vypada nyni takto:“
Mohlo by stačit tedy patřičně upravit následující řádek, ne?
$url = iconv("utf-8", "us-ascii//TRANSLIT", $url);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: