kostenloser Webspace werbefrei: lima-city


PHP: nur lesbare zeichen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    jpaket

    jpaket hat kostenlosen Webspace.

    hi,

    gibt es eine Funktion die aus einem String (der alle Zeichen des ASCII-Codes enthalten kann) nur die lesbaren anzeigt? Das z.B. das Zeichen 0x09 (TAB) mit z.B. einem "." ersetzt wird.

    EDIT:

    gut anscheinend hat niemand hier n lösung, da hab ich grad selber n funkion geschrieben:

    php
    function onlyreadables($string) {
      for ($i=0;$i<strlen($string);$i++) {
        $chr = $string{$i};
        $ord = ord($chr);
        if ($ord<32 or $ord>126) {
          $chr = ".";
          $string{$i} = $chr;
        }
      }
      return $string;
    }


    Beitrag geändert: 4.11.2006 19:18:27 von jpaket
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. o***p

    ja klar gibt es eine...
    bsp:

    <?php
    $text = "hallo.welt!"
    echo $text;
    $text = replace(".", " ");
    //hallo.welt! == hallo welt!
    $text = replace("h", "H");
    //hallo welt! == Hallo welt!
    $text = replace("w", "W");
    //Hallo welt! == Hallo Welt!
    $text = replace("!", ".");
    //Hallo Welt! == Hallo Welt.
    echo $text;
    ?>
  4. Deine Methode ist Schwachsinn, oc-hp.
    Du ersetzt einzelne zeichen aus einem kleinen String. Was machst du, wenn du "Hallo du schöne Welt!" als String benutzt? Das ist unmöglich.

    Jpaket hingegen hat ein Script geschreiben, das alle lesbaren Zeichen erlaubt und andere verbietet. Das ist zum beispiel nützlich wenn er etwas Drucken will. ;D

  5. hi,

    gibt es eine Funktion die aus einem String (der alle Zeichen des ASCII-Codes enthalten kann) nur die lesbaren anzeigt? Das z.B. das Zeichen 0x09 (TAB) mit z.B. einem "." ersetzt wird.

    EDIT:

    gut anscheinend hat niemand hier n lösung, da hab ich grad selber n funkion geschrieben:

    Halt! Warte doch mal -- ich hab doch nicht den ganzen Tag Zeit, zu schauen, ob schon wieder jemand ein Problem lösen möchte, dass nach preg_replace() schreit ...
    :wink:


    php
    function onlyreadables($string) {
      for ($i=0;$i<strlen($string);$i++) {
        $chr = $string{$i};
        $ord = ord($chr);
        if ($ord<32 or $ord>126) {
          $chr = ".";
          $string{$i} = $chr;
        }
      }
      return $string;
    }



    Nunja, das Problem ist, was du unter "nicht lesbaren" Zeichen verstehst. In üblicher 8-Bit-Kodierung (ISO-8859-1) sind das die Bereiche von 0 bis 31 sowie 127 bis 159. Wenn man aber bspw. Windows-1252 einsetzt, ist der Bereich 127 bis 159 teilweise belegt. Sei's drum:

    /*
    \x1f == 31
    \x7f == 127
    \x9f == 159
    */

    function mask_ctrl_chars(
    $string = '',
    $marker = '.'
    ) {
    return preg_replace('/[\x00-\x1f\x7f-\x9f]/', $marker, $string);
    }

    Schaut kürzer aus, oder?^^
    Nebenbei ist das Ersetzungszeichen frei einstellbar.

    Beitrag geändert: 1.7.2007 23:28:33 von alopex
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!