プロセス:
- ユーザーがチェックボックスをオンにして、顧客アカウントとファイルを共有します
- チェックボックスの値は、customersフォルダーのtxtファイルに保存されている配列と比較されます。
- array_merge()を使用して1つの配列にマージすることにより、配列が比較されます。
- array_unique()を使用して重複を排除します
- txtファイルに書き込まれた新しい配列
問題:
テキストファイルにすでに次のデータが含まれている場合:(テキストファイルの行を表す数字)
- MHTHA277フレームオフSTD仕様02-01-12.pdf
- STD仕様のMHTHA277フレーム02-01-12.pdf
- MHTHオプション缶価格表02-02-2012.xls
次に、すでに共有されているファイルを含め、さらに多くのファイルを共有しようとします。私の新しいテキストファイルは次のようになります:(テキストファイルの行を表す数字)
- MHTHA277フレームオフSTD仕様02-01-12.pdf
- (空欄)
- STD仕様のMHTHA277フレーム02-01-12.pdf
- (空欄)
- MHTHオプション缶価格表02-02-2012.xls
- (空欄)
- (空欄)
- MHTHA277フレームオフSTD仕様02-01-12.pdf
- STD仕様のMHTHA277フレーム02-01-12.pdf
- MHTHオプション缶価格表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);
}
}