2012-12-06 36 views

回答

4

無需正則表達式:

$url = 'http://localhost/whatever/index.php/something/cms-abc.html?___SID=U'; 
$parts = parse_url($url); 
echo basename($parts['path']); 

甚至只是

echo basename(parse_url($url, PHP_URL_PATH)); 
+1

我仍然希望切斷尾隨的.html,但那很容易。謝謝! – user1856596

1

你是什麼意思 「的背後CMS-ABC」?你的正則表達式應該與此匹配:

/cms-abc.html?__SID=U 

你的意思是你不希望問號後的東西?然後將.替換爲[^?]「除問號外的任何字符」。

最後,如果你在PHP中拆分URL,請看parse_url()函數。它存在,它不需要編寫代碼,它不需要測試就可以工作,與編寫的代碼不同。

http://php.net/manual/en/function.parse-url.php

1

「我想從該字符串得到CMS-ABC。」因此,從/包括「cms」到(但不包括)該點的所有內容:

/cms[^\.]*/