Bagaimana saya bisa me-refresh halaman menggunakan PHP secara berkala? Jika saya tidak bisa melakukannya dengan PHP, skenario apa yang paling direkomendasikan?
apakah kita sedang berbicara tentang sinkronisasi (Anda menghadapi situasi di mana Anda ingin me-refresh selama skrip php Anda diuraikan) refrehs (meta refresh akan berfungsi dengan baik) atau tentang penyegaran berkelanjutan halaman async (lebih seperti javascript / ajax)?
Najzero
Jawaban:
275
Anda bisa melakukannya dengan PHP:
header("Refresh:0");
Ini menyegarkan halaman Anda saat ini, dan jika Anda perlu mengarahkannya ke halaman lain, gunakan yang berikut:
Refresh bukan header resmi, tetapi didukung oleh banyak browser sejak Netscape Navigator. Itu berarti Anda harus menguji untuk memastikan audiens Anda menggunakan browser yang mendukung.
Patanjali
5
Menggunakan 0 akan terus-menerus memalu server Anda, dan / atau cache lokal Anda, terutama jika Anda memiliki gambar pada halaman. Jika Anda hanya perlu memperbarui informasi di layar, seperti harga saham, tetapi tidak menggunakan informasi itu dalam bentuk atau dari javascript, mungkin menggunakan tag iframe yang mengarah ke halaman hanya dengan informasi yang diperbarui, dan dengan penundaan yang sesuai dengan cara informasi saat ini harus .
Header Yazana ('Lokasi:') digunakan untuk mengalihkan pengguna ke url apa pun, Anda tidak dapat menyegarkan halaman yang menggunakannya.
Patriks
2
Pratik. Anda salah. Anda memang dapat menggunakan tajuk ("refresh:") untuk menyegarkan halaman
131
6
Anda dapat melakukan keduanya meskipun saya lebih suka tidak menunggu waktu dengan:header("Location: ".$_SERVER['PHP_SELF']);
John Magnolia
4
Catatan tentang solusi ini: Jika situs Anda menerapkan semacam perutean yang bagus atau penulisan ulang URL (yaitu hampir semua kerangka kerja secara default), Anda mungkin menemukan $_SERVER['PHP_SELF']memberi Anda jalur skrip yang benar, dan bukan URL sebenarnya yang Anda lihat di browser Anda. Dalam hal ini, coba gunakan $_SERVER['REQUEST_URI']sebagai gantinya.
BadHorsie
18
Anda yakin dapat menyegarkan halaman secara berkala menggunakan PHP:
ini akan menyegarkan setiap 0 detik - mungkin bukan tujuan Anda :)
warren
3
ya saya mengomentari jawaban ini: selalu ada ruang untuk perbaikan. Dan Anda benar, Anda dapat menetapkan contentsama dengan nilai apa pun dalam hitungan detik - komentar saya masih layak dicatat bahwa penyegaran 0 detik mungkin bukan yang Anda inginkan :)
warren
2
@Mathlight & siapa pun yang mengeluh tentang komentar yang tertunda. Hanya karena Anda mungkin telah pindah, pembaca yang akan datang mungkin baru saja mengalami masalah tersebut, dan jawaban / komentar Anda, bersama dengan orang-orang yang tertunda menantangnya, mungkin masih relevan bagi mereka.
Patanjali
1
@Mathlight Saya tidak yakin mengapa orang berpikir bahwa hanya karena sebuah posting sudah lama tidak ada nilai dalam mengomentarinya. Anda harus membuang pemikiran itu.
Mark Kramer
Apa yang Anda maksud dengan "Bangun pernyataan if dari" ?
Peter Mortensen
2
header('Location: .'); tampaknya menyegarkan halaman di Chrome, Firefox, Edge, dan Internet Explorer 11.
Sebagaimana seharusnya (sekali): php.net/manual/en/function.header.php : "Kasus khusus kedua adalah header" Lokasi: ". Tidak hanya mengirimkan header ini kembali ke browser, tetapi juga mengembalikan kode status REDIRECT (302) ke browser kecuali kode status 201 atau 3xx telah ditetapkan. "
Sz.
Tapi bukan itu yang diminta OP. Saya masih mengangkatnya, karena saya baru sadar setelah itu, maaf. Ini Natal segera! :)
Sz.
1
Anda tidak dapat melakukannya di PHP . Setelah halaman dimuat, PHP mati dan tidak terkendali.
Salah, Anda dapat me-refresh halaman secara berkala menggunakan PHP, jika Anda menggunakan fungsi header PHP seperti ini: header ("refresh: 3;");
131
1
Anda dapat menyegarkan halaman di PHP menggunakan header. Juga, menggunakan META REFRESH TIDAK ideal untuk SEO.
TheCarver
1
Saya pikir ini salah, selalu ada caranya: Saya pikir jika dia ingin me-refresh halaman dengan php setelah beberapa saat dapat mengirim permintaan ajax ke halaman yang memiliki kode refresh php. tetapi jawaban Anda baik
Mohammad Kermani
2
Salah! Harap perbaiki jawaban Anda ... Memang ini dapat dilakukan dengan PHP
M_R_K
1
Ini sepenuhnya salah! Dalam setiap cara yang mungkin. Ini bisa dilakukan dengan PHP, dengan tajuk (refresh) dan dengan pengalihan yang dipicu. Tampaknya semua jawaban lain lebih baik.
Budimir Grom
1
Anda dapat menyegarkan menggunakan JavaScript. Daripada me-refresh halaman lengkap, Anda bisa memberikan konten untuk di-refresh dalam div. Kemudian dengan menggunakan JavaScript Anda dapat menyegarkan div khusus itu saja, dan itu bekerja lebih cepat daripada refresh halaman lengkap.
Jika Anda memasukkan kode, jawaban ini mungkin sedikit lebih bisa dimengerti.
I.Am.A.Beli
1
PHP adalah bahasa sisi server, jadi Anda tidak dapat menyegarkan halaman dengan PHP, tetapi JavaScript adalah pilihan terbaik untuk menyegarkan halaman:
Hahahah ok kalau begitu, sesuai keinginan. Lihat ini => ( wrongDomain.epl.fanxt.com ) dia tidak menentukan bahwa dia akan me-refresh halaman 'setelah' itu dimuat. Jika keputusan untuk me-refresh dibuat selama eksekusi kode php, maka php pasti bisa me-refresh, dan dapat memilih setelah berapa detik untuk me-refresh.
Mohammed Joraid
@Ahmad, Anda tidak dapat mempertimbangkan sebagai fitur PHP, ini adalah fitur HTML. Jadi Diurutkan Anda lakukan dengan mengatur header respons html. Dan itu sebabnya saya bilang Anda tidak bisa melakukannya dengan PHP. Hal lain, Anda tidak dapat me-refresh halaman setelah memuat / saat dibutuhkan. ya Anda dapat mengaturnya untuk beberapa detik atau lain-lain saat Anda menjawab.
Patriks
oh teknisnya. Pikirkan apakah mungkin menggunakan header untuk menyegarkan gambar tertentu? Itu jika Anda melakukan streaming gambar melalui php kasar.
EZFrag
Sungguh @EZFrag, saya tidak tahu, dapatkah Anda memberi tahu saya bagaimana mungkin?
Patriks
Ah ya, menemukannya. Awalnya saya mencoba tag gambar normal. Tidak beruntung Tapi kemudian saya mengganti tag gambar dengan tag iframe, dan voila. Gambar diperbarui secara otomatis. Ini akan banyak membantu dengan beberapa gambar status halaman saya :) Bagi mereka yang bertanya-tanya, saya melayani gambar melalui php bersama dengan header refresh, mengatur file php sebagai src iframe.
EZFrag
1
Gema itu meta tag seperti ini:
URL adalah tempat di mana halaman harus diarahkan ke setelah refresh.
Sementara potongan kode ini dapat menyelesaikan pertanyaan, termasuk penjelasan sangat membantu untuk meningkatkan kualitas posting Anda. Ingatlah bahwa Anda menjawab pertanyaan untuk pembaca di masa depan, dan orang-orang itu mungkin tidak tahu alasan untuk saran kode Anda.
DimaSan
Tetapi pertanyaannya bukan tentang pengalihan. Ini tentang penyegaran.
Peter Mortensen
0
Salah satu triknya adalah menambahkan nomor acak ke bagian akhir URL. Dengan begitu Anda tidak perlu mengganti nama file setiap saat. Misalnya:
echo "<img src='temp.jpg?r=3892384947438'>"
Peramban tidak akan menyimpannya selama nomor acaknya berbeda, tetapi server web akan mengabaikannya.
Jawaban:
Anda bisa melakukannya dengan PHP:
Ini menyegarkan halaman Anda saat ini, dan jika Anda perlu mengarahkannya ke halaman lain, gunakan yang berikut:
sumber
header();
Dalam PHP Anda dapat menggunakan:
Atau cukup gunakan JavaScript
window.location.reload()
.sumber
header("Location: ".$_SERVER['PHP_SELF']);
$_SERVER['PHP_SELF']
memberi Anda jalur skrip yang benar, dan bukan URL sebenarnya yang Anda lihat di browser Anda. Dalam hal ini, coba gunakan$_SERVER['REQUEST_URI']
sebagai gantinya.Anda yakin dapat menyegarkan halaman secara berkala menggunakan PHP:
Ini akan menyegarkan halaman setiap tiga detik.
sumber
Itu mungkin dengan header () di PHP:
sumber
Saya menemukan dua cara untuk menyegarkan konten PHP:
1. Menggunakan
meta
tag HTML :2. Menggunakan kecepatan refresh PHP:
sumber
//Refresh by HTTP META
=>// Refresh by HTML META
juga ini sepertinya jawaban yang disalin dari atas.Selain semua cara PHP untuk me-refresh halaman, halaman tersebut juga akan di-refresh dengan tag meta HTML berikut:
Lihat Meta refresh - "secara otomatis me-refresh halaman web atau frame saat ini setelah interval waktu tertentu"
Anda dapat mengatur waktu sesuai
content
nilainya.sumber
content
sama dengan nilai apa pun dalam hitungan detik - komentar saya masih layak dicatat bahwa penyegaran 0 detik mungkin bukan yang Anda inginkan :)header('Location: .');
tampaknya menyegarkan halaman di Chrome, Firefox, Edge, dan Internet Explorer 11.sumber
Anda tidak dapat melakukannya di PHP . Setelah halaman dimuat, PHP mati dan tidak terkendali.
Anda punya beberapa pilihan:
<meta http-equiv="refresh" content="5">
Saya pikir tag meta penyegaran adalah yang termudah dan paling nyaman.
sumber
Anda dapat menyegarkan menggunakan JavaScript. Daripada me-refresh halaman lengkap, Anda bisa memberikan konten untuk di-refresh dalam div. Kemudian dengan menggunakan JavaScript Anda dapat menyegarkan div khusus itu saja, dan itu bekerja lebih cepat daripada refresh halaman lengkap.
sumber
PHP adalah bahasa sisi server, jadi Anda tidak dapat menyegarkan halaman dengan PHP, tetapi JavaScript adalah pilihan terbaik untuk menyegarkan halaman:
Metode kunjungan Lokasi reload () .
sumber
Gema itu
meta
tag seperti ini:URL adalah tempat di mana halaman harus diarahkan ke setelah refresh.
sumber
Menambahkan tag meta ini di PHP mungkin membantu:
sumber
Salah satu triknya adalah menambahkan nomor acak ke bagian akhir URL. Dengan begitu Anda tidak perlu mengganti nama file setiap saat. Misalnya:
Peramban tidak akan menyimpannya selama nomor acaknya berbeda, tetapi server web akan mengabaikannya.
sumber