久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

清理放置在 URL 中的字符串的最佳方法是什么,例

What is the best way to clean a string for placement in a URL, like the question name on SO?(清理放置在 URL 中的字符串的最佳方法是什么,例如 SO 上的問題名稱?)
本文介紹了清理放置在 URL 中的字符串的最佳方法是什么,例如 SO 上的問題名稱?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我希望創(chuàng)建一個 URL 字符串,就像 SO 用于問題鏈接的 URL 字符串一樣.我不是在考慮重寫 url (mod_rewrite).我正在考慮在頁面上生成鏈接.

I'm looking to create a URL string like the one SO uses for the links to the questions. I am not looking at rewriting the url (mod_rewrite). I am looking at generating the link on the page.

示例:問題名稱為:

Is it better to use ob_get_contents() or $text .= ‘test’;

URL 最終是:

http://stackoverflow.com/questions/292068/is-it-better-to-use-obgetcontents-or-text-test

我感興趣的部分是:

is-it-better-to-use-obgetcontents-or-text-test

所以基本上我希望清除任何不是字母數(shù)字的內(nèi)容,同時仍然保持 URL 可讀.我創(chuàng)建了以下內(nèi)容,但我不確定它是否是最好的方法,或者它是否涵蓋了所有可能性:

So basically I'm looking to clean out anything that is not alphanumeric while still keeping the URL readable. I have the following created, but I'm not sure if it's the best way or if it covers all the possibilities:

$str = urlencode(
    strtolower(
    str_replace('--', '-', 
    preg_replace(array('/[^a-z0-9 ]/i', '/[^a-z0-9]/i'), array('', '-'), 
    trim($urlPart)))));

所以基本上:

  1. 修剪
  2. 用空替換任何非字母數(shù)字和空格
  3. 然后用破折號替換所有不是字母數(shù)字的內(nèi)容
  4. 用-替換-.
  5. strtolower()
  6. urlencode() -- 可能不需要,但只是為了更好的衡量.
  1. trim
  2. replace any non alphanumeric plus the space with nothing
  3. then replace everything not alphanumeric with a dash
  4. replace -- with -.
  5. strtolower()
  6. urlencode() -- probably not needed, but just for good measure.

推薦答案

正如您已經(jīng)指出的,在這種情況下不需要 urlencode(),trim() 也不需要.如果我理解正確,第 4 步是避免連續(xù)出現(xiàn)多個破折號,但它不會阻止超過兩個破折號.另一方面,連接兩個詞的破折號(如大規(guī)模")將被您的解決方案刪除,而它們似乎保留在 SO 上.

As you pointed out already, urlencode() is not needed in this case and neither is trim(). If I understand correctly, step 4 is to avoid multiple dashes in a row, but it will not prevent more than two dashes. On the other hand, dashes connecting two words (like in "large-scale") will be removed by your solution while they seem to be preserved on SO.

我不確定這是否真的是最佳方法,但這是我的建議:

I'm not sure that this is really the best way to do it, but here's my suggestion:

$str = strtolower( 
  preg_replace( array('/[^a-z0-9- ]/i', '/[ -]+/'), array('', '-'), 
  $urlPart ) );

所以:

  1. 刪除任何既不是空格、破折號也不是字母數(shù)字的字符
  2. 用一個破折號替換任意連續(xù)數(shù)量的空格或破折號
  3. strtolower()

這篇關(guān)于清理放置在 URL 中的字符串的最佳方法是什么,例如 SO 上的問題名稱?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Action View Helper in Zend - Work around?(Zend 中的動作視圖助手 - 解決方法?)
Is this a good way to match URI to class/method in PHP for MVC(這是將 URI 與 PHP 中用于 MVC 的類/方法匹配的好方法嗎)
Where do I save partial (views) in Zend Framework, to be accessible for all Views in my App?(我在哪里保存 Zend Framework 中的部分(視圖),以便我的應(yīng)用程序中的所有視圖都可以訪問?) - IT屋-程序員軟件開發(fā)技術(shù)
Having a single entry point to a website. Bad? Good? Non-issue?(有一個網(wǎng)站的單一入口點.壞的?好的?沒問題?)
Is MVC + Service Layer common in zend or PHP?(MVC + 服務(wù)層在 Zend 或 PHP 中常見嗎?)
Hello World example in MVC approach to PHP(PHP MVC 方法中的 Hello World 示例)
主站蜘蛛池模板: 一区精品视频 | 成人免费观看视频 | 国产视频福利一区 | 99久久久国产精品 | 99reav| 国产一区二区三区在线视频 | 久久精品一区 | 国产黄色精品在线观看 | 超碰美女在线 | 中文字幕国产视频 | 亚洲va欧美va人人爽午夜 | 亚洲va欧美va天堂v国产综合 | 国产精品久久久久久久久久软件 | 91玖玖| 欧美激情 亚洲 | 国产精品一区一区三区 | www.色53色.com | 青青草视频网站 | 亚洲一区电影 | 亚洲综合大片69999 | 中文一区二区视频 | 国产精品国产三级国产aⅴ浪潮 | 99riav3国产精品视频 | 激情久久网 | 一区二区av| 欧美一级片在线观看 | 欧美精品成人 | 精品美女视频在线观看免费软件 | 精品国产伦一区二区三区观看说明 | 国产98色在线 | 午夜精品久久久久久久星辰影院 | 国产91精品久久久久久久网曝门 | 一区不卡在线观看 | 中文字幕一区二区三区在线视频 | 日韩精品免费播放 | 99热国产精品 | 久久er精品 | 999久久久免费精品国产 | 成人亚洲精品久久久久软件 | 一区二区三区电影网 | 综合久久网|