喜更換網址我所知道的preg_replace可用於格式化字符串,但 我需要在有關地區幫助 我的網址會是這樣使用的preg_replace PHP
www.example.com/en/index.php
或
www.example.com/fr/index.php
我想要得到的是
結果爲
www.example.com/index.php
我需要它的php代碼,以便在會話中設置
任何人都可以請解釋一下嗎?
喜更換網址我所知道的preg_replace可用於格式化字符串,但 我需要在有關地區幫助 我的網址會是這樣使用的preg_replace PHP
www.example.com/en/index.php
或
www.example.com/fr/index.php
我想要得到的是
結果爲
www.example.com/index.php
我需要它的php代碼,以便在會話中設置
任何人都可以請解釋一下嗎?
preg_replace('/www.example.com\/(.+)\/index.php/i', "www.example.com/index.php?lang=$1", $url);
會做的事
爲什麼你在那裏使用括號? – SilentGhost 2011-01-19 11:36:05
我以爲OP可能需要捕獲的語言代碼,所以我添加了捕獲括號。當然,我應該更改代碼以反映以後如何訪問這些代碼。 – naivists 2011-01-19 11:45:14
這是做這件事: -
$newurl = preg_replace('/\/[a-z][a-z]\//', '/', $url);
注意,搜索字符串出現引號和正斜槓(「/.../」)和那麼URL中的正斜槓就必須被轉義(\ /)。語言代碼然後與'[a-z] [a-z]'相匹配,但是還有其他幾種方法可以做到這一點,並且在有三個字母代碼或大寫字母的情況下,您可能需要更寬鬆的東西。同樣,您可能需要採取更嚴格的措施,具體取決於可能出現的其他URL方案。
我在這種情況下懷疑這將是更快只需使用str_replace如下:
$cleanedData = str_replace(array('www.example.com/en/', 'www.example.com/fr/'), '', $sourceData);
最後我有一個方法,我感謝Purpletoucan
$newurl = preg_replace('/\/(en|esp|fr)\//', '/', $url);
它的工作,現在我的想法!
sry不是故意的 – Harish 2011-01-19 11:39:37