php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.12.2006, 22:43  
Erfahrener Benutzer
 
Registriert seit: 14.12.2003
Beiträge: 211
pit62
Standard brauche Hilfe bzw.einen Tip zu sprachproblemen

Also ich habe folgendes Problem....
ich habe einen Newsticker der Polnische Buchstaben wie --> ąąąąąąąąęęęęęęęęęꀀ€€€€€óóóóóà ³Ã³Ã³Ã³ąąąąąąąąąśśśśśśśśśłłłłłłłłłłżżżżżżżżżżźźźźź źźźźźćććććććńńńńńńń <-- wieder geben soll, die vorher in einer Admin - Umgebung in eine textdatei daten.txt geschrieben werden. Beim schreiben werden zwar Daten geschrieben aber nicht diese wie oben angegebenen sondern irgendwelche mir unbekannte. Nehme ich dies Polnischen Zeichen und kopiere diese manuell hinein und speichere die danten.txt unter utf8 dann werden diese auch richtig gespeichert und auch richtig wiedergegeben. Wie kann ich Einfluß auf das speichern der Datei nehmen damit nicht im ansi sondern in utf8 gespeichert wird? Oder muß ich csv-Datei oder anders Format verwenden?


MfG Pit62
__________________
Wer behauptet, dass er weiß, dass er nichts weiß, weiß nicht, dass er nicht einmal halb so weise ist, wie er es behauptet...
pit62 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 16.12.2006, 02:10  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Kurz und bündig: Dann schreibt deine Admin-Umgebung wohl nicht in utf-8 (was für deinen Fall auf jeden Fall die bessere Wahl wäre). Jetzt wüsste ich gerne, wie du deine Daten in die Textdatei schreibst

btw: Wieso keine Datenbank?
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 16.12.2006, 11:09  
Erfahrener Benutzer
 
Registriert seit: 14.12.2003
Beiträge: 211
pit62
Standard

Zitat:
Zitat von KingCrunch
Kurz und bündig: Dann schreibt deine Admin-Umgebung wohl nicht in utf-8 (was für deinen Fall auf jeden Fall die bessere Wahl wäre). Jetzt wüsste ich gerne, wie du deine Daten in die Textdatei schreibst

btw: Wieso keine Datenbank?

Db ist im Paket enthalten aber da der Hoster/Anbieter ein Polnischer ist und der Besitzer (deuter in Polen lebend) keine blassse Ahnung von all dem hat Stehe ich da noch vor einem Problem. Deswegen das vorerste schreiben in Dateien.

die Eingabe in die Datei geschieht im Moment so :

$new_add=utf8_encode($add);
$newfile = fopen($filelocation,"w");
fwrite($newfile, $new_add);
fclose($newfile);

Das Auslesen :
$datei = "./newsticker/ticker.csv";
$new_daten=utf8_decode($datei);
$array = file($new_daten);
for($x=0;$x<count($array);$x++){$werte = explode("|",$array[$x]);}

Auch die Umstellung :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

hat noch nichts gebracht?
Entweder verstehe ich die gesamte Dokumentation nicht oder ich sehe den hier vorliegenden Fehler einfach nicht.

Wäre schön, wenn jemand eine verständliche Lösung kennt oder mir meinen gemachten Fehler darlegen könnte.
MfG
__________________
Wer behauptet, dass er weiß, dass er nichts weiß, weiß nicht, dass er nicht einmal halb so weise ist, wie er es behauptet...
pit62 ist offline  
Alt 19.12.2006, 17:34  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Hehe, sehe grad, dass du den Dateinamen, nicht aber den Dateiinhalt über utf8_decode laufen lässt

Es wäre dir übrigens jeder dankbar, wenn du Quelltexte formatierst und mit entsprechenden BB-Tag versiehst

PHP-Code:
$datei "./newsticker/ticker.csv";
$array file($new_daten);
$array array_map ('utf8_decode'$array);
foreach (
$array as $value) {
  
$werte explode("|"value);

Hab auch gleich ma das Konstrukt mit foreach mit eingebaut, ist etwas besser lesbar. Trotzdem is mir unklar, was die Schleife eigentlich machen soll, weil sie $werte jedes mal wieder überschreibt ^^

prüfe doch mal, was dein Browser für einen Zeichensatz beim a) eintragen einer News und b) beim anzeigen der News angibt.

Sind bisher so meine Gedanken, ich denk nochma drüber nach.
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 19.12.2006, 19:02  
Erfahrener Benutzer
 
Registriert seit: 14.12.2003
Beiträge: 211
pit62
Standard

Zitat:
Zitat von KingCrunch
Hehe, sehe grad, dass du den Dateinamen, nicht aber den Dateiinhalt über utf8_decode laufen lässt
sry ... das war reine Unwissenheit

Zitat:
Zitat von KingCrunch
Es wäre dir übrigens jeder dankbar, wenn du Quelltexte formatierst und mit entsprechenden BB-Tag versiehst
War die letzten Tage etwas im Stress und habe da aus Zeitgrünnden nicht mehr dran gedacht!

Zitat:
Zitat von KingCrunch
Trotzdem is mir unklar, was die Schleife eigentlich machen soll, weil sie $werte jedes mal wieder überschreibt ^^
Wegen der darin durch | getrennten Werte (farbe|größe|Text1...)
Code:
$text1=$werte[1];
$text2=$werte[2];
$text3=$werte[3];
Zitat:
Zitat von KingCrunch
prüfe doch mal, was dein Browser für einen Zeichensatz beim a) eintragen einer News und b) beim anzeigen der News angibt.

Sind bisher so meine Gedanken, ich denk nochma drüber nach.
habe da für beide (Eingabe und Ausgabe)
Code:
<meta http-equiv="Content-Type" content="text/html; harset=ISO 8859-2">
sowie (ein verzweifelter sinnloser Versuch)
Code:
<meta http-equiv="Content-Type" content="text/html; harset=ISO 8859-2">
Ich habe nach vielem suchen und testen bemerkt, daß die per Post übergebenen Werte schon verändert (vom schreiben in Datei) sind und diese in die Datei geschrieben werden also vermute ich mal, dass es nicht mal am speichern in der Datei liegt.
Ich verwende da ein ganz normales Formular :
Code:
echo "
<form method=\"POST\" action=\"$_SERVER[PHP_SELF]\">
<input type=\"text\" name=\"text1\" size=\"100\" value=\"$_POST[text1]\">
<input type=\"submit\" name=\"newswrite\" style=\"width:150\" value=\"weiter\">
";
Muss ich evtl. schon hier etwas anders machen? Wäre für mich wieder eine neue Erfahrung!
Ich höffe dringend es fällt Dir hier eine für mich nutzbare Lösung ein!
Auf alle Fälle danke ich Dir schon mal, dass Du Dir Zeit für dieses Thema genommen hast. Es scheint, als wäre es ein nicht gern diskutiertes.

MfG
__________________
Wer behauptet, dass er weiß, dass er nichts weiß, weiß nicht, dass er nicht einmal halb so weise ist, wie er es behauptet...
pit62 ist offline  
Alt 19.12.2006, 19:26  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von pit62
Zitat:
Zitat von KingCrunch
Trotzdem is mir unklar, was die Schleife eigentlich machen soll, weil sie $werte jedes mal wieder überschreibt ^^
Wegen der darin durch | getrennten Werte (farbe|größe|Text1...)
Code:
$text1=$werte[1];
$text2=$werte[2];
$text3=$werte[3];
Jo, natürlich, aber du überschreibst $wert jedes mal, oder gibt es innerhalb der Schleife noch sowas wie eine Ausgabe oder Weiterverarbeitung, die du nicht mit angegeben hast?
Zitat:
Zitat von pit62
Zitat:
Zitat von KingCrunch
prüfe doch mal, was dein Browser für einen Zeichensatz beim a) eintragen einer News und b) beim anzeigen der News angibt.

Sind bisher so meine Gedanken, ich denk nochma drüber nach.
habe da für beide (Eingabe und Ausgabe)
Code:
<meta http-equiv="Content-Type" content="text/html; harset=ISO 8859-2">
sowie (ein verzweifelter sinnloser Versuch)
Code:
<meta http-equiv="Content-Type" content="text/html; harset=ISO 8859-2">
Das meinte ich nicht, das is ja "nur" das, was du eh mitschickst und deshalb natürlich auch anwesend ist Zwei Sachen Trotzdem:
- Es heißt Charset und
- zwei Bindestriche (ISO-8859-2)
Wieso eigentlich 2? Wegen polnisch?

Was ich meinte war: Wenn du im Browser auf Ansicht und dann auf Zeichenkodierung (kann je nach Browser varieren), ist dort dann sowohl beim Posten, als auch beim Anzeigen jeweils der korrekte Zeichensatz ausgewählt? Und was passiert, wenn du den Zeichensatz dort änderst?
Zitat:
Zitat von pit62
Ich habe nach vielem suchen und testen bemerkt, daß die per Post übergebenen Werte schon verändert (vom schreiben in Datei) sind und diese in die Datei geschrieben werden also vermute ich mal, dass es nicht mal am speichern in der Datei liegt.
Ich verwende da ein ganz normales Formular :
Code:
echo "
<form method=\"POST\" action=\"$_SERVER[PHP_SELF]\">
<input type=\"text\" name=\"text1\" size=\"100\" value=\"$_POST[text1]\">
<input type=\"submit\" name=\"newswrite\" style=\"width:150\" value=\"weiter\">
";
Muss ich evtl. schon hier etwas anders machen? Wäre für mich wieder eine neue Erfahrung!
Ich höffe dringend es fällt Dir hier eine für mich nutzbare Lösung ein!
Auf alle Fälle danke ich Dir schon mal, dass Du Dir Zeit für dieses Thema genommen hast. Es scheint, als wäre es ein nicht gern diskutiertes.

MfG
Am Formular selbst kann es eigentlich nicht liegen, vielleicht aber (wie schon gesagt) an der Kodierung der Seite, die das Formular beinhaltet.
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 19.12.2006, 19:29  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Also wenn du dein gesamtes Projekt durchgehend in UTF-8 abspeicherst und lädst und dazu gehört auch der korrekt gesendete Header mittels:
PHP-Code:
<?php
header
('Content-type: text/html; charset=utf-8');
?>
solltest du keine Probleme mit dem Zeichensatz bekommen.
Die <meta> Tags sind halbwegs irrelevant, header() hat hingegen wirklichen Einfluß.

Dann solltest du deinen Editor natürlich so einstellen, dass der die Dateien im UTF-8-Format auch abspeichert (jedoch kein UTF-8-Bom!).

Dann sollte meines Wissens auch das Formular korrekt eingelesen werden. Falls nicht, wird es möglicherweise im Standard-Zeichensatz des verwendeten Betriebssystem des Users übertragen (ist eine Vermutung), versuch hier mal iconv() aus.

Falls du immernoch Format-Probleme beim Abspeichern in die Datei und beim Laden aus der Datei hast, könntest du den String base64_encode()n bzw. base64_decode()n.

Leider sind das auch nur Vermutungen, so ganz durchblicken tue ich die Format-Geschichten auch nicht. Hatte vor kurzem ein ähnliches Problem und das Problem haben wir letztlich auch nur gelöst, nachdem unsere Editoren konsequent UTF-8 zum Abspeichern der PHP-Dateien verordnet bekamen und utf8_encode() und utf8_decode() [ich komm bei den beiden Funktionen immer durcheinander] jeweils vor- und nach dem Benutzen reingebraten wurde.

Was letztlich dazu geführt hat, dass der Umgang mit UTF-8 funktioniert hat, können wir auch nicht mehr so genau nachvollziehen.

Aber wenn auch nur ein Editor von euren Programmierern kein UTF-8 beim Abspeichern verwendet, zerhaut er beim Öffnen jedes mal den Content und dann kannst dus gleich lassen, denn dann ist die Ausgabe Zufall.
Zergling-new ist offline  
Alt 19.12.2006, 20:35  
Erfahrener Benutzer
 
Registriert seit: 14.12.2003
Beiträge: 211
pit62
Standard

@KingCrunch zur Frage Wieso eigentlich 2? Wegen polnisch? Ja wegen Polnisch!
Ja richtig ist auch, dass die Werte in nene array gepackt werden und dann weiter verarbeitet.

@Zergling
Habe diese Zeile mal eingefüt und ich wollte es erst nicht glauben aber es geht!
Code:
<?php header('Content-type: text/html; charset=utf-8'); ?>
Sollte ich diesen nun überall eingefügt, sprich auf jeder Seite? Es spricht ja eigentlich nichts dagegen prinzipiell mit Utf-8 zu arbeiten. oder?

Were aber erst noch sehen, wie und ob es in die Datei auch richtig schreibt.

Danke auf alle Fälle ich glaube da hab ich wieder einiges zugelernt! Prima.
__________________
Wer behauptet, dass er weiß, dass er nichts weiß, weiß nicht, dass er nicht einmal halb so weise ist, wie er es behauptet...
pit62 ist offline  
Alt 19.12.2006, 21:30  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ich lasse meine Seiten zentral über eine index.php laufen und in der steht vor der Ausgabe auch nochmal diese header()-Angabe.

Gegen UTF-8 spricht überhaupt nichts, schon garnicht wenn du deine Seiten mehrsprachig anbietest bzw. es in Zukunft dazu kommen könnte.
Zergling-new ist offline  
Alt 20.12.2006, 00:40  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Alternativ ohne Bootstrapper (also zentrale index.php) schreibste das eben in eine andere Datei und lässt es von jeder aufgerufenen einfügen ( include)
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
 


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
Brauche hilfe mik08 PHP Tipps 2008 10 27.07.2008 16:17
Datenbanktabelle erstellen - brauche Hilfe Raccoon PHP Tipps 2008 1 14.06.2008 11:03
Ich brauche eure Hilfe beim rechnen... GELight PHP Tipps 2006 6 07.04.2006 14:20
Ich brauche eure Hilfe PHP Tipps 2006 22 19.02.2006 19:57
PHP <--> MySQL | Brauche Hilfe ahnungsloser Datenbanken 18 16.02.2006 21:49
brauche eben hilfe PHP Tipps 2007 2 26.11.2005 08:36
brauche sehr schnell und dringend hilfe Beitragsarchiv 13 24.10.2005 13:11
HILFE ! Brauche ganz dringend hilfe! PHP Tipps 2005-2 2 10.10.2005 23:08
brauche hilfe!!! marcelglaeser HTML, Usability und Barrierefreiheit 0 03.10.2005 20:01
Hilfe, Ich brauche hilfe! Kevin PHP Tipps 2005-2 2 27.09.2005 19:31
BRAUCHE DRINGENDE HILFE !!! PHP Tipps 2005-2 2 06.08.2005 19:45
Brauche Hilfe bei preg_match() PHP Tipps 2005-2 2 23.07.2005 22:44
Brauche dringend Hilfe, Aufgabe fürs Studium (Upload-Script trivial Beitragsarchiv 23 23.06.2005 16:25
[Erledigt] Brauche dringend Hilfe PHP Tipps 2005 19 01.02.2005 20:21
Brauche Hilfe PHP Tipps 2005 5 11.01.2005 15:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
hilfe bei sprach problemen, hilfe bei sprachproblemen, http://www.php.de/php-tipps-2007/43072-brauche-hilfe-bzw-einen-tip-zu-sprachproblemen.html, utf8_decode polnisch, utf8_decode polnische buchstaben, preg_match polnische buchstaben, form method post polnisch zeichensatz, utf8_decode polnische sonderzeichen, utf-8 textdatei mit polnischen zeichen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:38 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.