每当我们创建文件时,您都可以在不同的文本编辑器中选择编码类型。
我的问题是,在使用php时,请读取文件,但如果是(UTF8,ISO 8859-1,ANSI ...),则不以字节为单位指定文件。
但我意识到该文件末尾有“位”,因为php返回最后一个STRING为0。 string''(length = 0)
<?php
$leitor = fopen('2.php','rb');
while(!feof($leitor)){
var_dump(fread($leitor, 1));
}
fclose($leitor);
?>
我相信这部分应该包含编码类型(UTF-8,ANSI ...)
1)在哪里通知文件编码类型(UTF8 - 000001,ANSI - 000011)?
2)我如何用PHP读取“位”实际上想要读取由以下表示的最后位:
string''(length = 0)
因为我可以用字节来完成:
function BinString2BitSequence1($mystring) {
$result = "";
$end = strlen($mystring);
for($i = 0 ; $i < $end; $i++){
$result .= str_pad(decbin(ord($mystring[$i])), 8, '0', STR_PAD_LEFT);
}
return $result;
}
答案 0 :(得分:3)
我相信这部分应该包含编码类型(UTF-8,ANSI ...)
你错了。您在文件末尾读取的空字符串就是:空字符串。它不包含任何信息。
{<1}}函数仅在读取已到达文件末尾后才返回true ;因此,它通常没用。相反,请考虑以下内容:
feof()
关于文本编码,用于文件的编码不存储在文件中的任何位置。它必须由应用程序推断。在某些情况下(例如,带BOM的UTF-8),可以可靠地检测到这种情况;在其他情况下,它可能是模棱两可的。
答案 1 :(得分:-3)
在这里你有take a look at this function 此函数将输出基于字符串的编码,只需传递整个文本