如何在非ASCII值时丢弃String并在ASCII值时显示

时间:2014-05-15 13:23:40

标签: php ascii non-ascii-characters

我正在编写一个仅显示ASCII值的代码。我正在读取包含字符串的文件 我想当文件中的任何NON-ASCII值丢弃整个字符串,并且当Ascii值显示来自file.please的所有内容时帮助我。谢谢你 我的代码是

$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 ;
}

1 个答案:

答案 0 :(得分:0)

一点清理(未经测试):

$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

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