繁体   English   中英

通过命令行将GET / POST参数传递给php

[英]Passing GET/POST parameteres to php via commandline

我会原谅自己,因为我敢肯定那里已经有一些明显的解决方案或答案了,但是经过大量的搜索之后我还是找不到了。

我正在开发一个简化的Web服务器作为.net中的项目。 我想做的是为每个HTML请求调用php.exe,以执行文件中的任何php代码,然后将结果返回到我的服务器,在此将其提供给客户端。

如果不传递GET / POST参数,这非常简单,但是我找不到实现此功能的方法。

现在我有这个作为我的功能,可以通过命令行编写对php的调用

Public Shared Function phpparse(ByVal requesttype As String, ByVal argnames() As String, ByVal argvals() As String)
    Dim proc As Process = New Process
    proc.StartInfo.FileName = "php\php.exe"
    Dim B As New System.Text.StringBuilder
    B.Append("-B ""$_")
    B.Append(requesttype & " = array(")
    For i As Integer = 0 To argnames.Length - 1
        B.Append("'" & argnames(i) & "' => '" & argvals(i) & "', ")
    Next
    B.Remove(B.Length - 2, 2)
    B.Append(");"" -F script.php")
    InputBox("", "", B.ToString)
    proc.StartInfo.Arguments = B.ToString
    proc.StartInfo.UseShellExecute = False
    proc.StartInfo.RedirectStandardOutput = True
    proc.StartInfo.CreateNoWindow = True
    proc.Start()
    Return proc.StandardOutput.ReadToEnd
End Function

返回如下内容:

-B "$_GET = array('name' => 'John', 'email' => 'john.doe@no.com');" -F script.php

并且应该调用此测试php脚本:

<html>
<body>

Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>

</body>
</html> 

但是尝试阅读答案时卡住了

使用php,您可以像这样阅读args:

<?php    
if (isset($argv)) {
    echo $argv[1]." ".$argv[2];
}
?>

这将返回

约翰john.doe@no.com

我不太了解如何发送命令行参数。 你应该像这样运行php

php.exe约翰john.doe@no.com

我找到了解决该问题的方法。 我仍在寻找适当的解决方案,但目前可以使用

调用PHP CLI的参数应为

-r“ $ arrayname = array('arraypar1'=>'arrayval1','arraypar2'=>'arrayval2',); require_once('C:\\ fullroutetofile \\ script.php');”

看来您不能同时调用-B和-f,但是require_once可以绕过它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM