PHP codierung

_BOB_

Aktives Mitglied
Hi,

stehe seit gestern vor einem Problem
unsure.gif
und zwar:

ich möchte Inhalt einer HTML-Datei mit Hilfe eines PHP-Scriptes auf einem anderen Server einblenden.
z.B. so:"Server1 http://www.1.???/beispiel.html -------> Server2 http://www.2.???/beispiel.php".

Mit dem folgenden Script " <?php
{@readfile("http://www.1.??/beispiel.html");} ?> " funtzt es, der Text wird aber ohne Umlaute angezeigt, das heißt statt "höhe" ---> "hhe" .
dry.gif


Wie kann man dieses Problem beheben?
blink.gif

Danke im Voraus
_BOB_
 
Hallo,

das kann zwei Gründe haben. Der erste und wohl wahrscheinlichere Grund ist, dass die Datei eine andere Kodierung hat als Deine Internetseite. Um dies zu beheben, könntest Du die Daten umkodieren (z. B. über die Multibyte String Funktionen [1]).

Der zweite Grund wäre, das readfile die Datei nicht richtig eingelesen hat, und Du besser einen binär-sicheren Aufruf nehmen solltest (z. B. file [2] oder file_get_contents [3]).



MfG Sascha Ahlers
 
Danke für dein Tip,
es kommt aber immer das gleiche
blink.gif

Auf der Originalseite wird alles richtig angezeigt.
Wenn ich z.B. folgendes mache "<?php {@readfile("/????.html");} ?>" , dann werden alle Umlauten richtig eingeblendet.
dry.gif
Beim Ändern auf "<?php {@readfile("http://www.?????.??/????.html");} ?>" , obwohl die Datei ????.html sich auf dem selben Server befindet, werden die Sonderzeichen wie ö,ä,ü einfach nicht angezeigt, oder durch paar andere unlesbare Zeichen ersetzt.
blink.gif


Egal ob <meta http-equiv="content-Type" content="text/html; charset=utf-8"> oder <meta http-equiv="content-Type" content="text/html; charset=iso-8859-1">,hab beides ausprobiert.

Wie könnte man diese Sonderzeichen am schnellsten und einfachsten ersetzen, ich meine "ö" gegen "oe" u.s.w.?

Danke im Voraus
_BOB_
 
QUOTE (_BOB_ @ Do 5.1.2006, 23:13)[...]
Egal ob <meta http-equiv="content-Type" content="text/html; charset=utf-8"> oder <meta http-equiv="content-Type" content="text/html; charset=iso-8859-1">,hab beides ausprobiert.
[...]

Diese Angaben spielen bei der Übertragung keine Rollen, selbst viele Browser bachten diese Angaben nicht mehr. Es werden meistens nur die Angaben des HTTP-Kopfes beachtet!

Ich glaube nicht, dass immer das Gleiche kommt, wenn Du Deinen Programmcode entsprechend erweiterst, und die Kodierung richtig umwandelst. Dabei sollte zu bedenken sein, dass PHP mit ISO-8859-1 arbeitet und dies meistens auch als Standardwert in den HTTP-Kopf setzt.


Das Verhalten bei den verschiedenen Aufrufen kann ich mir so nicht erklären, aber wenn die Datei ohne den Präfix "http://" aufgerufen wird, müsste PHP eigentlich über das Dateisystem auf die Datei zugreifen und nicht über den Server!
Und dann würde es wieder hinkommen, da die Kodierung der Datei und die Kodierungsangabe des HTTP-Kopfes unterschiedlich sein können.



MfG Sascha Ahlers
 
@Sascha
Danke für deine Tips!
Kurze Frage: mit welchem Befehl kann man eine Url in eine PHP-Datei am besten einlesen?
So dass der komplette Url-Inhalt in dieser Datei gespiegelt wird und von den Suchmaschinen ohne Problem eingelesen werden kann.
Noch mals Danke
smile.gif
 
QUOTE (_BOB_ @ Sa 7.1.2006, 13:12) [...] Kurze Frage: mit welchem Befehl kann man eine Url in eine PHP-Datei am besten einlesen?
So dass der komplette Url-Inhalt in dieser Datei gespiegelt wird und von den Suchmaschinen ohne Problem eingelesen werden kann. [...]

Nun, am besten mit einer Funktion, welche explizit nach der PHP-Dokumentation als binär-sicher gilt. Einige Funktionen habe ich bereits oben genannt. Alles andere ist abhängig davon, was man machen möchte. Also müsstest Du das Ganze nur noch richtig in eine Datei scheiben.



MfG Sascha Ahlers
 
Zurück
Oben