phpRS 2.8.x : phpRS Fórum
Toto fórum je určené výhradně k diskuzi o verzích phpRS v2.8.x.
phpRS - redakční a informační systém
SEO linky
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2008-08-04, 22:35

Niekoľkokrát sa tu opakovala debata a nedostatkoch v prevode nadpisu článku na SEO link. Spravil som funkciu na ostránenie diakritiky pre UTF-8, odstraňuje všetko, čo v URL nemá čo hľadať, vrátane znakov celej znakovej sady utf-8 mimo CZ/SK:
function VratSEOLink($string = '') {

    $string = strip_tags(trim($string));
    $pole_co= array('ě','š','č','ř','ž','ť','ň','ď','ľ','ý','á','í','é','ú','ó','ů','ü','ö','ä','Ě','Š','Č','Ř','Ž','Ť','Ď','Ň','Ý','Á','Í','É','Ú','Ó','Ů','Ü','Ö','Ä','-','.');
    $pole_cim=array('e','s','c','r','z','t','n','d','l','y','a','i','e','u','o','u','u','o','a','E','S','C','R','Z','T','D','N','Y','A','I','E','U','O','U','U','O','A',' ',' ');
    $string=str_replace($pole_co, $pole_cim, $string); // odstraneni diakritiky + uprava nekterych spec. znaku
    $string = strtolower($string);
    $string = preg_match_all('/[a-zA-Z0-9]+/', $string, $nt);
    return strtolower(implode('-', $nt[0]));
}


php script pre hromadnú úpravu SEO linkov:
<?php

#####################################################################
#                                                                   #
#       Generator SEO linkov pre phpRS 2.8.X                        #
#       (c) 2008 Patrik JAN (pa3k) www.kvalitne.sk                  #
#       GNU/GPL 2                                                   #
#                                                                   #
#####################################################################

define('IN_CODE',true); 
include_once("config.php");

echo '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
$sql = '
    SELECT  idc,
            titulek
    FROM    '.$GLOBALS['rspredpona'].'clanky
    ;
';

$result = phprs_sql_query($sql, $GLOBALS['dbspojeni']);

if (!$result) {
    echo 'SQL ERROR';
    die;
}
while ($row = phprs_sql_fetch_assoc($result)) {
    $articles[] = $row;
}

echo_flush ('Clanky boli spracovane...');

foreach ($articles as $article) {
    $sql = '
        UPDATE  '.$GLOBALS['rspredpona'].'clanky
        SET     seo_link = "'.VratSEOLink($article['titulek']).'"
        WHERE   idc = '.(int)$article['idc'].'
        ;
    ';
    $update = phprs_sql_query($sql, $GLOBALS['dbspojeni']);
    if (!$update) {
        echo_flush ('Error in generate SEOlink for article '.(int)$article['idc'].' SQL:'.$sql);
    } else {
        echo_flush ('seo_link for article '.(int)$article['idc'].' was successfully creaded');
    }
}

echo_flush ('Done');

#####################################################################


function echo_flush($str) {
    echo $str.'<br>';
    flush();
    ob_flush();
}

#####################################################################

function VratSEOLink($string = '') {

    $string = strip_tags(trim($string));
    $pole_co= array('ě','š','č','ř','ž','ť','ň','ď','ľ','ý','á','í','é','ú','ó','ů','ü','ö','ä','Ě','Š','Č','Ř','Ž','Ť','Ď','Ň','Ý','Á','Í','É','Ú','Ó','Ů','Ü','Ö','Ä','-','.');
    $pole_cim=array('e','s','c','r','z','t','n','d','l','y','a','i','e','u','o','u','u','o','a','E','S','C','R','Z','T','D','N','Y','A','I','E','U','O','U','U','O','A',' ',' ');
    $string=str_replace($pole_co, $pole_cim, $string); // odstraneni diakritiky + uprava nekterych spec. znaku
    $string = strtolower($string);
    $string = preg_match_all('/[a-zA-Z0-9]+/', $string, $nt);
    return strtolower(implode('-', $nt[0]));
}
?>





Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.