我正在用 fopen 打开一些文件,在这些文件中我读了一个单词并将其放入一个变量中。这个词是“小时”。但是后来当我将此变量与“小时”一词进行比较时,它不会返回相等!问题可能与编码有关。有没有办法格式化编码,使其与普通文本匹配?这是一个代码示例,涉及我面临的问题:$myfile = fopen("/hdd4/no2_2013_2016/".$files[$i], "r") or die("Unable to open file!");$raw_text=fgets($myfile)$text_array=explode(",",$raw_text);$frequency=$text_array[10]; // It is hour and it reads it correctly as i echoed itecho strcmp($frequency, "hour"); // not 0 ,in fact it returns -104 .Also the number my differ with other filesif ($frequency=="hour") //also doesn't work正如我所建议的那样var_dump($frequency),它返回了:string(9) "\000h\000o\000u\000r\000"之后trim($frequency),它返回:string(7) "h\000o\000u\000r"
1 回答
UYOU
TA贡献1878条经验 获得超4个赞
那是每个字符之前的空字符。如果您正在创建文件,那么您没有正确执行它。大概是某事一次将一个字符放入文件中,并且每个放入都由一个空字符终止,或者发生在上一步中。
如果它不在您的控制范围内,则替换该字符:
$raw_text = str_replace("\0", "", fgets($myfile));
- 1 回答
- 0 关注
- 124 浏览
添加回答
举报
0/150
提交
取消