如何将php数组传递到本地powershell脚本
我正在编写一个powershell脚本,它可以自动设置Wordpress。这个脚本将由多人在创建他们的网站时使用,我想添加一些额外的功能 我想让我的同事访问一个php页面,允许他们为自己的页面选择主题和插件,然后将他们的选择(我认为最容易通过数组)传递给我的powershell脚本。powershell脚本必须处理此问题的原因是,在他们拾取文件后,powershell脚本可以连接到内部服务器并处理其余文件 我想我的问题分为两部分;首先,上述情况可能吗?如果是这样的话,这似乎是处理这个问题的合乎逻辑的方法吗 第二个问题是如何真正做到这一点?下面是我处理下载页面的php/html代码,希望能够将数组传递给我的脚本。(以下代码从“临时”网站下载用于测试目的,并不真正满足我的要求)如何将php数组传递到本地powershell脚本,php,wordpress,powershell,download,Php,Wordpress,Powershell,Download,我正在编写一个powershell脚本,它可以自动设置Wordpress。这个脚本将由多人在创建他们的网站时使用,我想添加一些额外的功能 我想让我的同事访问一个php页面,允许他们为自己的页面选择主题和插件,然后将他们的选择(我认为最容易通过数组)传递给我的powershell脚本。powershell脚本必须处理此问题的原因是,在他们拾取文件后,powershell脚本可以连接到内部服务器并处理其余文件 我想我的问题分为两部分;首先,上述情况可能吗?如果是这样的话,这似乎是处理这个问题的合乎逻
选择一个主题
一体式幻灯片放映
BB
提前感谢您的帮助。如果您直接从web服务器执行PowerShell脚本,您可以通过系统调用(
exec()
,passthrough()
,shell_exe()
)将参数传递给PowerShell.exe
。您只需要确保参数的传递顺序与PowerShell执行它们的顺序相同
如果参数列表或数据太长,可以创建临时文件。最好的方法是进行基于分隔符的设置(如CSV
):使用PHP从数组中创建一个文本文件,将该文件(现在是string
)保存到文件中,然后在PowerShell中,围绕相同的分隔符将文件分块。您也可以使用serialize()
,但我不确定是否有能力在PowerShell中unserialize()
当然,使用上述方法,PowerShell只需要一个参数,即存储阵列的临时文件的路径
此外,您还应在讨论以下问题时查看。谢谢您的回答。我真的很喜欢csv的想法,因为它似乎相对容易实现和维护。我会仔细阅读并试一试。
<?php
$val=$_POST['theme'];
if($val == 'aa') {
header('Content-disposition: attachment; filename=all-in-one-slideshow.zip');
header('Content-type: application/zip');
$url = 'http://mypage.com/wordpressFiles/all-in-one-slideshow.zip';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $path);
$data = curl_exec($ch);
curl_close($ch);
fclose($fp);
} else if($val == 'bb') {
} else {
}
?>
<form action="download.php" method="post">
<select name="theme" id="theme" class="select-list">
<option value="\">Choose A Theme</option>
<option value="aa">All-In-One-Slideshow</br>
<option value="bb">BB</br>
</select>
<input type="submit" value="Download" />
</form>