php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.01.2011, 16:08  
Neuer Benutzer
 
Registriert seit: 19.01.2011
Beiträge: 7
PHP-Kenntnisse:
Fortgeschritten
telelino befindet sich auf einem aufstrebenden Ast
Standard Codierung einer Seite mittels PHP auslesen

Hallo Leute,

ich habe eine Klasse "Content" entwickelt. Diese Klasse zieht aus einer Datenbank diverse Texte die im UTF-8 Format in der Datenbank gespeichert sind. Die Ausgabe funktioniert bestens wenn ich die Klasse auf einer Seite benutze die auch in utf-8 kodiert ist. Ist auch logisch.

Jetzt haben wir ältere Webprojekte im EInsatz die noch ISO-8859-1 nutzen. Ich möchte jetzt auch auf diesen Seiten die Klasse Content einbinden. Wenn ich die Klasse jetzt wie sie ist einbinde dann habe ich bei den Umlauten Fehler auf der Seite weil diese ja in der falschen Codierung ausgeliefert werden.

Daher meine Überlegung das ich mit utf8_decode()/utf8_endocde() die Daten für die Ausgabe einfach umwandle. Dann werden die Zeichen ja korrekt wieder gegeben.

Nun zur Frage gibt es eine Server Variable oder eine andere Funkltion/PHP Befehl mit dem ich feststellen kann welche Zeichencodierung gerade auf der Seite eingestellt ist die die Klasse benutzt. Dann kann ich ja wenn Codier = ISO-8859-1 die Umcodierung für die Ausgabe mit utf8_decode()/utf8_endocde() in der Klasse vornehmen.

...und nein ich will nicht an die Klasse übergeben welche Codierung auf der Seite vorliegt. Das sollte irgendwie aus dem Header oder so ausgelesen werden.

Schonmal vielen Dank für die Antworten
Jochen
telelino ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.01.2011, 16:16  
Erfahrener Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 992
PHP-Kenntnisse:
Fortgeschritten
Frank befindet sich auf einem aufstrebenden Ast
Frank eine Nachricht über ICQ schicken Frank eine Nachricht über MSN schicken Frank eine Nachricht über Yahoo! schicken
Standard

Wie willst du denn in deiner Content klasse den Inhalt der Seite auslesen, wenn deine Content Klasse erst den Inhalt bereit stellt? Da widerspricht du dir doch selber.
Das Problem wird einfach sein, dass deine Klasse bzw. dein Objekt ja sein "Universum" nicht kennt. Du hast es ja extra abgekapselt als Klasse. Der einzig Ware weg ist tatsächlich einen Parameter einzuführen. Warum auch immer du das nicht möchtest.

Es kann keine Servervariable geben, welche Kodierung momentan vorliegt, da das dem Server mehr oder weniger überhaupt nicht juckt, erst der Client muss das wissen.
Mit etwas Glück wurden bereits einige Header zum Zeitpunkt an dem deine Klasse eingreift gesendet. An diese Header kommst du dann mit headers_sent und headers_list. Vielleicht kannst du hier nach einem header suchen, der dir das encoding verrät.

Was dir eventuell hilft ist iconv.
__________________

Geändert von Frank (19.01.2011 um 16:23 Uhr).
Frank ist offline   Mit Zitat antworten
Alt 19.01.2011, 16:58  
Neuer Benutzer
 
Registriert seit: 19.01.2011
Beiträge: 7
PHP-Kenntnisse:
Fortgeschritten
telelino befindet sich auf einem aufstrebenden Ast
Standard

Kurz Zur Erleuterung
Die Datei sieht so aus
Code:
<header>
 Quellcode des Headers
</header>
<body>
 Ausgabe der Seitennavigation
 Ausgabe der Inhalte der Seite
 <?
  include(rootlink."klasse.php");
 ?>
 weitere Inahlte der Seiten
</body>
die Seiten die darauf zugreifen sind sehr alt. Früher war das auch keine Klasse.php sondern ein ganz normales PHP Script das irgendetwas aus der Datenbank gezogen hat. Und jetzt ist das halt ein Script mit einer integrierten klasse die auch gleich ausgeführt wird. Und ich möchte der klasse.php halt irgendwie mitteilen auf welcher Art von Umgebung sie eingebundne wird.
Auf einen setCharset() will ich verzichten weil wir garnicht mehr wissen welche Urlatdomains überhaupt darauf zugreifen. Irgendwie wird diese Datei von ca. 400 Domains mit >20000 Dokumenten includiert.

Ausgegeben wird hier ein Newsticker.

Bestünde evtl die Möglichkeit mit JavaScript in der klasse.php festzustellen welche Codierung vorliegt?
telelino ist offline   Mit Zitat antworten
Alt 19.01.2011, 17:01  
Erfahrener Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 992
PHP-Kenntnisse:
Fortgeschritten
Frank befindet sich auf einem aufstrebenden Ast
Frank eine Nachricht über ICQ schicken Frank eine Nachricht über MSN schicken Frank eine Nachricht über Yahoo! schicken
Standard

JavaScript läuft Clientseitig. Wie willst du damit Serverseitig irgendetwas feststellen? In dem Moment, wo JavaScript anläuft ist Datei schon meilenweit vom Server entfernt, nämlich beim Clienten.

Die Serverseitigen Möglichkeiten habe ich dir oben bereits genannt.
__________________
Frank ist offline   Mit Zitat antworten
Alt 19.01.2011, 17:53  
Neuer Benutzer
 
Registriert seit: 19.01.2011
Beiträge: 7
PHP-Kenntnisse:
Fortgeschritten
telelino befindet sich auf einem aufstrebenden Ast
Standard

Danke für die Antwort JavaScript war nur mal so eine spontane Idee

header_list() hat leider nicht die benötigten Werte. Ich werde das dann wohl doch so lösen müssen das ISO Standard Ausgabe ist und die neuen Seiten die auf die Klasse zugreifen das auf UTF8 setzen auch wenn ich das nicht wollte
telelino ist offline   Mit Zitat antworten
Alt 22.01.2011, 04:08  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

JS ginge schon.

AjaxRequest-Snippet ins Dokument Includen lassen, per Java document.characterSet auslesen und dein script aufrufen und html-code nachladen ( korrekt encodiert ), das ganze hat nur einen RIESEN Nachteil, characterSet ( allgemein das Charset-Fetching ) ist außer jedem Standard, Mozilla piped das per characterSet, IE per charset, Gecko-basierende Browser bspw. garnicht. Mit der JS lösung wirst du sicher nicht glücklich.

Alternativ, warum solltet ihr euch überhaupt um die Encoding-Erkennung kümmern ? Die Leute die ihre Templates administrieren von den Quadrillionen Webseiten worauf das läuft, sollten eurem Include mitteilen das sie Encoding XY nutzen.

PHP-Code:
$headerofdoom = new ContentOfTheOverloard('UTF-8');
$headerofdoom->enterHell(); 
PHP-Code:
FunkyContentNetworkBroadcast::display()->withEncoding('UTF-8'); 
oder wie auch immer du das Klassentechnisch realisierst.

Eine Netzwerk-API wird bereitgestellt und global erzeugt, der Nutzer dieser API ( eure Webseiten ) sollte den API-Output nach seinen Website-bedürfnissen anpassen und gut is..

Abgesehen davon was du so an encoding da rausbläst, stell dir vor das "Ding" wird auf einer nicht validen Kraut und Rüben Webseite includiert, zerlegt dort erstmal das design. Auch da musst nicht du hand anlegen sondern der Template-Verantwortliche des Webseitenbetreibers.

Wirklich "Encoding"-Save ist ein Inline-Frame, also eine Webseite in der Webseite. Dort kannst du erzeugen was du willst egal wie encoded ganz gleich welches encoding außerhalb des frames rumliegt.

Es hat auch so seinen Grund warum Facebook bspw. seine Gadgets in inline-frames einbettet was man sich so auf die webseite "includen" kann. Die standen bei ihrer Lösung prinzipiell vor der selben Problematik.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
curl - den Quellcode auf einer Logingeschützten Seite auslesen tip-top PHP Einsteiger 8 13.12.2010 22:34
Favicon mittels preg_match auslesen KNolte PHP Tipps 2010 3 02.08.2010 19:42
geschützte Seite auslesen hoyer PHP Tipps 2009 2 25.08.2009 19:47
Ziel einer redirection Seite auslesen spideroma PHP Tipps 2009 9 13.07.2009 17:00
Titel einer Seite auslesen bernd14 PHP Tipps 2008 2 04.03.2008 11:44
Seite auslesen PHP Tipps 2006 15 12.11.2006 18:46
FORM und Seite auslesen phpfreak PHP Tipps 2006 3 27.07.2006 23:15
Aus mit Word erzeugter XML Datei, mittels PHP Seite erstelle daniel987 PHP-Fortgeschrittene 11 24.01.2006 22:10
Teile einer HTML Seite auslesen PHP Tipps 2006 4 01.01.2006 18:41
Hilfe: Auslesen von Seite PHP Tipps 2005 20 16.05.2005 14:19
[Erledigt] Inhalt aus externer Seite auslesen. PHP Tipps 2005 8 06.05.2005 22:03
Quelltext von externer Seite auslesen. PHP Tipps 2005 12 29.04.2005 13:29
Daten aus *.MPQ-Dateien mittels fread auslesen? PHP-Fortgeschrittene 21 06.01.2005 14:40
seite auslesen PHP Tipps 2004 2 21.10.2004 14:28
aktuell im Frame angezeigte Seite auslesen PHP Tipps 2004 6 29.09.2004 19:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php codierung auslesen, php codierung, charset einer externen website php, encoding auslesen php, php zeichenkodierung auslesen, von webseite mit php classe auslesen, php zeichencodierung auslesen ?, codierung von seiten, charset der website auslesen, php zeichenkodierung webseite abfragen, facebook api zeichenkodierung, kodierung der html seite php auslesen, zeichencodierung einer seite auslesen, internetseite auslesen, php zeichencodierung datei, php zeichencodierung auslesen, website charset $_server auslesen, php favicon curl auslesen, php klassen externe server auslesen, facebook api classe utf-8 anwendung umlaute

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:21 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum