2009-09-16 50 views
2

我正在編程一個博客,我希望URIs是標題,像問題標題在這裏在stackoverflow或像wordpress。
淨化URI的規則是什麼?
在PHP中是否有這樣做的代碼呢?如何用PHP清理標題URI?

由於提前,
奧馬爾

回答

2

通常你會希望你的URL只有0-9和a-z,並確保一切都是小寫。用破折號( - )替換空格,並去掉其餘的亂碼。

所以它幾乎已經知道了。

6

這可能是有一個連字符替換任何非字母數字字符的最短途徑:

trim(preg_replace('/[^a-z0-9-]+/', '-', strtolower($str)), '-') 
+0

謝謝你,這不完美的工作 – jck

6

Here's how drupal does it

在現場的情況下出現故障:

<?php 
function pathauto_cleanstring($string) 
{ 
    $url = $string; 
    $url = preg_replace('~[^\\pL0-9_]+~u', '-', $url); // substitutes anything but letters, numbers and '_' with separator 
    $url = trim($url, "-"); 
    $url = iconv("utf-8", "us-ascii//TRANSLIT", $url); // TRANSLIT does the whole job 
    $url = strtolower($url); 
    $url = preg_replace('~[^-a-z0-9_]+~', '', $url); // keep only letters, numbers, '_' and separator 
    return $url; 
} 
+0

這工作就像一個魅力! –

+0

如果鏈接頁面出現故障,您可能需要發佈完整的答案,而不僅僅是鏈接。 – karancan