我正在编写一个仅显示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 ;
}
答案 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
。
我确信还有其他可能的方法。