Дезинфекция URL-адресов с использованием PHP для SEO дружественных - PullRequest
2 голосов
/ 24 сентября 2011

Я нахожусь в процессе превращения своих URL-адресов в дружественные к SEO.

Мои URL-адреса для моего блога в настоящее время выглядят так:

http://domain.com/news/view-article.php?id=23+category=qrops+title=moving-your-pension-abroad---what-are-the-benefits?

Как я могу гарантировать, что такие символы, как @?> <не появляется в моем URL? </p>

Как мне избежать дублирования ---?

Код для генерации URL выглядит следующим образом:

<a class="small magenta awesome" title="View full article" href="view-article.php?id='.$row['id'].'+category='.strtolower($row['category']).'+title='.strtolower(str_replace(" ","-",$row['title'])).'">View full article &raquo;</a>

Довольноконечно, я делаю что-то не так, но я пытаюсь ...

Помощь оценена ..

Я перейду к использованию mod_rewrite в apache позже

Ответы [ 2 ]

4 голосов
/ 24 сентября 2011

Я использовал эту функцию

function SEO($input){ 
    //SEO - friendly URL String Converter    
    //ex) this is an example -> this-is-an-example
    $input = str_replace("&nbsp;", " ", $input);
    $input = str_replace(array("'", "-"), "", $input); //remove single quote and dash
    $input = mb_convert_case($input, MB_CASE_LOWER, "UTF-8"); //convert to lowercase
    $input = preg_replace("#[^a-zA-Z]+#", "-", $input); //replace everything non an with dashes
    $input = preg_replace("#(-){2,}#", "$1", $input); //replace multiple dashes with one
    $input = trim($input, "-"); //trim dashes from beginning and end of string if any
    return $input; 
}

Например, вы можете использовать это как

echo "<title>".SEO($title)."</title>";
1 голос
/ 24 сентября 2011

Я использую эту полезную функцию для создания SEO дружественного URL

function url($url) {
        $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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...