語法
<?php
echo '<script>location.href="/"</script>';
?>
<?php
header('Location: /');
?>
說明
以上兩種皆可跳轉至首頁。本篇僅討論讀取網頁原始碼的情況,如果用 PHP 去讀取其他網頁的標題,但網頁如果有判斷會員在沒有登入的情況下跳轉至首頁,假設使用 header 跳轉,由於一開始伺服器端就直接轉跳,那麼 PHP 就無法順利讀取該網頁的標題(除非放在標題下面),如果改用 JS 的 location.href 來做跳轉且沒有加上exit(),那麼無論放在前或後都能正常讀取網頁內容。
舉例:
用 a.php 寫了一段 php 程式去取得 b.php 的網頁標題,假設 b.php 使用 PHP 的 header 跳轉至首頁且放在標題之前,那麼 a.php 讀到的標題就會是首頁標題而不是 b.php 的標題,如果 b.php 使用 JS 的 location.href 來做跳轉,那麼 a.php 可以正確讀到 b.php 的標題。
執行程式部分
使用 JS 的 location.href 有可能仍會執行到該網頁的部分程式,如果希望某些程式不要被執行,可以加上 exit(); ,那麼在 exit(); 以下的程式將不會被執行。
舉例來說:
<?php
// A程式碼
xxxxxxx
xxxxxxxxx
if(未登入){
echo '<script>location.href="/"</script>';
exit();
}
// B程式碼
xxxxxxx
xxxxxxxxx
?>
假設在未登入的情況下,則A程式碼會執行,B程式碼不會執行,該網頁會立即轉到首頁。如果要讀取網頁標題,標題的位置至少要在 exit(); 之前。