2016-01-20 139 views
2

我有這樣的URL:www.test.fr/dir/file.html#hello我會刪除字符#後的所有內容。我試試這個/#[a-z0-9]+/Preg替換php後刪除字符

+1

我不喜歡回答,並得到點.. 。但是使用PHP $ _SERVER變量會更好......如果你閱讀這篇文章,你可以找到很多保留的變量,它們可以幫助您使用網址,我認爲'REQUEST_URI','SERVER_NAME'和'PHP_SELF'非常適合查看。 – Zeke

+0

確切的說,你的反應很好,但在我的情況下,我通過CURL獲得了我的網址。 PHP'$ _SERVER'在這種情況下工作? @Zeke – simon

+0

是的,你不必使用cURL來獲得你自己的URL ......'$ _SERVER'變量被保留並且可以在任何PHP版本中工作......但是你需要以特定的方式對其進行編碼以獲得預期的結果......我真的不覺得現在就這樣做。無論如何,它將與'preg_replace'一起工作,但我認爲'$ _SERVER'是「更清潔」的。 – Zeke

回答

2

您的代碼幾乎是正確的,這工作得很好:

$new = preg_replace('/#[a-z0-9]+/', '', 'www.test.fr/dir/file.html#hello'); 
print ($new); 

prints: 
www.test.fr/dir/file.html 

您可以測試它here

1

你可以用'#'explode並得到第一個位置。事情是這樣的:

$url = "www.test.fr/dir/file.html#hello"; 
$result = explode("#",$url)[0];