PHP如何读取文本文件?

时间:2014-07-05 09:45:00

标签: php integer

我在文本文档中有一个简单的数字,我通过$text_data = fread($file_handle, 2)得到它(前两个字节,其中num应该是 - 小于10)。

有一次,我检查文件是否是" OK"通过尝试确定读取值是0 = N间隔之外的整数还是整数:

if (!is_int($text_data) OR $text_data < 0 OR $text_data > MAXIMUM_TRIES)

但它不起作用!

IF会返回TRUE TXT文件中的任何值,并且我不知道下一步该做什么。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

This IF returns TRUE whatever the value from TXT file

仅因为您的$text_data变量始终是字符串值。然后!is_int($text_data)不能是假的。

您需要更改此行:

if (!is_int($text_data) OR $text_data < 0 OR $text_data > MAXIMUM_TRIES)

$number = (int)$text_data; //if $text_data is not a number, $text will be 0
if ( $number !== 0 && ($number < 0 || $number > MAXIMUM_TRIES))

答案 1 :(得分:0)

包含可以解析为整数的数字的字符串不是整数,但仍然是字符串。例如,您需要使用intval()将其强制转换为整数。

您可以尝试使用is_numeric()代替is_int()

var_dump(is_int(10)); // true
var_dump(is_int("10")); // false
var_dump(is_numeric("10")); // true
var_dump(is_int(intval("10"))); // true

所以我要说的是,就在你做if()之前,先做这个:

$text_data = intval($text_data);