流程:
问题:
如果我的文本文件已包含以下数据:(表示文本文件行的数字)
然后我尝试共享更多文件,包括已经共享的文件。我的新文本文件如下所示:(表示文本文件行的数字)
上面的值是我正在处理的确切值。我试图尽可能彻底地解释这可能会使事情变得混乱。如果有人能提供任何建议,我们将不胜感激。提前致谢。这是我到目前为止所获得的代码:
代码:
$arr = $_POST['checked'];
$cust = $_POST['custname'];
if ($cust != ""){
$myFile = "CONTA.txt";
//If file exists get previous array from file
if (file_exists("customer/" . $cust . "/" . $myFile)) {
$fh = fopen("customer/" . $cust . "/" . $myFile, 'r') or die("");
while (!feof($fh) ) {
$compare[] = fgets($fh);
}
fclose($fh);
//Combine checkbox array with previous array & eliminate duplicates
$combined = array_unique(array_merge($compare,$arr));
}
else
{
//Since no previous file or array existed. Just use current checkbox array.
$combined = $arr;
}
//Input array into file
$fh = fopen("customer/" . $cust . "/" . $myFile, 'w') or die("can't open file");
foreach ($combined as $value) {
fwrite($fh, $value . "\n");
}
echo "<span class='message'>Items shared successfully!</span>";
fclose($fh);
}
}
答案 0 :(得分:0)
对我而言,问题似乎是“\ n”字符。每一行在末尾都有一个新行,当你比较一行具有换行符和同一行而不是它们不相同时。我会通过回显fgets中的每一行来确认这一点。如果它们被断线,那么你知道你正在获得新的线条字符。
编辑:
我会尝试把
修剪(与fgets($ FH))
默认情况下,它应该删除换行符字符
trim specs