0

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

zigzagstudio/#!/page_wedding2

并且我需要在 # 之后占用 url 的一部分。事实上,我需要访问 page_wedding2 才能将数字广告与我的数据库中的 id 进行比较。这可能使用php吗?有人有代码示例吗?我还搜索了使用 javascript 的解决方案,但我不知道如何使用 javascript 将其发送到 php。

4

4 回答 4

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

preg_match($pattern, $url, $string);
$name = $string[1];
echo $name; // prints 'page_wedding2'
于 2012-07-18T10:03:05.370 回答
1
$url = 'zigzagstudio/#!/page_wedding2';
echo parse_url($url, PHP_URL_FRAGMENT);

请参阅parse_url () 文档。

于 2012-07-18T10:01:39.207 回答
1

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

像这样用 Javascript 阅读它:

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

一旦获得anchorPart并从中解析了相关信息,将其传递给您的 PHP - 可能有不同的方法来执行此操作,具体取决于您的 Web 应用程序。

您可以向page_wedding2.php发出AJAX 请求,并将查询字符串中的任何解析信息传递给它。在您自己的网页中使用返回的 HTML 字符串。

编辑: 为了澄清,浏览器不会将 URL 的锚部分传递给服务器端

于 2012-07-18T10:04:37.547 回答
0

您可以在 PHP中使用爆炸并在 Javascript中拆分。

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());
于 2012-07-18T10:01:58.207 回答