Archiv verlassen und diese Seite im Standarddesign anzeigen : fopen problem, seite zeigt alte daten statt sich die neuen zu holen...
habe folgenden code geschrieben (hier stark verkürzt):
<?
$page=@fopen("http://www.blabla.de","rb");
while(!feof($page)) {
$content .= @fread($page,4096);
}
fclose($page);
if($aktiv > 0) {
//1
preg_match_all('//isU', $content, $a);
$p = @preg_replace('//ims', '', $a[0][0]);
} else { echo 'Fehler'; }
if($i == 1 && $aktiv > 0) {
echo $p;
}
else{
echo ''.$i.''.$p.'';
}
?>
das auslesen der anderen seite funktioniert soweit auch wunderbar, nur mein problem ist wenn sich der inhalt auf der seite wo die php ausließt sich geändert hat zeigt meine php das einfach nicht an sondern immernoch die daten von davor.. irgendwie kommt es mir so vor als fragt er die seit enich tnochmal ab sondern nimmt sich die alte abfrage aussem cache oder so in der art..
wenn ich mein rechner neu startete sind auch die neuen daten da.. nur das kann ja nicht die lösung sein.
gibts vllt irgnedwas was ich noch einbauen sollte damit er die seite auch jedesmal neu abfragt und nicht irgendwelche alten daten verwendet ?
Oder eine andere lösung ?
mfg
DD
also wenn ich temporäre internetdateien lösche zeigt er dann die richtigen (neuen) daten an..
onemorenerd 23-11-2005, 00:54 Das ist dein Browsercache! :rolleyes:
Dein Script muß deinem Browser mittels header() sagen, dass die erzeugte Seite nicht gecacht werden soll. Mehr nicht.
mh hab leider keine erfahrung mit dem header()
habe jetzt
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum der Vergangenheit
header ("Last-Modified: " . gmdate ("D, d M Y H:i:s") . " GMT"); // immer geändert
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache");
eingefügt..
zeigt leider aber auch keine wirkung ;(
mh hab jetz vor das ganze
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="cache-control" content="no-store">
<meta http-equiv="cache-control" content="max-age=0">
<meta http-equiv="cache-control" content="must-revalidate">
<meta http-equiv="expires" content="0">
<meta http-equiv="pragma" content="no-cache">
gesetzt, scheint bisher zu funktionieren ;)
onemorenerd 23-11-2005, 17:18 - alle @ aus deinem Code entfernen und error_reporting einstellen
- erneut prüfen
- Browsercache leeren
- erneut prüfen
- clearstatcache einbauen
- erneut prüfen
- jetzigen Code inkl. der Header-Geschichten posten und beschreiben, wie/wo/wann welcher Fehler auftritt.
okay, dann hat es sicherledigt
Greaseball 25-12-2007, 19:36 Hallo.
Ich habe leider das gleiche Problem.
Ich habe beide Vorschläge bereits umgesetzt aber da passiert nix.
Ich programmiere gerade ein Script um einfache Bilder erzeugen zu können.
Dies funktioniert auch sehr gut. Leider wird mir das neu erzeugte Bild erst angezeigt wenn ich den Browsercache leere.
Das alte Bild wird vorher gelöscht, bevor das neue erstellt wird.
Ich dachte das der Browser erkennt das das Bild neu erstellt wurde und es dann neu lädt. Leider geht das auch nicht.
Was kann ich da noch machen?
PHP-Desaster 25-12-2007, 21:41 Die Bilderadresse eindeutig machen, beispielsweise durch anhängen eines zufälligen Parameters an die Adresse:
echo "deineUrl.jpg?".rand();
Greaseball 26-12-2007, 09:33 Danke für die Hilfe.
Hab diesen Hinweis bereits umgesetzt.
Original geschrieben von PHP-Desaster
Die Bilderadresse eindeutig machen, beispielsweise durch anhängen eines zufälligen Parameters an die Adresse:
echo "deineUrl.jpg?".rand();
Wenn es der zufall will, hast du da aba 2 mal das selbe rand(). Besser wäre dann
echo "deineUrl.jpg?see=".time();
Griecherus 26-12-2007, 10:49 Original geschrieben von dani_o
Wenn es der zufall will, hast du da aba 2 mal das selbe rand(). Besser wäre dann
echo "deineUrl.jpg?see=".time();
Oder gleich richtig:
echo 'deineUrl.jpg?see=' . md5(uniqid());
Greaseball 26-12-2007, 12:31 Ich hab die time() verwendet.
Reicht ja aus.
Im Prinzip ist dies in diesem Fall auch egal, weil ja alles funktioniert.
Aber blöd ist das schon, da dies ja keine wirkliche Funktion hat, sondern nur dem Browser vorgaukelt das sich was ändert.
Man hat es schon nicht leicht.
PHP-Desaster 26-12-2007, 16:50 Wenn es der zufall will, hast du da aba 2 mal das selbe rand().Es ging mir ums Prinzip ;)
|