|
[ ziki @ 04.03.2009. 16:19 ] @
| Ovako imam funkciju koja mi od naslova članka očisti sve što ne treba da bude nastavak za link. Koristim url rrewrite ali to je nevazno, znači ja imam čisti url www.mojweb.com/clanak/neki-naslov itd. I sad me zanima kako da zamijenim naše znakove č, ć, ž, š, đ sa c, c, z, s, d?
Koristim charset windows-1250
Code:
function napraviLink($text){
$text=strtolower($text);
$code_entities_match = array(' ','--','"','!','@','#','$','%','^','&','*','(',')','_','+','{','}','|',':','"','<','>','?','[',']','\\',';',"'",',','.','/','*','+','~','`','=', 'ž', 'č', 'ć', 'đ', 'š');
$code_entities_replace = array('-','-','','','','','','','','','','','','','','','','','','','','','','','','','z','c','c','d','s');
$text = str_replace($code_entities_match, $code_entities_replace, $text);
return $text;
}
i to ne radi, sta da stavim tako da mi se zamijene s navedenim?
hvala |
[ Nikola Poša @ 04.03.2009. 17:10 ] @
Ako me oči ne varaju, taj niz sa zamenama ima manje elemenata od tog prvog, tako da ce f-ja str_replace za tih poslednjih nekoliko elemenata razlike, uzeti prazan string za zamenu, pa će ta naša slova (č, ć, š, đ, ž) biti zamenjena praznim stringom.
[Ovu poruku je menjao Nikola Poša dana 04.03.2009. u 18:30 GMT+1]
[ Miroslav Ćurčić @ 04.03.2009. 17:49 ] @
Naša slova 'ž', 'č', 'ć', 'đ', 'š' treba da uneseš kao windows-1250 karaktere, najbolje kao 0xA1, jer ti verovatno pišeš skript u uft8 formatu.
Isto tako verujem da strtolower neće umeti da smanji SR karaktere jer je predviđen samo za standardni raspored, ako ne grešim.
[ Skaarj @ 04.03.2009. 22:28 ] @
Iskren da budem ja sam za ovo iscupao jednu funkciju iz wordpressa... malo je veca ali resava ove probleme... pogotovu sto za nase stringove treba petljati sa multibajt funkcijama sto mi bas nije poslo za rukom.. ali da cuknem u drvo ova radi ako valja za sada.
[ ziki @ 04.03.2009. 23:37 ] @
ok ako imas tu funkciju iz wordpressa daj mi pejstaj plizz, i skripta mi je spremljena u windoes-1250
ako tko zna te znakove u tom njihovom izvornom kodu (0xA1) nek mi kaze, plizz
hvala unaprijed, i jos neko rjesenje ako ima dobro bi doslo!!!
[ Marko Medojević @ 11.03.2009. 09:44 ] @
Evo jedne funkcije koju ja koristim:
Code: function urlReadyString($parString)
{
// prvo prebacujemo sve u lowercase
$parString = strtolower($parString);
// sada primenjujemo kod koji sam nasao na jednom forumu, on ce u dobroj meri konvertovati slova sa akcentima, ali nece sve
$chars = array(
chr(196).chr(134) => 'c', chr(196).chr(135) => 'c', // ovo je za c
chr(196).chr(140) => 'c', chr(196).chr(141) => 'c', // ovo je za c
chr(196).chr(144) => 'dj', chr(196).chr(145) => 'dj', // ovo je za d
chr(197).chr(160) => 's', chr(197).chr(161) => 's', // ovo je za š
chr(197).chr(189) => 'z', chr(197).chr(190) => 'z', // ovo je za ž
);
$parString = strtr($parString, $chars);
//===================================================
// ovo ce dodatno izbaciti sve preostale akcente
$find_x = array("Č","č","Ć","ć","Đ","đ","Š","š","Ž","ž");
$replace_x = array("c", "c", "c", "c", "dj", "dj","s","s","z","z");
$parString = str_replace($find_x,$replace_x, $parString);
//=========================================================
// cistimo string od nepozeljnih karaktera za url
$parString = str_replace('!',' ', $parString );
$parString = str_replace("#", " ", $parString);
$parString = str_replace("/", " ", $parString);
$parString = str_replace("$", " ", $parString);
$parString = str_replace("&", " ", $parString);
$parString = str_replace("&", " ", $parString);
$parString = str_replace("+", " ", $parString);
$parString = str_replace(",", " ", $parString);
$parString = str_replace(":", " ", $parString);
$parString = str_replace(";", " ", $parString);
$parString = str_replace("=", " ", $parString);
$parString = str_replace("?", " ", $parString);
$parString = str_replace("@", " ", $parString);
$parString = str_replace("<", " ", $parString);
$parString = str_replace(">", " ", $parString);
$parString = str_replace("%", " ", $parString);
$parString = str_replace("{", " ", $parString);
$parString = str_replace("}", " ", $parString);
$parString = str_replace("(", " ", $parString);
$parString = str_replace(")", " ", $parString);
$parString = str_replace("|", " ", $parString);
$parString = str_replace("\\", " ", $parString);
$parString = str_replace("^", " ", $parString);
$parString = str_replace("~", " ", $parString);
$parString = str_replace("[", " ", $parString);
$parString = str_replace("]", " ", $parString);
$parString = str_replace("`", " ", $parString);
$parString = str_replace("'", " ", $parString);
$parString = str_replace("\"", " ", $parString);
$parString = str_replace(" ", "-", $parString);
$parString = str_replace("----", "-", $parString);
$parString = str_replace("---", "-", $parString);
$parString = str_replace("--", "-", $parString);
//=====================================
return $parString;
}
[ host4dzaba @ 27.04.2009. 15:10 ] @
odlično .... ja sam koristio sam ovaj dio ipod tekst // cistimo string od nepozeljnih karaktera za url ... nisam ostatak ...
[ zgMa @ 30.04.2009. 23:08 ] @
// Seo URL funkcija
function seo($link) {
$prije = array('{','}','é','ë','½',''','č','ć','š','š','ž','đ','quot',"Č","č","Ć","ć","Đ","đ","Š","š","Ž","ž");
$poslije = array('','','e','e','5','','c','c','s','s','z','d','',"c", "c", "c", "c", "dj", "dj","s","s","z","z");
$link = trim($link);
$link = str_replace( $prije, $poslije, $link );
$link = preg_replace('/[^a-z0-9]/i',"-", $link);
$link = str_replace( '---', '-', $link );
$link = str_replace( '--', '-', $link );
$link = strtolower($link);
return $link;
}
Ovo se vremenom ovako izdefinisalo, vjerovatno su neki html entity-i tu bez potrebe, ali neka ih za svaki slučaj :)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|