如何在哈希之后获取url

时间:2012-07-18 09:58:44

标签: php url hash

我有一个看起来像这样的网址:

zigzagstudio/#!/page_wedding2

我需要在#之后取一部分网址。实际上,我需要访问page_wedding2,以便将广告数字与我的数据库中的ID进行比较。这有可能使用PHP吗?有没有人有代码的例子?我还使用javascript搜索了一个解决方案,但我不知道如何使用javascript将其发送到php。

4 个答案:

答案 0 :(得分:2)

$url = "zigzagstudio/#!/page_wedding2";
$pattern = "([\#\!\/]+(.*))";

preg_match($pattern, $url, $string);
$name = $string[1];
echo $name; // prints 'page_wedding2'

答案 1 :(得分:1)

$url = 'zigzagstudio/#!/page_wedding2';
echo parse_url($url, PHP_URL_FRAGMENT);

请参阅parse_url()文档。

答案 2 :(得分:1)

您需要在JavaScript中阅读它,然后将其传递给您的PHP。

在这样的Javascript中阅读:

var query = location.href.split('#');
var anchorPart = query[0];

获得anchorPart并从中解析相关信息后,将其传递给PHP - 根据您的Web应用程序的不同,可能有不同的方法。

您可以创建一个AJAX request to page_wedding2.php并将其传递给查询字符串中的任何已解析信息。在您自己的网页中使用返回的HTML字符串。

修改:澄清the browser doesn't pass the anchor part of the URL to the server side

答案 3 :(得分:0)

您可以在PHP中使用explode,在Javascript中使用split

PHP:

$str = 'zigzagstudio/#!/page_wedding2';
$array = explode('#', $str);
echo array_pop($array);

使用Javascript:

var str = 'zigzagstudio/#!/page_wedding2';
var str_array = str.split('#');
alert(str_array.pop());