parlons-nous de la synchronisation (vous rencontrez une situation où vous souhaitez actualiser pendant que votre script php est analysé) refrehs (meta refresh fonctionnerait bien) ou de l'actualisation continue asynchrone d'une page (plus comme javascript / ajax)?
Najzero le
Réponses:
275
Vous pouvez le faire avec PHP:
header("Refresh:0");
Il actualise votre page actuelle et si vous devez la rediriger vers une autre page, utilisez ce qui suit:
Refresh n'est pas un en-tête officiel, mais est pris en charge par de nombreux navigateurs depuis Netscape Navigator. Cela signifie que vous devrez tester pour vous assurer que votre public utilise des navigateurs compatibles.
Patanjali
5
L'utilisation de 0 martèlera continuellement votre serveur et / ou votre cache local, surtout si vous avez des images sur la page. Si vous avez seulement besoin de mettre à jour des informations à l'écran, comme les cours des actions, mais que vous n'utilisez pas ces informations dans un formulaire ou à partir de javascript, utilisez peut-être une balise iframe pointant vers une page avec uniquement les informations en cours de mise à jour, et avec un délai approprié à la façon dont courant l'information doit être.
L'en-tête Yazana ('Location:') est utilisé pour rediriger l'utilisateur vers n'importe quelle URL, vous ne pouvez pas actualiser la page en l'utilisant.
Patriks
2
Pratik. Vous avez tort. vous pouvez en effet utiliser l'en-tête ("refresh:") pour rafraîchir une page
131
6
Vous pouvez faire les deux même si je préfère pas de temps d'attente avec:header("Location: ".$_SERVER['PHP_SELF']);
John Magnolia
4
Une note à propos de cette solution: Si votre site met en œuvre une sorte de routage ou de réécriture d'URL (c'est-à-dire presque n'importe quel framework par défaut), vous pourriez trouver $_SERVER['PHP_SELF']le vrai chemin du script, et non l'URL réelle que vous voyez dans votre navigateur. Dans ce cas, essayez d'utiliser à la $_SERVER['REQUEST_URI']place.
BadHorsie
18
Vous pouvez certainement actualiser une page régulièrement en utilisant PHP:
<?php
header("refresh: 3;");?>
Cela actualisera la page toutes les trois secondes.
cela sera actualisé toutes les 0 secondes - probablement pas ce que vous recherchez :)
warren
3
oui je commente cette réponse: il y a toujours place à l'amélioration. Et vous avez raison, vous pouvez définir contentune valeur égale à n'importe quelle valeur en secondes - mon commentaire vaut quand même la peine de noter qu'un rafraîchissement de 0 seconde n'est probablement pas ce que vous recherchez :)
warren
2
@Mathlight et quiconque se plaint du retard des commentaires. Juste parce que vous avez peut-être évolué, un futur lecteur vient peut-être de rencontrer le problème, et votre réponse / commentaire, ainsi que tout commentaire retardé le contestant, peut encore être pertinent pour lui.
Patanjali
1
@Mathlight Je ne sais pas pourquoi les gens pensent que ce n'est pas parce qu'un message est ancien qu'il ne peut y avoir aucune valeur à le commenter. Vous devriez vous débarrasser de cette pensée.
Mark Kramer
Que voulez-vous dire par "Construire dans l'instruction if à partir de" ?
Peter Mortensen
2
header('Location: .'); semble actualiser la page dans Chrome, Firefox, Edge et Internet Explorer 11.
Comme il se doit (une fois): php.net/manual/en/function.header.php : "Le deuxième cas particulier est l'en-tête" Location: ". Non seulement il renvoie cet en-tête au navigateur, mais il renvoie également un code d'état REDIRECT (302) dans le navigateur à moins que le code d'état 201 ou 3xx n'ait déjà été défini. "
Sz.
Mais ce n'est pas ce que le PO a demandé. Je l'ai encore voté, car je ne m'en suis rendu compte qu'après coup, désolé. C'est bientôt Noël! :)
Sz.
1
Vous ne pouvez pas le faire en PHP . Une fois la page chargée, PHP meurt et est hors de contrôle.
Faux, vous pouvez actualiser une page périodiquement en utilisant PHP, si vous utilisez la fonction d'en-tête de PHP comme ceci: header ("refresh: 3;");
131
1
Vous pouvez actualiser une page en PHP en utilisant l'en-tête. De plus, utiliser META REFRESH n'est PAS idéal pour le référencement.
TheCarver
1
Je pense que c'est faux, il y a toujours un moyen: je pense que s'il veut rafraîchir la page avec php après un certain temps, il peut envoyer une requête ajax à une page qui a le code de rafraîchissement de php. mais à tout votre réponse est bonne
Mohammad Kermani
2
Faux ! Veuillez corriger votre réponse ... En effet, cela peut être fait avec PHP
M_R_K
1
C'est complètement faux! De toutes les manières possibles. Cela peut être fait par PHP, par en-têtes (actualisation) et par des redirections déclenchées. Il semble que toutes les autres réponses soient meilleures.
Budimir Grom
1
Vous pouvez actualiser à l'aide de JavaScript. Plutôt que l'actualisation complète de la page, vous pouvez donner le contenu à actualiser dans un div. Ensuite, en utilisant JavaScript, vous pouvez actualiser uniquement ce div particulier, et cela fonctionne plus rapidement que l'actualisation complète de la page.
Hahahah ok alors, comme tu veux. Vérifiez ceci => ( falseDomain.epl.fanxt.com ) il n'a pas spécifié qu'il actualiserait la page «après» son chargement. Si la décision d'actualiser a été prise lors de l'exécution du code php, php peut certainement actualiser et choisir après combien de secondes d'actualisation.
Mohammed Joraid
@Ahmad, vous ne pouvez pas considérer comme une fonctionnalité de PHP, c'est une fonctionnalité de HTML. Donc, en tri, vous faites en définissant l'en-tête de réponse html. Et c'est pourquoi j'ai dit que vous ne pouvez pas le faire avec PHP. Une autre chose, vous ne pouvez pas actualiser la page après le chargement / en cas de besoin. oui, vous pouvez le définir pendant quelques secondes ou etc. en fonction de votre réponse.
Patriks le
oh les détails techniques. Pensez-vous qu'il est possible d'utiliser l'en-tête pour rafraîchir une image spécifique? C'est si vous diffusez l'image via le php de grossier.
EZFrag
Vraiment @EZFrag, je ne sais pas, pouvez-vous me dire comment est-ce possible?
Patriks
Ah oui, je l'ai trouvé. Au début, j'ai essayé une balise d'image normale. Pas de chance. Mais ensuite, j'ai remplacé la balise d'image par la balise iframe, et voilà. L'image s'actualise automatiquement. Cela va beaucoup aider avec certaines de mes images de statut sur la page :) Pour ceux qui se demandent, je sers l'image via php avec l'en-tête de rafraîchissement, en définissant le fichier php comme le src de l'iframe.
EZFrag
1
Faites écho à la metabalise comme ceci:
L'URL est celle vers laquelle la page doit être redirigée après l'actualisation.
Bien que cet extrait de code puisse résoudre la question, inclure une explication aide vraiment à améliorer la qualité de votre message. N'oubliez pas que vous répondez à la question aux lecteurs à l'avenir, et que ces personnes pourraient ne pas connaître les raisons de votre suggestion de code.
DimaSan
Mais la question ne concerne pas la redirection. Il s'agit de rafraîchir.
Peter Mortensen
0
Une astuce consiste à ajouter un nombre aléatoire à la fin de l'URL. De cette façon, vous n'avez pas à renommer le fichier à chaque fois. Par exemple:
echo "<img src='temp.jpg?r=3892384947438'>"
Le navigateur ne le mettra pas en cache tant que le nombre aléatoire est différent, mais le serveur Web l'ignorera.
Réponses:
Vous pouvez le faire avec PHP:
Il actualise votre page actuelle et si vous devez la rediriger vers une autre page, utilisez ce qui suit:
la source
header();
En PHP, vous pouvez utiliser:
Ou utilisez simplement JavaScript
window.location.reload()
.la source
header("Location: ".$_SERVER['PHP_SELF']);
$_SERVER['PHP_SELF']
le vrai chemin du script, et non l'URL réelle que vous voyez dans votre navigateur. Dans ce cas, essayez d'utiliser à la$_SERVER['REQUEST_URI']
place.Vous pouvez certainement actualiser une page régulièrement en utilisant PHP:
Cela actualisera la page toutes les trois secondes.
la source
C'est simplement possible avec header () en PHP:
la source
J'ai trouvé deux façons d'actualiser le contenu PHP:
1. Utilisation de la
meta
balise HTML :2. Utilisation du taux de rafraîchissement PHP:
la source
//Refresh by HTTP META
=>// Refresh by HTML META
cela ressemble également à une réponse copiée d'en haut.Outre toutes les méthodes PHP pour actualiser une page, la page sera également actualisée avec la balise meta HTML suivante:
Voir Meta refresh - "actualise automatiquement la page Web ou le cadre actuel après un intervalle de temps donné"
Vous pouvez définir l'heure dans la
content
valeur.la source
content
une valeur égale à n'importe quelle valeur en secondes - mon commentaire vaut quand même la peine de noter qu'un rafraîchissement de 0 seconde n'est probablement pas ce que vous recherchez :)header('Location: .');
semble actualiser la page dans Chrome, Firefox, Edge et Internet Explorer 11.la source
Vous ne pouvez pas le faire en PHP . Une fois la page chargée, PHP meurt et est hors de contrôle.
Vous avez quelques options:
<meta http-equiv="refresh" content="5">
Je pense que la balise meta d'actualisation est la plus simple et la plus pratique.
la source
Vous pouvez actualiser à l'aide de JavaScript. Plutôt que l'actualisation complète de la page, vous pouvez donner le contenu à actualiser dans un div. Ensuite, en utilisant JavaScript, vous pouvez actualiser uniquement ce div particulier, et cela fonctionne plus rapidement que l'actualisation complète de la page.
la source
PHP est un langage côté serveur, vous ne pouvez donc pas actualiser la page avec PHP, mais JavaScript est la meilleure option pour actualiser la page:
La méthode visit Location reload () .
la source
Faites écho à la
meta
balise comme ceci:L'URL est celle vers laquelle la page doit être redirigée après l'actualisation.
la source
L'ajout de cette balise meta en PHP peut aider:
la source
Une astuce consiste à ajouter un nombre aléatoire à la fin de l'URL. De cette façon, vous n'avez pas à renommer le fichier à chaque fois. Par exemple:
Le navigateur ne le mettra pas en cache tant que le nombre aléatoire est différent, mais le serveur Web l'ignorera.
la source