PHP rocks! wünscht allen Mitgliedern einen guten Rutsch ins neue Jahr 2017 !!!
Hinweis: Das Forum zieht um! Um keine Datenverluste zu haben, schalten wir zwecks Übernahme der Daten das Forum am Sonntag, den 24.04.2016 um ca. 21:00 Uhr offline und passen anschliessend die DNS-Einträge an.
www.php-rocks.de wird euch dann nach den Aktualisierungen der DNS-Server wieder wie gewohnt uneingeschränkt zur Verfügung stehen.
Danke für euer Verständnis!

Hallo, Gast
Du musst dich registrieren bevor du auf unserer Seite Beiträge schreiben kannst.

Benutzername/E-Mail:
  

Passwort
  





Durchsuche Foren

(Erweiterte Suche)

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$charsetfalse //  !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

Drucke diesen Beitrag

  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

Drucke diesen Beitrag

  Alles Neu macht der Mai! Migrating to php 7.x
Geschrieben von: Till - 15.05.2017, 19:25 - Forum: Off Topic - Keine Antworten

Ich will alles neu machen, aber ich weiß nicht wo ich anfangen soll Sad

Drucke diesen Beitrag

  [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

Drucke diesen Beitrag

  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.

Drucke diesen Beitrag

  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

Drucke diesen Beitrag

  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 Shy .

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 Cool )
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

Drucke diesen Beitrag

  Fine Image Gallery
Geschrieben von: mermshaus - 30.03.2017, 10:15 - Forum: Code Goodies - Keine Antworten

Hallo.

Ich möchte hier mein One-File-Bildergalerie-Script vorstellen. Inzwischen auch als Repository auf GitHub, weshalb ich hier den veralteten Download mal rausnehme. Link zum Projekt:

- https://github.com/mermshaus/fine/releases

(Dort kann natürlich auch der Code eingesehen werden. Ich habe die Release-Seite verlinkt, weil die Software von der Idee her fertig „kompiliert“ als eine einzige index.php-Datei ausgeliefert wird. Die einzelnen Quellcodedateien und Assets werden in dieser Datei zusammengepackt.)

Eine Demo ist aktuell hier zu sehen: http://fine.ermshaus.org/

[Bild: http://i.imgur.com/AxfsJoy.jpg]

Die Software besteht aus einer index.php-Datei, die zum Beispiel dazu gedacht ist, unkompliziert in ein Verzeichnis mit Bildern kopiert werden zu können (zum Beispiel via FTP oder SSH) und ohne Konfiguration beim Anwählen des Verzeichnisses über einen Browser/Webserver eine Bildergalerie-Ansicht des Verzeichnisinhalts zu erzeugen.

Außerdem gibt es noch einen Alben-Modus, der zusätzlich eine Übersichtsseite mit einer Liste von Alben anzeigt.

Das Script ist grundsätzlich responsive/mobile first angelegt. Für mehr Informationen siehe die oben verlinkte GitHub-Seite und dort vor allem die README-Datei.

Ideen, Wünsche, Anregungen und Kritik sind immer gern gesehen. (Wobei viele bestehende Probleme bekannt sind. Etwa das Nicht-Beachten von Orientation-EXIF-Tags. Ich habe nur leider keine Liste davon. Smile)

Viele Grüße

Drucke diesen Beitrag

  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...?)

Drucke diesen Beitrag

  JavaScript Daten speichern
Geschrieben von: elysium - 27.03.2017, 13:44 - Forum: JavaScript / JavaScript Frameworks / Ajax - Antworten (14)

Servus,

nach langem hin und her, scheint es besser zu sein mich mit JavaScript anstelle von PHP zu beschäftigen.
Für mein Vorhaben, Templates zu bauen, scheint dies sinnvoller zu sein.

Nun möchte ich aber trotzdem gerne Daten speichern können.
Wollte gerne mal einen Maschinenkatalog schreiben, in dem mehrere Maschinen aufgelistet sind und deren Werte man verändern kann.

Das ganze würde ich gerne lokal nutzen, ohne Webserver.
Würde das ganze mit normalen HTML/CSS bauen und lokal im Browser aufrufen.

Kann ich da dann mit JavaScript Dateien beschreiben und dauerhaft speichern?

Ich habe mal das hier gefunden: Filesystem API

Nun schaut das aber schon recht anspruchsvoll aus und ist auch schon 3 Jahre her, kein Plan ob es da mittlerweile was einfacheres gibt.

Ich habe vor kurzem, im Zuge eines PHP-Tutorials, eine txt Datei mit Hallo Welt erstellt und beschrieben und das war im Prinzip nur eine Zeile Code.

Sowas wäre mir mit JavaScript ganz recht Big Grin .

Kennt ihr da was?

Drucke diesen Beitrag