Hallo, Gast |
Du musst dich registrieren bevor du auf unserer Seite Beiträge schreiben kannst.
|
Foren-Statistiken |
» Mitglieder: 288
» Neuestes Mitglied: ebavap
» Foren-Themen: 169
» Foren-Beiträge: 899
Komplettstatistiken
|
Aktive Themen |
PHPMailer Pfad wird nicht...
Forum: PHP Basics
Letzter Beitrag: Arne Drews
23.08.2022, 21:07
» Antworten: 5
» Ansichten: 2.262
|
PHP 8.1: Endlich Enums in...
Forum: PHP Basics
Letzter Beitrag: Arne Drews
22.04.2021, 16:55
» Antworten: 1
» Ansichten: 2.430
|
Einfache Template Engine
Forum: PHP Template Engines
Letzter Beitrag: Arne Drews
22.04.2021, 16:49
» Antworten: 4
» Ansichten: 10.409
|
OAuth - Should I "scrambl...
Forum: Off Topic
Letzter Beitrag: Till
05.01.2020, 04:55
» Antworten: 0
» Ansichten: 7.102
|
"Invisible" Captcha
Forum: PHP Basics
Letzter Beitrag: Arne Drews
11.12.2019, 15:00
» Antworten: 5
» Ansichten: 10.009
|
Projektvorstellung - Test...
Forum: Off Topic
Letzter Beitrag: Till
22.11.2019, 20:03
» Antworten: 3
» Ansichten: 5.276
|
POST/GET routes deklarier...
Forum: PHP Basics
Letzter Beitrag: Till
14.11.2019, 19:44
» Antworten: 2
» Ansichten: 4.382
|
PHPMailer
Forum: PreComposed
Letzter Beitrag: Arne Drews
20.10.2019, 12:44
» Antworten: 6
» Ansichten: 8.059
|
Twig TemplateEngine
Forum: PreComposed
Letzter Beitrag: Arne Drews
29.08.2019, 14:21
» Antworten: 0
» Ansichten: 3.131
|
SwiftMailer
Forum: PreComposed
Letzter Beitrag: Arne Drews
28.08.2019, 10:19
» Antworten: 0
» Ansichten: 3.330
|
|
|
UTF-8 Verschwörung Ergänzung |
Geschrieben von: Till - 26.06.2017, 12:25 - Forum: Off Topic
- Antworten (3)
|
 |
Hallo @all,
ich beziehe mich hier auf
http://www.php-rocks.de/thema/142;775-re-session-files-werden-nicht-beschrieben.html#pid775
http://www.php-rocks.de/thema/98;506-die-utf8-verschw-rung.html#pid506
welche ich gerne ergänzen möchte, bzw. ich versuche es so gut wie geht zu reproduzieren.
(sorry, @Arne, früher hab ich es nicht geschafft, beschäftigt)
Problemstellung:
- Ich habe eine Datenbank mit "gemixten" Kollationen und entsprechenden Inhalten.
Lösung:
- Ich analysiere den Output (auf UTF-8) und passe ihn ggf. entsprechend an.
-----------------------------------------------------------------------------------
Referenz:
ob_start
mb_detect_encoding
htmlentities
html_entity_decode
htmlspecialchars_decode
PHP-Code:
$isUTF8 = function($string) { return preg_match('%(?: [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte |\xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs |[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte |\xED[\x80-\x9F][\x80-\xBF] # excluding surrogates |\xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 |[\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 |\xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )+%xs', $string); };
simple_html_dom_parser http://simplehtmldom.sourceforge.net/
PHP-Code:
$convHtmlEntities = function($str) use($contentTypes, $isUTF8){
if(true !== $isUTF8($str) ){ $map = array( chr(0x8A) => chr(0xA9), chr(0x8C) => chr(0xA6), chr(0x8D) => chr(0xAB), chr(0x8E) => chr(0xAE), chr(0x8F) => chr(0xAC), chr(0x9C) => chr(0xB6), chr(0x9D) => chr(0xBB), chr(0xA1) => chr(0xB7), chr(0xA5) => chr(0xA1), chr(0xBC) => chr(0xA5), chr(0x9F) => chr(0xBC), chr(0xB9) => chr(0xB1), chr(0x9A) => chr(0xB9), chr(0xBE) => chr(0xB5), chr(0x9E) => chr(0xBE), chr(0x80) => '€', chr(0x82) => '‚', chr(0x84) => '„', chr(0x85) => '…', chr(0x86) => '†', chr(0x87) => '‡', chr(0x89) => '‰', chr(0x8B) => '‹', chr(0x91) => '‘', chr(0x92) => '’', chr(0x93) => '“', chr(0x94) => '”', chr(0x95) => '•', chr(0x96) => '–', chr(0x97) => '—', chr(0x99) => '™', chr(0x9B) => '’', chr(0xA6) => '¦', chr(0xA9) => '©', chr(0xAB) => '«', chr(0xAE) => '®', chr(0xB1) => '±', chr(0xB5) => 'µ', chr(0xB6) => '¶', chr(0xB7) => '·', chr(0xBB) => '»', chr(0xE4) => 'ä', chr(0xDC) => 'Ü', chr(0xFC) => 'ü', chr(0xD6) => 'Ö', chr(0xF6) => 'ö', chr(0xDF) => 'ß', chr(0x20AC) => '€' );
$str = strtr($str, $map); $str=str_replace('å','ü',$str); }
$charset = mb_detect_encoding($str, ((isset($contentTypes['charset']) ? $contentTypes['charset'] : 'auto'))); return htmlentities( html_entity_decode( htmlspecialchars_decode( $str,ENT_QUOTES), ENT_QUOTES | ENT_HTML5, $charset), ENT_QUOTES | ENT_HTML5, $charset, false // !important ); };
-----------------------------------------------------------------------------------
- ob_start startet den Outputbuffer
- simple_html_dom_parser -> find('text') findet Textnodes
http://simplehtmldom.sourceforge.net/
- $isUTF8/mb_detect_encoding rät das Encoding
- $convHtmlEntities kovertiert
- htmlentities konvertiert
-----------------------------------------------------------------------------------
Hinweis:
Je nach Implementation kann das parsen mit simple_html_dom_parser sehr viel CPU verbrauchen!
-----------------------------------------------------------------------------------
Meine konkrete Implementation ist ziemlich "webfan basiert" und nicht allgemein verwendbar deshalb poste ich sie hier nicht, schicke sie aber gerne auf Anfrage per PM o.ä.
mfg
Till
|
|
|
Session Files werden nicht beschrieben |
Geschrieben von: Till - 21.05.2017, 11:51 - Forum: PHP Basics
- Antworten (5)
|
 |
Ich bin mit meiner Migration nach php 7.1 nun fast durch und hänge nun an Sessions fest:
Egal ob ich "{WEBSPACEROOT}{/}tmp" oder "/tmp"(+open base dir) als session.save_path angebe,
es werden zwar die Session-Dateien erstellt, aber nicht mit Daten befüllt (0kb).
Code:
<?php
session_start();
if(!isset($_SESSSION['testcount']))$_SESSSION['testcount']=0;
$_SESSSION['testcount']=$_SESSSION['testcount']+1;
if (!is_writable(session_save_path())) {
echo 'Session path "'.session_save_path().'" is not writable for PHP!<br />';
}
echo sys_get_temp_dir().'<br />';
echo session_save_path().'/'.session_id().'<br />';
echo $_SESSSION['testcount'];
Dies Ausgabe/der Counter bleibt immer auf 1 und das session file bleibt 0kb groß.
Irgendein anderer client/Anwendung(*) schafft es allerdings auf der Domain/im session.save_path session files zu erstellen welche mit Daten befüllt werden und das prefix "sess_sess" haben (statt nur "sess_).
...
EDIT 1:
*=Das ist die Production-Anwendung welche die Session auf der Test-Domain in das Verzeichnis schreibt.
Die Anwendung auf der Production-Domain verwendet allerdins das 'user' session module und session_set_save_handler(db-basiert),
hier scheint es Probleme zu geben:
- Die DB konnektiert zwar richtig in der Anwendung, es gibt allerdings noch teilweise Kollationsprobleme durch alte
non-utf8 Daten, ich glaube aber nicht das dies hier das Problem ist?
Ich suche weiter....!?
EDIT 2:
Mist: Jetzt geht meine alte Version auch nicht mehr, weiß aber grad spontan nicht was ich dort verändert habe.
...Sorry, ich muß wohl erstmal einen Kaffee trinken, poste aber schonmal vielleicht kennt jemand das Verhalten und hat einen Tipp für mich?
mfg
Till
|
|
|
[C#] Literatur zu WPF |
Geschrieben von: Arne Drews - 04.05.2017, 15:48 - Forum: Off Topic
- Antworten (1)
|
 |
Hallo,
Ich würde mich gerne mal etwas tiefer mit Windows Presentation Foundation befassen.
Zündender Punkt dazu ist, dass ich in meinen C#-Applikationen gerne Spalten einer DataGrid gruppieren, filtern und sortieren möchte.
Sortieren kann ja jede DataGrid, aber eben das Filtern und Gruppieren ist etwas mühsam mit den WinForms.
Daher möchte ich das zukünftig eher in WPF umsetzen, weil es dort "besser" funktionieren soll, bzw. andere Möglichkeiten bestehen.
Befasst oder hat sich jemand damit schon mal befasst und kann mir evtl. Tipps für gute Literatur geben?
Ich habe natürlich schon einiges an Literatur gefunden, aber mich interessiert, ob jemand bereits Erfahrungen hat und mir eins empfehlen kann?
Danke und Gruß
Arne
|
|
|
Giveaways und Angebote |
Geschrieben von: mermshaus - 24.04.2017, 05:31 - Forum: Off Topic
- Antworten (2)
|
 |
Bei Packt Publishing gibt es noch bis ca. Ende des Tages (24. April) ein kostenloses PHP-7-Ebook von Antonio Lopez:
- http://bit.ly/PacktDailyOffer
Account erforderlich.
Gestern gab es dort offenbar ein Buch zu Git. Lohnt sich vielleicht, da auch später noch reinzuschauen. Ich weiß es nicht.
|
|
|
Zend Framewok, Psr-Autoloader |
Geschrieben von: Till - 04.04.2017, 14:37 - Forum: PHP Frameworks
- Antworten (2)
|
 |
Hallo an Alle,
ich möchte keine Grundsatzdiskussion vom Zaun brechen, auch ist es nicht wirklich wichtig, möchte es aber mal äußern und Meinungen dazu hören.
Aus verschieden Gründen (welche genau jetzt hier den Rahmen sprengen) möchte ich nun doch wohl das Zend Framework meinem Paradigma hinzufügen.
Dazu gibts eigentlich nicht mehr viel zu sülzen, was mich nur gerade beschäftigt und was mir gar nicht gefällt, es
geht im wesentlichen um Psr-0 versus Psr-4:
PHP-Code:
class Model_MyChildClass_undsoweiter ...
Ich bevorzuge eigentlich
PHP-Code:
class <AppNamespace>/VendorNamespace/Model/MyClass ....
Was nun, Expertenmeinungen?
Mein Framework berücksichtigt und implementiert eigentlich alle Psr-Autoloader, trotzdem gefällt es mir irgendwie nicht in bezug auf die Struktur der Application/Implementation.
mfg
Till
|
|
|
PHP Editor |
Geschrieben von: elysium - 31.03.2017, 14:17 - Forum: Off Topic
- Antworten (10)
|
 |
Servus,
nun bin ich so begeistert das ich direkt mal Werbung machen muss .
Ich habe nun einige Editoren kurz getestet, Brackets, VS Code, Atom, Dreamweaver usw..
Jetzt habe ich, für kleines Geld, aber vor einiger Zeit einen echt genialen Editor gefunden.
Rapid PHP
Ich bin wirklich mehr als nur begeistert von dem Ding (und Nein ich bekomm kein Geld von denen für Werbung )
Da Bilder mehr sagen als tausend Worte, habe ich in dem Link oben, direkt auf die Screenshot Seite verwiesen.
Also falls jemand am suchen eines Editors ist, ich kann nur empfehlen, diesen Editor auch mal zu testen.
Für den gewaltigen Umfang den er bietet (unter anderem eine deutsche Benutzeroberfläche) ist er wirklich sehr günstig (36 €).
Eventuell hilft es ja jemandem.
Gruß,
Dennis
|
|
|
round(), setlocale(), mysql - Float rounding errors |
Geschrieben von: Till - 29.03.2017, 20:08 - Forum: PHP Basics
- Antworten (11)
|
 |
Hallo @all,
falls es jemand gebrauchen kann und auch das Problem hat möchte ich es hier mal berichten.
Ich habe nämlich fast ne Stunde gebaucht um drauf zu kommen, grrr.
PHP-Code:
<?php $value = 0.1; $v2 = 0.1; $v3 = $value + $v2; //... mysql/pdo, whatever... sqlQuery("INSERT INTO table value='".escapeFunc($v3)."'");
Das Datenbankfeld hat value hat den Wert 0.00.
Meine Lösung:
PHP-Code:
//setlocale(LC_ALL, 'de_DE'); //setlocale(LC_MONETARY, 'de_DE'); setlocale(LC_ALL, 'en_EN'); setlocale(LC_MONETARY, 'en_EN');
Es ist zwar sehr praktisch bei currencies usw. direkt "," (komma) statt "."(punkt) automatisch in der string Konvertierung zu haben, bei mir führt es allerdings zu Folgeproblemen s.o.
(Möglich das es auch hilft mysql locale entsprechend anzupassen, habe ich aber nicht probiert und halte ich für, naja...?)
|
|
|
|