PHP文件输出,提要中的随机空格
以下函数用于读取一个文件,递增,然后将以下内容输出到一个文件,并输出到一个文本文档:PHP文件输出,提要中的随机空格,php,Php,以下函数用于读取一个文件,递增,然后将以下内容输出到一个文件,并输出到一个文本文档: function updateDaysAway($tenantName, $datefrom, $dateto){ $names = array(); $days = array(); $file = fopen("data/daysaway.txt", 'a+'); while (!feof($file)) { $data = fgets($file);
function updateDaysAway($tenantName, $datefrom, $dateto){
$names = array();
$days = array();
$file = fopen("data/daysaway.txt", 'a+');
while (!feof($file)) {
$data = fgets($file);
if(!$data == '') {
$pieces = explode(" ", $data);
$names[] = $pieces[0];
$days[] = $pieces[1];
}
}
fclose($file);
for($x = 0; $x < count($names); $x++) {
if(strtolower($names[$x]) == strtolower($tenantName)){
$datefromVAR = new DateTime($datefrom);
$datetoVAR = new DateTime($dateto);
$file = fopen("data/range.txt", 'a+');
$days[$x] += $datetoVAR->diff($datefromVAR)->format('%a')+1;
}
}
$file = fopen("data/daysaway.txt", 'w');
for($x = 0; $x < count($names); $x++) {
$entry = $names[$x]." ".$days[$x].PHP_EOL;
fwrite($file, $entry);
}
fclose($file);
}
后文件
"
name 185
name 0
// Random white space I don't want
"
相反,它以增量方式(似乎在每次写入后都会增加)输出一个空格和“”,在行尾随机输出,在行间随机输出。您有关于如何解决问题的信息吗?找到了问题
将文件读入数组时,days参数(爆炸一侧)包含不可见的换行符。天哪,我讨厌PHP 我猜
if(!$data='')
应该是if($data!='')
?@MagnusEriksson不,这两种方法的工作原理完全相同。实际上,它们不是:。PHP的类型转换有很多问题。不管怎么说,将数组用作布尔值只是为了将其与字符串进行比较,这感觉很奇怪。您是否尝试过在每个fwrite之后再写一行,如“-----”来进行调试?还可以尝试输出名称和天数数组的大小-读取方法中可能有一些有趣的地方我怀疑您的$names
数组比实际条目大。尝试输出它的count()
或sizeof()
。如果没有,可以临时添加ini\u集('display\u errors',true)代码>显示到文件的顶部,查看是否显示了一些有用的内容。
"
name 185
name 0
// Random white space I don't want
"
$pieces = explode(" ", $data);
$names[] = $pieces[0];
$days[] = $pieces[1];