ユーザーが選択するチェックボックスを使用するphpスクリプトを作成しようとしています。ユーザーがチェックボックスを選択すると、私のphpスクリプトはそれらをCSVファイルに変更します(または変更することになっています)。このファイルは、ローカル マシンの powershell スクリプトから読み込まれ、コマンドを実行するためのものです。
私が抱えている問題は 2 つの部分に分かれており、正確な答えが見つからないようです。最初の問題は、作成される csv ファイルが 1 行であるということです。以下の関数は、チェックボックスの入力からcsvファイルを設定しますが、使用方法がわからない単一行のcsvファイルを出力します。
function array_2_csv($array) {
$csv = array();
foreach ($array as $item) {
if (is_array($item)) {
$csv[] = array_2_csv($item);
} else {
$csv[] = $item;
}
}
return implode(',', $csv);
}
$fh = fopen("plugin.csv","w");
fwrite($fh,$csv_data);
fclose($fh);
2 番目の問題は、私の powershell スクリプトにあると思います。csv ファイルにヘッダーを強制しましたが、スイッチが機能していないようです。スイッチで配列を調べてから、PHP ファイルでユーザーが選択した内容に基づいてコードを実行 (この場合はダウンロード) したいと考えています。
$selectedPlugin = Import-Csv "plugin.csv" -Header @("Plugin")
switch($selectedPlugin.Plugin)
{ namefromCheckbox1 //code
namefromCheckbox2 //code
}
ユーザーが以前にチェックボックスで選択したすべてのファイルをダウンロードするには、スイッチのような id を入力するだけです。
PHP配列をローカルのpowershellスクリプトに渡す方法に似ています
編集: 以下で説明するように、自分の質問に答えるために、私の csv は 1 行で返されました。これはによって修正されました
$newCSV = explode(",",$csv_data);
そしてその後
foreach($newCSV as $item) {
fwrite($fh,$item.PHP_EOL);
}