Làm cách nào tôi có thể làm mới một trang bằng PHP định kỳ? Nếu tôi không thể làm điều đó bằng PHP, kịch bản được đề xuất tốt nhất là gì?
Làm cách nào tôi có thể làm mới một trang bằng PHP định kỳ? Nếu tôi không thể làm điều đó bằng PHP, kịch bản được đề xuất tốt nhất là gì?
Câu trả lời:
Bạn có thể làm điều đó với PHP:
header("Refresh:0");
Nó làm mới trang hiện tại của bạn và nếu bạn cần chuyển hướng nó đến một trang khác, hãy sử dụng như sau:
header("Refresh:0; url=page2.php");
Trong PHP bạn có thể sử dụng:
$page = $_SERVER['PHP_SELF'];
$sec = "10";
header("Refresh: $sec; url=$page");
Hoặc chỉ sử dụng JavaScript window.location.reload()
.
header("Location: ".$_SERVER['PHP_SELF']);
$_SERVER['PHP_SELF']
cung cấp cho bạn đường dẫn tập lệnh thực sự chứ không phải URL thực tế bạn thấy trong trình duyệt của mình. Trong trường hợp này, hãy thử sử dụng $_SERVER['REQUEST_URI']
thay thế.
Điều đó đơn giản là có thể với tiêu đề () trong PHP:
header('Refresh: 1; url=index.php');
Tôi đã tìm thấy hai cách để làm mới nội dung PHP:
1. Sử dụng meta
thẻ HTML :
echo("<meta http-equiv='refresh' content='1'>"); //Refresh by HTTP 'meta'
2. Sử dụng tốc độ làm mới PHP:
$delay = 0; // Where 0 is an example of a time delay. You can use 5 for 5 seconds, for example!
header("Refresh: $delay;");
//Refresh by HTTP META
=> // Refresh by HTML META
đây cũng giống như một câu trả lời được sao chép từ phía trên.
Bên cạnh tất cả các cách PHP để làm mới một trang, trang cũng sẽ được làm mới với thẻ meta HTML sau:
<meta http-equiv="refresh" content="5">
Xem làm mới Meta - "tự động làm mới trang web hoặc khung hiện tại sau một khoảng thời gian nhất định"
Bạn có thể đặt thời gian trong content
giá trị.
content
bằng với bất kỳ giá trị nào trong vài giây - nhận xét của tôi vẫn đáng chú ý rằng việc làm mới 0 giây có lẽ không phải là điều bạn sẽ làm :)
header('Location: .');
dường như làm mới trang trong Chrome, Firefox, Edge và Internet Explorer 11.
Bạn không thể làm điều đó trong PHP . Khi trang được tải, PHP sẽ chết và mất kiểm soát.
Bạn có một vài lựa chọn:
<meta http-equiv="refresh" content="5">
Tôi nghĩ rằng thẻ meta refresh là dễ nhất và thuận tiện nhất.
Bạn có thể làm mới bằng JavaScript. Thay vì làm mới trang hoàn chỉnh, bạn có thể cung cấp nội dung được làm mới trong div. Sau đó, bằng cách sử dụng JavaScript, bạn chỉ có thể làm mới div cụ thể đó và nó hoạt động nhanh hơn so với làm mới trang hoàn chỉnh.
PHP là ngôn ngữ phía máy chủ, vì vậy bạn không thể làm mới trang bằng PHP, nhưng JavaScript là tùy chọn tốt nhất để làm mới trang:
location.reload();
Phương thức truy cập Location reload () .
Tiếng vọng meta
thẻ như thế này:
URL là nơi mà trang sẽ được chuyển hướng đến sau khi làm mới.
echo "<meta http-equiv=\"refresh\" content=\"0;URL=upload.php\">";
Thêm thẻ meta này trong PHP có thể giúp:
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=' . $location . '">';
Một mẹo nhỏ là thêm một số ngẫu nhiên vào cuối URL. Bằng cách đó, bạn không phải đổi tên tệp mỗi lần. Ví dụ:
echo "<img src='temp.jpg?r=3892384947438'>"
Trình duyệt sẽ không lưu nó miễn là số ngẫu nhiên khác nhau, nhưng máy chủ web sẽ bỏ qua nó.