| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

10-03-2008, 20:30
|
|
chefdesigner
Registrierter Benutzer
|
|
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 257
|
|
Problem mit Caching
Ich habe in meinen Dateien folgenden Code, der dafür sorgt, dass der nachfolgende Inhalt beim ersten Aufrufen in einer .tmp-Datei abgelegt wird, aus welcher er beim zweiten Aufrufen der Seite wieder ausgelesen wird. Das funktioniert sonst auch wunderbar, seit ich Änderungen an der Datei vorgenommen habe funktioniert es jedoch nicht mehr.
Die tmp-Datei wird zwar korrekt angelegt, allerdings kommt beim zweiten Aufruf folgende Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at /path/to/my/directory/test.php5:1) in /path/to/my/directory/test.php5 on line 10
Normalerweise wird dieser Fehler ja ausgegeben, wenn vor dem Senden des Headers etwas ausgegeben wird, das ist aber nicht der Fall.
PHP-Code:
<?php
$id = $_GET['id'];
// ------ Start Caching -----------------------
// Header
ob_start();
$cache_file = "cache/produkt/article_".$id.".tmp";
clearstatcache();
if(file_exists($cache_file)) {
header("content-lenght: ".filesize($cache_file));
readfile($cache_file);
}
else {
// ------ Ende Caching ------------------------
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
...
__________________
Das Genie überblickt das Chaos!
Wer Rechtschreibfehler findet, darf sie behalten!
|

10-03-2008, 20:57
|
|
TroX
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Ort: Schweiz
Beiträge: 156
|
|
ich vermute ein Leerzeichen/Absatz/Tab vor dem öffnenden <?php -tag
|

10-03-2008, 21:00
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
sehr beliebt auch das bom. zieh dir ggf. mal das notepad++, das zeig das bom an.
gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

10-03-2008, 21:05
|
|
chefdesigner
Registrierter Benutzer
|
|
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 257
|
|
Also die spitze Klammer des öffnenden PHP-Tags ist definitiv das erste Zeichen. Bin grad dabei mir Notepad++ zu installieren um nach dem bom(?) zu sehen.
__________________
Das Genie überblickt das Chaos!
Wer Rechtschreibfehler findet, darf sie behalten!
|

10-03-2008, 21:14
|
|
chefdesigner
Registrierter Benutzer
|
|
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 257
|
|
Wow, ich bin beeindruckt! Du hast mir soeben gezeigt, wie ich mir 1 Stunde Fehlersuche hätte sparen können. Es lag tatsächlich an diesem "BOM". Sehr hilfreicher Tipp! Nochmals besten Dank an Peter
__________________
Das Genie überblickt das Chaos!
Wer Rechtschreibfehler findet, darf sie behalten!
|

10-03-2008, 21:16
|
|
chefdesigner
Registrierter Benutzer
|
|
Registriert seit: Oct 2003
Ort: Bayern
Beiträge: 257
|
|
Achso, was ich jetzt noch fragen wollte: Wie kann ich mir das bom anzeigen lassen? Ich hab den Fehler jetzt nämlich einfach gelöst indem ich "Format -> Kodiere in UTF-8 (ohne BOM)" angeklickt habe.
__________________
Das Genie überblickt das Chaos!
Wer Rechtschreibfehler findet, darf sie behalten!
|

10-03-2008, 21:32
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
format -> kodiere in ansi. dann siehst du es.
gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

23-07-2009, 09:40
|
|
tim-gt
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 52
|
|
Ich möchte den Thread hier wieder aufgreifen, und zwar wurde das mit dem BOM ja von php.net als PHP Bugs: #22108: php doesn't ignore the utf-8 BOM erkannt.
Meine Dokumente werden im tsWebEditor alle als UTF8-kodiert abgespeichert und das soll auch so bleiben, hab keine Lust, alle Umlaute mit ü und dem Zeug zu kodieren.
Ich verwende PHP 5.2.9-2. Nun soll es ja die Möglichkeit geben, PHP mit --enable-zend-multibyte zu kompilieren. Da ich das ganze per Windows Installer installiert habe, musste ich mich noch nie um solche Sachen kümmern. Ich habe nach längerer Suche einfach nirgends eine verständliche Anleitung gefunden, wie und wo ich (wahrscheinlich in der Windows-Kommandozeile) PHP im Nachhinein konfigurieren kann (abgesehen von der php.ini), und ist das überhaupt möglich und anzuraten? Ich möchte nicht auf PHP6 warten müssen.
EDITH: Ich habe doch noch eine Lösung gefunden, und zwar kann man im tsWebEditor glücklierweise die Option "Mit BOM speichern" deaktivieren. Dasselbe soll auch in Adobe DW möglich sein. Die Frage mit dem Kompilieren bleibt aber- gibt es irgendwo eine gute Anleitung dazu, wenn möglich auf Deutsch?
Geändert von tim-gt (23-07-2009 um 09:59 Uhr)
|

23-07-2009, 10:14
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Das kann alles sein... Aber es ist keine Empfehlung!
Klar kannst du dir dein propitäres PHP kompilieren. Aber deine Scripte werden sich dann darauf verlassen. Und sind damit nicht mehr portabel.
Zitat:
|
Meine Dokumente werden im tsWebEditor alle als UTF8-kodiert abgespeichert und das soll auch so bleiben, hab keine Lust, alle Umlaute mit ü und dem Zeug zu kodieren.
|
Das eine hat mit dem anderen nix zu tun!
Aber wenn du wirklich unter Win dein PHP selber kompilieren willst, dann: PHP: internals:windows:stepbystepbuild [PHP Wiki]
|

23-07-2009, 10:40
|
|
tim-gt
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 52
|
|
Das hat doch schon etwas miteinander zu tun: Wenn ich dem Browser via meta-tags und php header() 100% mitteile, die Datei sei utf-8, sie aber als iso-8859-1 abspeichere, werden in der Datei eingegebene Umlaute ä ü etc. im Browser nicht oder falsch angezeigt. Um dies zu umgehen, müsste ich ü ä etc. verwenden oder aber die Datei als utf-8 abspeichern. Wenn du mich fragst ein Zusammenhang.
|

23-07-2009, 10:47
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
oder konvertieren.. z.B. iconv()
Natürlich kannst du kein iso-xxxx in einem utf-8 Dokument einfach so ausgeben. Das wäre dumm! Klüger ist es sich auf einen Zeichensatz einzuschießen und grundsätzlich dabei zu bleiben.
Zitat:
|
mitteile, die Datei sei utf-8, sie aber als iso-8859-1 abspeichere,
|
Wenn du vor hast solche Böcke zu schießen (hätte ich dir nicht zugetraut), dann hilft dagegen auch kein PHP-kompilieren.
|

23-07-2009, 10:51
|
|
|
Ich habe lange Zeit unter Windows den tswebeditor genutzt - eigentlich ein sehr guter Editor - bis ich immer wieder über den BOM stolperte den der Editor (weiss der Geier warum) dort rein gesetzt hatte.
Bin dann auf Pspad umgestiegen und das Thema war für mich erledigt.
|

23-07-2009, 11:07
|
|
tim-gt
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 52
|
|
Zitat:
Zitat von combie
oder konvertieren.. z.B. iconv()
Natürlich kannst du kein iso-xxxx in einem utf-8 Dokument einfach so ausgeben. Das wäre dumm! Klüger ist es sich auf einen Zeichensatz einzuschießen und grundsätzlich dabei zu bleiben.
Wenn du vor hast solche Böcke zu schießen (hätte ich dir nicht zugetraut), dann hilft dagegen auch kein PHP-kompilieren. 
|
Das war nur ein Beispiel. Ich habe vorher aber in der Tat nicht gewusst, ob und wo man einstellen kann, in welchem Format ein Editor wie DW abspeichert, und dachte, dies spiele gar keine Rolle, weil man dem Browser ja mitteilen würde... Ja, lassen wir das, anno dazumal hatte ich noch nicht viel Ahnung von Zeichenkodierung - was zugegebenermassen nicht das trivialste Thema ist.
|

23-07-2009, 11:08
|
|
tim-gt
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 52
|
|
Zitat:
Zitat von piratos
Ich habe lange Zeit unter Windows den tswebeditor genutzt - eigentlich ein sehr guter Editor - bis ich immer wieder über den BOM stolperte den der Editor (weiss der Geier warum) dort rein gesetzt hatte.
Bin dann auf Pspad umgestiegen und das Thema war für mich erledigt.
|
Also in 2.2.20.79 kann ich das auf jeden Fall einstellen.
|

23-07-2009, 11:19
|
|
|
Zitat:
Zitat von tim-gt
Also in 2.2.20.79 kann ich das auf jeden Fall einstellen.
|
Tja das dachte ich auch immer hat aber nicht regelmässig gefunzt.
Das waren so meine Erfahrungen.
Da die letzte Stable vom 20.6.2006 und die letzte Dev Version (Patch) vom 13.2.2007 ist war das für mich ein Grund mehr zu wechseln, da der Editor offenbar nicht mehr gewartete wird.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|