PHP字符串比较同字问题

我正在用 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 it

echo strcmp($frequency, "hour"); // not 0 ,in fact it returns -104 .Also the number my differ with other files


if ($frequency=="hour") //also doesn't work

正如我所建议的那样var_dump($frequency),它返回了:


string(9) "\000h\000o\000u\000r\000"

之后trim($frequency),它返回:


string(7) "h\000o\000u\000r"


开满天机
浏览 125回答 1
1回答

UYOU

那是每个字符之前的空字符。如果您正在创建文件,那么您没有正确执行它。大概是某事一次将一个字符放入文件中,并且每个放入都由一个空字符终止,或者发生在上一步中。如果它不在您的控制范围内,则替换该字符:$raw_text = str_replace("\0", "", fgets($myfile));
打开App,查看更多内容
随时随地看视频慕课网APP