Ergebnis 1 bis 9 von 9
  1. #1
    Yogilein ist offline Tripel-As
    registriert
    06-02-2014
    Beiträge
    164

    Filtern der ersten 32 Zeichen

    Hallo,

    ich verzwackel gerade, denn das geht bei mir nicht:

    Code:
    <?php
    header("Content-Type:text/html;charset=utf-8");
    $text="äöüÄÖÜß+Te st";
    $text=preg_replace('/[\x00-\x1F]/u','',$text);
    echo $text;
    ?>
    Das Leerzeichen in dem Wort "Test" ist eine binäre Null, entspricht also x00, und sollte ausgefiltert werden, aber genau das passiert nicht. Das Ergbnis lautet: "äöüÄÖÜß+Te st". Was mache ich falsch?
    ------------------
    Liebe Grüße
    Yogilein
    Meine Javascript-Spieleseite: http://www.YogiSpiele.de
    Meine Fotoseite mit dem kostenlosen Besucherzähler: https://www.YogiFotos.de

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.493

    AW: Filtern der ersten 32 Zeichen

    Zitat Zitat von Yogilein Beitrag anzeigen
    Das Leerzeichen in dem Wort "Test" ist eine binäre Null
    wie kommst du zu dieser annahme?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  3. #3
    Yogilein ist offline Tripel-As
    registriert
    06-02-2014
    Beiträge
    164

    AW: Filtern der ersten 32 Zeichen

    Zitat Zitat von mikdoe Beitrag anzeigen
    wie kommst du zu dieser annahme?
    OK, das ist vielleicht mein Denkfehler. Ich ging die ganze Zeit von einer binären Null aus, hatte aber im Text das Zeichen, das man über die Tatstaureingabe ALT+255 erhält.

    Trotzdem bleibt meine Frage: Wie unterdrücke ich dieses Zeichen oder auch anderen Zeichen, die keine Leerzeichen sind, aber als Leerzeichen dargestellt werden.

    Es geht darum: Jemand gibt bei seinem Namen solche Zeichen ein und PHP erkennt nun einen Namen, der aber am Bildschirm dargestellt, leer ist. Leerzeichen sind dagegen kein Problem, denn diese schneide ich am Anfang und am Ende ab. Ich möchte mich aber nicht auf Zahlen und Buchstaben beschränken, da durchaus jemand "♥chen" schreiben darf.
    ------------------
    Liebe Grüße
    Yogilein
    Meine Javascript-Spieleseite: http://www.YogiSpiele.de
    Meine Fotoseite mit dem kostenlosen Besucherzähler: https://www.YogiFotos.de

  4. #4
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.493

    AW: Filtern der ersten 32 Zeichen

    was du meinst nennt sich Whitespace
    in deutsch sagt man dazu "nicht druckbare zeichen"
    in einem Regex benennt man das mit \W (großes W ist wichtig): https://de.wikibooks.org/wiki/Websit...ige_Konstrukte

    Als Beispiel dies: https://stackoverflow.com/questions/...o-and-then-all
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  5. #5
    Yogilein ist offline Tripel-As
    registriert
    06-02-2014
    Beiträge
    164

    AW: Filtern der ersten 32 Zeichen

    Hmm, so weit war ich auch schon, doch werden hier zu viele Zeichen abgeschnitten.

    Folgendes habe ich gemacht:

    Ich gebe das hier ein: äöüÄÖÜß ♥\*+4=?

    und erhalte dies:

    äöüÄÖÜß4

    Da wird doch weit mehr entfernt, als die nicht druckbaren Zeichen, oder sehe ich das falsch? Zumindest ist es nicht das, was ich wollte. In diesem Beispiel sollte nur das ALT+255-Zeichen entfernt werden.

    Mein Code:

    Code:
    <?php
    header("Content-Type:text/html;charset=utf-8");
    $text=$_POST["text"];
    $text=preg_replace('/\W/u','',$text);
    echo $text;
    ?>
    und für die Eingabe:

    Code:
    <!DOCTYPE html>
    <html>
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    </head>
    <body>
    <form name="Test" action="http://www.YogiSpiele.de/Seiten/test.php" method="post">
    <p><input name="text"></p>
    </form>
    </body>
    </html>
    ------------------
    Liebe Grüße
    Yogilein
    Meine Javascript-Spieleseite: http://www.YogiSpiele.de
    Meine Fotoseite mit dem kostenlosen Besucherzähler: https://www.YogiFotos.de

  6. #6
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.493

    AW: Filtern der ersten 32 Zeichen

    ich weiß von php nichts. fischt dieses preg_replace() ganz ohne schleife auch an mehreren positionen unerwünschte zeichen raus?
    und was genau macht dein schalter /u?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  7. #7
    Yogilein ist offline Tripel-As
    registriert
    06-02-2014
    Beiträge
    164

    AW: Filtern der ersten 32 Zeichen

    Ja, bei preg_replace braucht man keine Schleife.

    Der Schalter /u bewirkt, dass der String als Unicode angesehen wird. Ohne diesen Schalter werden einzelne Bits verglichen, was nur bei einem 8-Bit-Zeichensatz sinnvoll ist.
    ------------------
    Liebe Grüße
    Yogilein
    Meine Javascript-Spieleseite: http://www.YogiSpiele.de
    Meine Fotoseite mit dem kostenlosen Besucherzähler: https://www.YogiFotos.de

  8. #8
    Avatar von jspit
    jspit ist offline Lounge-Member
    registriert
    19-06-2009
    Beiträge
    1.708

    AW: Filtern der ersten 32 Zeichen

    @Yogilein, du solltest schon wissen mit welchen Zeichensatz du arbeitest. Davon hängt ab, was zu tun ist.
    Schau hier PHP: How to remove all non printable characters in a string?

  9. #9
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.557

    AW: Filtern der ersten 32 Zeichen

    Alt+255 ist ein non breaking space und das ist \uC2A0 - also mindestens zwei Byte.

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 28-06-2012, 02:01
  2. Filtern mit Replace
    Von bonfires im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 08-03-2012, 07:06
  3. Antworten: 7
    Letzter Beitrag: 02-12-2010, 18:07
  4. a-Tag filtern
    Von Chinese im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 19-04-2009, 15:48
  5. ENTER-Zeichen aus String filtern
    Von sternchenlein20 im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 21-02-2005, 14:05

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •