2017-02-10 9 views
0

PHPの "fread()"関数が返した基本型は何ですか?また、この型を画面上でヘキサとして表示するにはどのように変換できますか?"fread"によって返された文字列を "base 16"に変換しようとしています。 PHP

If I do it that way: 

while(!feof($resource)) 
{ 
    $contents = fread($resource, 1); 
    $new = intval($contents); 
    echo base_convert($new, 10, 16); 
} 

その普通のヘキサを印刷し

$contents = fread($resource, filesize($file_text)); 
echo bin2hex($contents); 

をやっなど なぜその同じではありません...画面上のゼロの束を出力しますか?

+0

[関数fread()](http://php.net/manual/en/function.fread.php)@RiggsFollyあなたは、私が編集した質問を参照できる文字列 – RiggsFolly

+0

を返しますか? –

+0

'intval()'は型を整数型のキャストルールを使って 'int'に変換します。 charの整数値は見つかりません。一方、 'bin2hex()'はバイナリデータ(すなわち文字)を受け取り、それをその16進表現に変換します。 [この例](https://ideone.com/gFeiP6)を参照してください。あなたのテキストファイルが数字以外のものを含んでいると仮定すると、 'bin2hex()'が行く方法です。 – Bytewave

答えて

1

intvalあなたはそれがないと思う何をしないので、それは「同じではない」のです。それは文字列を受け取り、それを整数として解釈します。文字列がその中に文字などがある場合、それは有効な整数ではない、となるように関数は、例えば変換するためのものであるintval戻り0

"1234567"(文字列)〜1234567(整数)

関連する問題