[英]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.