【问题标题】:How to discard String when non-ASCII value and display when ASCII value如何在非 ASCII 值时丢弃字符串并在 ASCII 值时显示
【发布时间】:2014-05-15 13:23:39
【问题描述】:

我正在编写仅显示 ASCII 值的代码。我正在读取包含字符串的文件 我想当文件中的任何非 ASCII 值丢弃整个字符串以及当 Ascii 值显示文件中的所有内容时。请帮助我。谢谢 我的代码是

$myFile="mydata.txt";
$fh = fopen($myFile, 'r');
$completeString = fread($fh, filesize($myFile));
fclose($fh);

preg_match('/[^\x20-\x7f]/', $completeString);

if(preg_match('/[^\x20-\x7f]/', $completeString) == "1") {
    $completeString = "";
}
elseif(preg_match('/[^\x20-\x7f]/', $completeString) == "0") {
     $completeString ;
}

【问题讨论】:

    标签: php ascii non-ascii-characters


    【解决方案1】:

    一点清理(未测试):

    $myFile="mydata.txt";
    $fh = fopen($myFile, 'r');
    $completeString = fread($fh, filesize($myFile));
    fclose($fh);
    
    if (preg_match('/[^\x20-\x7f]/', $completeString)) {
        $completeString = "";
    }
    

    如果看到 x20..x7F 范围之外的任何字符,$completeString 将被清空。现在,如果这是一个文本文件,它将包含某些控制字符。至少会有“行尾”标记,例如“换行符”x0A(Linux 等)、“回车换行符”x0D0A(DOS、Windows)和旧 Mac 中的 x0D。标签 (\x09) 很常见。您可能想要测试 \x00\x7F

    我确信还有其他可能的方法。

    【讨论】:

      猜你喜欢
      • 2020-05-15
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多