php實現字元轉URL實現代碼

來源:互聯網
上載者:User

英文:

 代碼如下 複製代碼

function tourl($str) {
  $str = preg_replace('/[^a-zA-Z0-9]+/', '-', $str);
  $str = trim($str, '-');
  return strtolower($str);
}

包含特殊字元:

 

 代碼如下 複製代碼
function strtourl($str) {
  $str = htmlentities($str, ENT_QUOTES, "UTF-8");
  $str = preg_replace('/&([a-z]{1,2})(?:acute|lig|grave|ring|tilde|uml|cedil|caron);/i','1',$str);
  $str = html_entity_decode($str, ENT_QUOTES, "UTF-8");
  $str = preg_replace('/[^a-z0-9]+/i', '-', $str);
  return strtolower($str);
}

urlencode函數 此函數可以解決百度 get與google get中文亂碼問題哦

 代碼如下 複製代碼

header('Content-type: text/html; charset=utf-8');  
  
echo '<br />百度關鍵詞URL編碼轉換樣本:<br />'; 

$urlBaidu = 'http://www.baidu.com/s?wd=%D6%D0%CE%C4'; 

$arrParse = parse_url($urlBaidu); 

parse_str($arrParse ['query'],$output); 

echo '亂碼:' . $output['wd'] . '<br />';  
//將gb2312編碼轉換成utf-8編碼 

$strUTF8 = mb_convert_encoding($output['wd'], 'utf-8', 'gb2312'); 

echo '可讀碼:' . $strUTF8 . '<br />';  

echo '<br />Google關鍵詞URL編碼轉換樣本:<br />'; 

$urlGoogle = 'http://www.google.cn/search?hl=zh-CN&source=hp&q=%E4%B8%AD%E6%96%87&aq=f&oq='; 
    
$arrParse = parse_url($urlGoogle); 

parse_str($arrParse ['query'],$output); 
//Google關鍵詞URL編碼是utf-8,不用再作轉換 

echo '可讀碼:' . $output['q'] . '<br />';

總結,個人更喜歡使用php內建urlencode()函數了,上面這個也是解決我們url用中文時百度與gg有時會亂碼問題解決方案了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.