How can I remove the NULL character from string

前端 未结 3 1100
孤街浪徒
孤街浪徒 2020-12-28 17:23

I have a PHP variable that contains a string which represents an XML structure. This string contains ilegal characters that dont let me build a new SimpleXMLElement object f

相关标签:
3条回答
  • 2020-12-28 17:48

    While it's probably not the primary target of your question, please have a look at PHP's filter functions: http://www.php.net/manual/en/intro.filter.php

    Filter functions validate and sanitize values. Form the PHP site:

    $a = 'joe@example.org';
    $b = 'bogus - at - example dot org';
    $c = '(bogus@example.org)';
    
    $sanitized_a = filter_var($a, FILTER_SANITIZE_EMAIL);
    if (filter_var($sanitized_a, FILTER_VALIDATE_EMAIL)) {
        echo "This (a) sanitized email address is considered valid.\n";
    }
    
    $sanitized_b = filter_var($b, FILTER_SANITIZE_EMAIL);
    if (filter_var($sanitized_b, FILTER_VALIDATE_EMAIL)) {
        echo "This sanitized email address is considered valid.";
    } else {
        echo "This (b) sanitized email address is considered invalid.\n";
    }
    
    $sanitized_c = filter_var($c, FILTER_SANITIZE_EMAIL);
    if (filter_var($sanitized_c, FILTER_VALIDATE_EMAIL)) {
        echo "This (c) sanitized email address is considered valid.\n";
        echo "Before: $c\n";
        echo "After:  $sanitized_c\n";    
    }
    

    Result:

    This (a) sanitized email address is considered valid.

    This (b) sanitized email address is considered invalid.

    This (C) sanitized email address is considered valid.

    Before: (bogus@example.org)

    After: bogus@example.org

    0 讨论(0)
  • 2020-12-28 17:54

    trim() will also remove null characters, from either end of the source string (but not within).

    $text = trim($text);
    

    I've found this useful for socket server communication, especially when passing JSON around, as a null character causes json_decode() to return null.

    0 讨论(0)
  • 2020-12-28 18:09
    $text = str_replace("\0", "", $text);
    

    will replace all null characters in the $text string. You can also supply arrays for the first two arguments, if you want to do multiple replacements.

    0 讨论(0)
提交回复
热议问题