我正在尝试编写一个使用复选框供用户选择的 php 脚本。一旦用户选择了他们的复选框,我的 php 脚本就会将它们(或应该)更改为 CSV 文件。然后从我的本地计算机上的 powershell 脚本加载该文件,然后用于执行命令。
我遇到的问题分为两部分,我似乎找不到确切的答案。第一个问题是创建的 csv 文件在一行中。下面的函数从复选框的输入设置 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);
我相信的第二个问题来自我的 powershell 脚本。我已经在我的 csv 文件上强制添加了一个标题,但是我的开关似乎不起作用。我想切换查看数组,然后根据用户在我的 php 文件中选择的内容执行(在本例中为下载)一些代码。
$selectedPlugin = Import-Csv "plugin.csv" -Header @("Plugin")
switch($selectedPlugin.Plugin)
{ namefromCheckbox1 //code
namefromCheckbox2 //code
}
只需将 id 设置为开关即可下载用户之前通过复选框选择的所有文件。
类似于如何将 php 数组传递给本地 powershell 脚本
编辑:回答我自己的问题,就像下面提到的,我的 csv 在一行中返回。这是由
$newCSV = explode(",",$csv_data);
然后稍后
foreach($newCSV as $item) {
fwrite($fh,$item.PHP_EOL);
}