php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


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! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #31 (permalink)  
Alt 11-01-2013, 21:18
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.581
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Nochmal: Was passiert, wenn du den Browser zwingst UTF-8 zu verwenden? Wird es dann richtig dargestellt?
Mit Zitat antworten
  #32 (permalink)  
Alt 11-01-2013, 21:22
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Nochmal: Was passiert, wenn du den Browser zwingst UTF-8 zu verwenden? Wird es dann richtig dargestellt?
Nein, habe ich doch geschrieben. Der Browser ist ohnehin so eingestellt gewesen.
Mit Zitat antworten
  #33 (permalink)  
Alt 11-01-2013, 21:25
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.581
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Warum verwendest du htmlentities()? Hau das raus.
Mit Zitat antworten
  #34 (permalink)  
Alt 11-01-2013, 22:19
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Also, ich hatte ja die Testdateien im Editor vor dem Speichern zu UTF-8 konvertiert. Wenn ich die jetzt aber in meinem uralten Weberslave öffne, der das noch nicht richtig versteht, dann erhalte ich diese Reihenfolge:

HTML-Code:
// Ausgabe: ‘Door’
// Ausgabe: ‘Door’
// Ausgabe: ?Door?
Die erste Zeile sollte somit die Zeichen enthalten, nach denen Du suchen müsstest, um diese beiden zu bereinigen.
Mit Zitat antworten
  #35 (permalink)  
Alt 11-01-2013, 22:23
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.581
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Melewo Beitrag anzeigen
Die erste Zeile sollte somit die Zeichen enthalten, nach denen Du suchen müsstest, um diese beiden zu bereinigen.
Er muss nix bereinigen. Wenn er jetzt anfängt einzelne Zeichen zu ersetzen, ist das ein schmutziger Workaround, der vielleicht in 90% der Fälle funktioniert, aber es behebt das eigentliche Problem nicht.

Das wäre etwa so, als hättest du einen Taschenrechner, der bei 2+2 eine 5 als Ergebnis liefert. Jetzt könnte man natürlich hergehen und den Fehler "korrigieren", indem man 5 durch 4 ersetzt. "Funktioniert" auch im ersten Anschein nach einwandfrei. Bis jemand auf die Idee kommt 2+3 zu rechnen und plötzlich 4 als Ergebnis bekommt.

Also nicht das Ergebnis der Verarbeitung korrigieren, sondern die eigentliche Verarbeitung! Das gilt auch bei Zeichensätzen.

Geändert von h3ll (11-01-2013 um 22:27 Uhr)
Mit Zitat antworten
  #36 (permalink)  
Alt 11-01-2013, 22:40
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Er muss nix bereinigen. Wenn er jetzt anfängt einzelne Zeichen zu ersetzen, ist das ein schmutziger Workaround, der vielleicht in 90% der Fälle funktioniert, aber es behebt das eigentliche Problem nicht.
Ja, ist richtig. Kommt aber immer auf den Verwendungszweck an. Hatte mal eine kleine Suche gebastelt, die UTF-8 und ISO Dateien durchsuchen sollte, da funktionierte das mit diesen Glyphen ganz gut, nur genügten da halt die Entsprechungen für Umlaute.

Hier ist noch eine passende Glyphen-Liste, nur ist die nicht komplett. Um den Buchstaben zu erhalten, müsste nach dem zweiten Buchstaben oder Glyphe (nennt man das so?) gesucht werden.

http://bueltge.de/wp-content/downloa...odierungen.pdf

Geändert von Melewo (11-01-2013 um 22:42 Uhr)
Mit Zitat antworten
  #37 (permalink)  
Alt 11-01-2013, 22:49
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.581
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Man hätte auch einfach nur den Zeichensatz beachten können. Aber hey, wozu einfach, wenns auch umständlich geht...
Mit Zitat antworten
  #38 (permalink)  
Alt 12-01-2013, 01:40
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Melewo Beitrag anzeigen
Hier ist noch eine passende Glyphen-Liste, nur ist die nicht komplett. Um den Buchstaben zu erhalten, müsste nach dem zweiten Buchstaben oder Glyphe (nennt man das so?) gesucht werden.

http://bueltge.de/wp-content/downloa...odierungen.pdf
Das ist gut gemeint, aber diese Liste ist voll daneben und verleitet dazu, alles nur noch schlimmer zu machen. Denn auch wenn 2-Byte-Sequenzen in unseren Breiten besonders häufig anzutreffen sind, darf man nicht vergessen, dass es auch 3- und 4-Byte-Sequenzen in UTF-8 gibt. Daneben gibt es aber auch noch die nicht-kanonischen Formen (z. B. Buchstabe und kombinierendes diakritisches Zeichen), die das ganze nur noch verwirrender machen.

Dein Satz müsste also richtig lauten: „Um die Glyphe zu erhalten, müsste nach dem zweiten (und ggf. dritten und vierten) Byte gesucht und eventuelle Kombinationsmarker berücksichtigt werden.“

Deswegen sollte man sich an das halten, was h3ll die ganze Zeit schon predigt.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #39 (permalink)  
Alt 12-01-2013, 09:47
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
und verleitet dazu, alles nur noch schlimmer zu machen.
Ist doch vollkommen richtig, bestreite ich doch nicht. Bei mir klappt es doch auch. Habe mir heute nur mal die eine Artikelseite geholt, weil ich da nicht alles scrapen wollte, ohne User Agent erhalte ich gleich einen 500er und je nach dem was ich als Zeichensatz verwende, diese Ausgaben:
PHP-Code:
<?php ini_set("user_agent""Mozilla/5.0 ..."); ?>
<!DOCTYPE html>
<html>

<head>
<title>Thema</title>
<meta charset="utf-8">
</head>

<body>
<?php

$String 
file_get_contents("http://www. ... .com/door-mystery-erupts-...");
echo 
htmlspecialchars($StringENT_QUOTES);

// <title> POLITICS - ‘Door’ mystery ...

?>
</body>
</html>
PHP-Code:
<?php ini_set("user_agent""Mozilla/5.0 ..."); ?>
<!DOCTYPE html>
<html>

<head>
<title>Thema</title>
<meta charset="windows-1252">
</head>

<body>
<?php

$String 
file_get_contents("http://www. ... .com/door-mystery-erupts-...");
echo 
htmlspecialchars($StringENT_QUOTES);

// <title> POLITICS - â€˜Door’ mystery ...

?>
</body>
</html>
Und somit scheint da etwas beim Script mit dem verwendeten Zeichensatz nicht richtig zu stimmen oder wie auch immer. Schrieb ja nur, dass es Anwendungsfälle gibt, wo diese ganz brauchbar sind.

@ newbie1955 - Mit der rechtlichen Seite und mit dem neuen Leistungsschutzgesetz kennst Du Dich hoffentlich aus? Dass seit Jahren keine Seite mehr in den Serps rankt, die nur zu 100% aus übernommenen Pressemitteilungen oder sonstigen Duplicate Content besteht, weißt Du? Die Fehler im Quelltext würde ich bereinigen und X-UA-Compatible würde ich entfernen, da nur als Notbehelf geeignet. Die Ladezeit von der Seite ist zu lang.

Geändert von Melewo (12-01-2013 um 10:37 Uhr)
Mit Zitat antworten
  #40 (permalink)  
Alt 12-01-2013, 16:21
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard Zeichensatz beachten

Hallo, nett dass Ihr mir helfen wollt, aber ich habe das newbie in meinem Namen nicht ohne Grund gewählt, also versucht bitte, wenn möglich, verständlich zu bleiben.

@AmicaNoctis und h3ll
Zitat:
Man hätte auch einfach nur den Zeichensatz beachten können. Aber hey, wozu einfach, wenns auch umständlich geht...
Leider weiß ich nicht, was Ihr damit meint. Inwieweit beachten, wodurch ??? Ich habe doch jeweils auf Deine Detailvorschläge "Browser zu utf-8 zwingen" usw. geantwortet, ohne dass ich irgendwo gelesen hätte: Mache es so! Also, ich soll nicht mit str_replace einzelne Zeichen ersetzen, habe ich kapiert. Ich habe im header - vor allen Ausgaben - per php utf-8 gesetzt, also WO oder wodurch habe ich den Zeichensatz nicht beachtet?

@Melewo. Ja, die rechtliche Seite wird beachtet. Diese Seite soll - wenn sie je funktioniert - sowieso vor allem intern verwendet werden und wird ggf mit htaccess geschützt.

Geändert von newbie1955 (12-01-2013 um 16:23 Uhr)
Mit Zitat antworten
  #41 (permalink)  
Alt 12-01-2013, 17:46
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.581
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Hast du jetzt das htmlentities() schon raus gegeben?
Mit Zitat antworten
  #42 (permalink)  
Alt 12-01-2013, 17:55
Melewo
 Registrierter Benutzer
Links : Onlinestatus : Melewo ist offline
Registriert seit: Jan 2013
Beiträge: 365
Melewo befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von newbie1955 Beitrag anzeigen
Leider weiß ich nicht, was Ihr damit meint. Inwieweit beachten, wodurch ?
Die Antwort hatte ich auf meine Antwort bezogen, weil ich es halt auch so handhabe, wenn ein Script UTF-8 und ISO Dateien in einem Abwasch durchsuchen soll. In der Funktion habe ich aber nur die Glyphen und Entities für Umlaute aufgenommen:

RegEx: Mit regulären Ausdrücken im Quellcode von Dateien suchen

Hat jetzt nicht unbedingt etwas mit dem Thema zu tun, doch zum Beispiel verstehe ich nicht, zu was dieser Refresh gut sein soll. Wenn Du da schon aus einem mir unerklärlichen Grund einen verwendest, zwischen http: und Domain kommen immer noch zwei Schrägstriche:
HTML-Code:
<meta http-equiv="refresh" content="600; URL=http:www.nachrichtentisch.de/austest.php">
Doch wozu, damit die Seite sich aktualisieren soll? Die hat doch so schon eine zu lange Ladezeit. Besser wäre es da, Du würdest die Ergebnisse stündlich oder mehrmals täglich cachen und für den Aufbau der Seiten dann nur die gecachten Daten verwenden.

Daraus lässt sich 0 machen, da es sich ohnehin oft nur um Wiederholungen handelt, wie fehlende Anführungszeichen:
Zitat:
Result: 460 Fehler / 37 Warnungen
Und wenn Script und HTML aufgeräumt ist, vielleicht lassen sich dann die verbleibenden Fehler besser eingrenzen oder verschwinden mit der Aufräumaktion. Im Augenblick fallen mir keine fehlerhaften Zeichen auf.
Mit Zitat antworten
  #43 (permalink)  
Alt 12-01-2013, 18:18
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Hast du jetzt das htmlentities() schon raus gegeben?
ja. Momentan sehe ich auch nix Störendes, aber auch keine spezifischen
türkischen Sonderzeichen, die im aktuellen Text gerade vorkämen.

War es denn das, was Du meintest mit "einfach nur den Zeichensatz beachten"???
Mit Zitat antworten
  #44 (permalink)  
Alt 12-01-2013, 18:28
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.581
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von newbie1955 Beitrag anzeigen
ja. Momentan sehe ich auch nix Störendes, aber auch keine spezifischen
türkischen Sonderzeichen, die im aktuellen Text gerade vorkämen.

War es denn das, was Du meintest mit "einfach nur den Zeichensatz beachten"???
Nein. htmlentities() ist in 99,9999% der Fälle unnötig und richtet falsch angewandt mehr Schaden an, als es überhaupt bringt. Bei dir wars vermutlich, dass du die Kodierung mit 'utf-8' statt mit 'UTF-8' angegeben hast. Aber wie gesagt, das ist so oder so hinfällig, weil die Funktion hier wertlos ist.

Allerdings solltest du immer htmlspecialchars() anwenden, wenn du auf deiner HTML-Seite Werte ausgeben möchtest, da hiermit HTML-Steuerzeichen entschärft werden. Einziger Ausnahmefall: Du möchtest bewusst HTML-Code ausgeben.
Mit Zitat antworten
  #45 (permalink)  
Alt 12-01-2013, 18:31
newbie1955
 Registrierter Benutzer
Links : Onlinestatus : newbie1955 ist offline
Registriert seit: Dec 2012
Beiträge: 241
newbie1955 befindet sich auf einem aufstrebenden Ast
Standard @Melewo

Für meine Arbeit sollte sich die Meldungsübersicht in kürzeren Zeiträumen aktualisieren, also spätestens alle fünf Minuten. Das mit dem doppelten Slash ist natürlich ein Fehler, den hatte ich jetzt schon wieder entfernt.

Woher kommen die vielen Fehler bei Dir? Bei mir kommen:
Code:
Result:                 4 Errors, 2 warning(s)
Und mit deren Behebung tue ich mich schwer, da ich sie nicht verstehe:

Code:
  1. Line 7, Column 97: Bad value http://www.w3.org/2000/xhtml for the attribute xmlns (only XHTML namespace permitted here). …l lang="de" class="no-js" xmlns="http://www.w3.org/2000/xhtml"><!--<![endif]-->
  2. Line 7, Column 97: Attribute xmlns is not serializable as XML 1.0. …l lang="de" class="no-js" xmlns="http://www.w3.org/2000/xhtml"><!--<![endif]-->
  3. Line 12, Column 53: Bad value X-UA-Compatible for attribute http-equiv on element meta. <meta http-equiv="X-UA-Compatible" content="IE=8" />
  4. Line 17, Column 68: Changing character encoding utf-8 and reparsing. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  5. Line 17, Column 68: Changing encoding at this point would need non-streamable behavior. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
Die lange Ladezeit verstehe ich auch nicht recht, ich habe ja noch andere Unterseiten, die schneller geladen werden. Allerdings kostet das Abrufen diverser feeds wohl immer recht viel Zeit. Ich wollte hier schon mal in einem anderen Thread fragen, ob jemand Ideen fürs schnellere Laden hat. (Zum Beispiel die Seite in zwei Teile aufteilen, die nacheinander geladen werden?)

Wenn ich X-UA-Compatible entferne, kriege ich hier mit der IE-Darstellung Probleme. Wir haben hier auf der Arbeit noch grottig alte IEs im Einsatz, da zerschießt es mir die Navi-Leiste.

Gruß und Dank
newbie1955

Geändert von newbie1955 (12-01-2013 um 18:41 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
str_replace Problem waldgeist PHP Developer Forum 25 22-09-2010 23:08
str_replace Problem ibeg PHP Developer Forum 3 24-07-2008 09:57
str_replace Problem! AciD-CoRe PHP Developer Forum 5 17-08-2006 16:10
Problem mit str_replace Arok PHP Developer Forum 2 08-08-2006 09:10
str_replace Problem !! goose PHP Developer Forum 6 23-01-2003 09:59

Themen-Optionen
Thema bewerten
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.

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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:15 Uhr.