SEO - čisti linkovi bez naših znakova - kako?

  • 7 odgovora
  • 3.510 pregleda
SEO - čisti linkovi bez naših znakova - kako? 04.03.2009. u 16:19 · pre 214 meseci #1
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(' ','--','&quot;','!','@','#','$','%','^','&','*','(',')','_','+','{','}','|',':','"','<','>','?','[',']','\\',';',"'",',','.','/','*','+','~','`','=', 'ž', 'č', 'ć', 'đ', 'š');
        $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
Potpis
Svijet se treba jednoglasno ujediniti da se unisti svaki bit, znak koda IE6, a za IE7 dozvoliti samo spomen da je postojala!!!
Re: SEO - čisti linkovi bez naših znakova - kako? 04.03.2009. u 17:10 · pre 214 meseci #2
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]
Re: SEO - čisti linkovi bez naših znakova - kako? 04.03.2009. u 17:49 · pre 214 meseci #3
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.
Potpis
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
Re: SEO - čisti linkovi bez naših znakova - kako? 04.03.2009. u 22:28 · pre 214 meseci #4
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.
Re: SEO - čisti linkovi bez naših znakova - kako? 04.03.2009. u 23:37 · pre 214 meseci #5
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!!!
Potpis
Svijet se treba jednoglasno ujediniti da se unisti svaki bit, znak koda IE6, a za IE7 dozvoliti samo spomen da je postojala!!!
Re: SEO - čisti linkovi bez naših znakova - kako? 11.03.2009. u 09:44 · pre 214 meseci #6
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("&#268;","&#269;","&#262;","&#263;","&#272;","&#273;","&#352;","&#353;","&#381;","&#382;");
    $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("&amp;", " ", $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;
}  

Re: SEO - čisti linkovi bez naših znakova - kako? 30.04.2009. u 23:08 · pre 212 meseci #8
// Seo URL funkcija
function seo($link) {
$prije = array('{','}','&eacute;','&euml;','&frac12;','&#039;','č','ć','š','&scaron;','ž','đ','quot',"&#268;","&#269;","&#262;","&#263;","&#272;","&#273;","&#352;","&#353;","&#381;","&#382;");
$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 :)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme