2017-05-08 85 views
0

连字符我有以下网址:http://test.com/client/!MG2s-/编码的网址,其中包括PHP

我希望能够抓住塞在我的代码中使用它进一步下跌

用下面的代码:

$page_slug=$post->post_name; echo $page_slug;

输出为!mg2s

即使网址是http://test.com/client/%21MG2s%2D/的结果仍然是一样的。该slug是从第三方应用程序生成的,所以需要连字符。我知道破折号是用来净化标题的,但我需要找到一种方法来显示连字符。

我自己也尝试没有成功:

$page_slug= urlencode($post->post_name); $str = str_replace('-', '%2D', $page_slug); echo $str;

是没有什么办法,连字符可以显示?

更多注意事项:这只发生在以连字符结尾的slu happening上。带有连字符的S have在显示连字符时没有问题。

回答

0

实测溶液here

$url="http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
$url_path=parse_url($url, PHP_URL_PATH); 
$page_slug=pathinfo($url_path, PATHINFO_BASENAME); 

,而不是使用

$page_slug=$post->post_name;