过程:
- 用户选中复选框以与客户帐户共享文件
- 复选框值与存储在客户文件夹中的 txt 文件中的数组进行比较
- 数组通过使用 array_merge() 合并为一个数组进行比较
- 使用 array_unique() 消除重复项
- 写入 txt 文件的新数组
问题:
如果我的文本文件已经包含以下数据:(代表文本文件行的数字)
- M HTH A277 Frame Off STD 规格 02-01-12.pdf
- M HTH A277 框架标准规格 02-01-12.pdf
- M HTH 期权罐价格表 02-02-2012.xls
然后我尝试共享更多文件,包括那些已经共享的文件。我的新文本文件如下所示:(代表文本文件行的数字)
- M HTH A277 Frame Off STD 规格 02-01-12.pdf
- (空白的)
- M HTH A277 框架标准规格 02-01-12.pdf
- (空白的)
- M HTH 期权罐价格表 02-02-2012.xls
- (空白的)
- (空白的)
- M HTH A277 Frame Off STD 规格 02-01-12.pdf
- M HTH A277 框架标准规格 02-01-12.pdf
- M HTH 期权罐价格表 02-02-2012.xls
- 谷溪庄园 - 2010.pdf
上面的值是我正在处理的确切值。我试图尽可能彻底地解释这个可能会使事情变得混乱的解释。如果有人可以向我提供任何建议,他们将不胜感激。提前致谢。到目前为止,这就是我所拥有的代码:
编码:
$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);
}
}