2017-06-01 60 views
0

我試圖獲取當前網址,使用動態值修改URL中的幾個字符串參數,並重定向到該修改的網址。 我已經獲得當前的網址與'location.href' : http://dev.azima.com/@[email protected]/page-content/about-us/5使用Javascript在php中使用動態值修改當前網址

我試圖用$page->slug and $page->id分別替換最後兩個參數(字符串)'about-us' and '5'。 我試過字符串操作方法,但無法弄清楚問題所在。

+0

你想修改PHP中的url –

+0

@NadirLaskar是的..我想編輯兩個參數並重定向到該URL – Azima

+0

發佈一些你已經嘗試過的代碼 – Rahul

回答

0

如果URL模式是固定的,那麼可以使用explode/implode函數在PHP中實現。像這樣:

$url = "http://dev.azima.com/@[email protected]/page-content/about-us/5"; 
$url_arr = explode("//", $url); 
$url_arr[count($url_arr) - 1] = $page->id; 
$url_arr[count($url_arr) - 2] = $page->slug; 

$url = implode("//", url_arr); 
header("location:$url"); 

希望這會有所幫助。

0

讓我寫什麼,我理解你想要做什麼:

  1. 用戶將一個URL
  2. 一些代碼在PHP做
  3. 用戶被重定向到一個新的URL通過Javascript

如果沒有用戶交互,則可能沒有任何其他步驟。

但是您確實需要了解PHP是一種服務器端語言,並且它是一種客戶端語言。

如果沒有任何AJAX調用,您無法將內容從JS傳遞給PHP。

解決方案

因此,基本上,你會做

<?php 
/** YOUR PHP CODE WITH $_GET $_POST RETRIEVALS OR WHATEVER **/ 
$javascript = '(function() { 
    // your redirection 
})();'; 
?><html> 
<head> 
</head> 
<body> 
Your HTML here 

<script> 
<?php echo $javascript; ?> 
</script> 
</body> 
</html> 

說實話,我寧願認爲這種類型的代碼是純PHP,更快,更輕鬆:

<?php 
/** YOUR PHP CODE WITH $_GET $_POST RETRIEVALS OR WHATEVER **/ 
if(!empty($redirectIsNeeded)) { 
    header('Location: http://foo.bar'); 
} 
?><html> 
<head> 
</head> 
<body> 
Your HTML here 
</body> 
</html> 

您也可以考慮,如果不需要加載,並且只想使用history.pushstate在URL欄中「顯示」正確的URL。