2012-07-18 102 views
0

後得到的URL我的URL看起來是這樣的:如何哈希

zigzagstudio/#!/page_wedding2 

,我需要把#後的URL的一部分。事實上,我需要達到page_wedding2以便將數字廣告與我的數據庫進行比較。這可能使用PHP?有沒有人有一個代碼的例子?我也搜索了一個解決方案使用JavaScript,但我不知道如何發送到PHP使用JavaScript。

+0

http://stackoverflow.com/questions/4197591/parsing-url-hash-fragment-identifier-with-javascript – DaveRandom 2012-07-18 10:02:23

回答

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

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

但我怎麼得到的網址與哈希?因爲到目前爲止我的鏈接看起來像這樣:127.0.0.1/zigzagstudio/#!/page_wedding2 – 2012-07-18 10:15:25

+0

你的意思是用'#!'?用'$ name = $ string [0]' – 2012-07-18 10:20:54

+0

替換'$ name = $ string [1]',所以你在說我應該這樣寫:$ url ='127.0.0.1/zigzagstudio /#!/ page_wedding2' ?\ – 2012-07-18 10:30:46

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

請參閱parse_url()文檔。

+0

但我可以得到使用PHP的網址? – 2012-07-18 10:11:18

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()); 
+0

但我如何獲得散列的URL?因爲我的鏈接到目前爲止看起來像這樣:http://127.0.0.1/zigzagstudio/#!/page_wedding2 – 2012-07-18 10:13:37

+0

'$ _SERVER [「REQUEST_URI」];' – Dev 2012-07-18 11:26:13

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

+0

不需要使用JS,可以通過許多不同的方式在PHP中使用。 – 2012-07-18 10:05:15

+0

請解釋 - 你[無法讀取錨部分](PHP的PHP)中的URL(http://stackoverflow.com/questions/940905/can-php-read-the-hash-portion-of-the-url) ,OP意味着它需要從客戶端發送到PHP頁面。 – 2012-07-18 10:10:22