将多个 Python 变量传递给 PHP
Pass multiple Python variables to PHP
HTML
这是一个接受用户输入 (url) 的表单:
<form method="post" action="/" accept-charset="utf-8">
<input type="search" name="url" placeholder="Enter a url" />
<button>Go</button>
</form>
PHP (Laravel)
此控制器将用户输入 (url) 的值存储到一个变量中,以便在 python 脚本中使用。
$url = Input::get('url');
$name = shell_exec('path/to/python ' . base_path() . '/test.py ' . $url);
return $name;
Python
脚本传递用户输入的内容并在正斜杠后获取文本并显示它。
url = sys.argv[1]
name = url.split('/')[-1]
print(name)
回到 PHP,它 return 是在 Python 脚本中执行的值。如果用户输入 url:http://example.com/file.png
它将成功 return 字符串 file.png
一切都有效,但我意识到我在限制自己,因为 shell_exec
命令只会粘贴从 [=] 编辑的字符串 return 50=] 脚本。如果我想有多个变量,我需要做什么 returned?
Python 有问题
url = sys.argv[1]
name = url.split('/')[-1]
test = "pass this text too!"
# ? what goes here ?
所以 HTML 页面现在应该 return file.png
和 pass this text too!
我是否需要在 python 中 return 数组或 json 然后在 PHP 中提取 array/json?
注意:我知道这些示例中的安全性 flaws/injections,这些是我实际代码的精简版本。
您可以 return 一个数组,但要确保元素不包含分隔符。
喜欢print(','.join(name, test))
。
或者你可以像 json.dumps([name, test])
一样编码为 json,然后在 PHP 中解析 json。第二个当然更好
在这种情况下,您的 Python 脚本必须 return 格式化响应,PHP 脚本才能正确解析并确定变量及其值
例如,您的 python 代码必须 return 类似的东西:
file_name=file.png;file_extension=png;creation_date=1/1/2015;
然后在你的 php 代码中做必要的事情
$varValues = explode(";", $PythonResult);
foreach($varValues as $vv) {
$temp = explode("=", $vv);
print 'Parameter : ' . $temp[0] . ' value : ' . $temp[1] . '<br />';
}
HTML
这是一个接受用户输入 (url) 的表单:
<form method="post" action="/" accept-charset="utf-8">
<input type="search" name="url" placeholder="Enter a url" />
<button>Go</button>
</form>
PHP (Laravel)
此控制器将用户输入 (url) 的值存储到一个变量中,以便在 python 脚本中使用。
$url = Input::get('url');
$name = shell_exec('path/to/python ' . base_path() . '/test.py ' . $url);
return $name;
Python
脚本传递用户输入的内容并在正斜杠后获取文本并显示它。
url = sys.argv[1]
name = url.split('/')[-1]
print(name)
回到 PHP,它 return 是在 Python 脚本中执行的值。如果用户输入 url:http://example.com/file.png
它将成功 return 字符串 file.png
一切都有效,但我意识到我在限制自己,因为 shell_exec
命令只会粘贴从 [=] 编辑的字符串 return 50=] 脚本。如果我想有多个变量,我需要做什么 returned?
Python 有问题
url = sys.argv[1]
name = url.split('/')[-1]
test = "pass this text too!"
# ? what goes here ?
所以 HTML 页面现在应该 return file.png
和 pass this text too!
我是否需要在 python 中 return 数组或 json 然后在 PHP 中提取 array/json?
注意:我知道这些示例中的安全性 flaws/injections,这些是我实际代码的精简版本。
您可以 return 一个数组,但要确保元素不包含分隔符。
喜欢print(','.join(name, test))
。
或者你可以像 json.dumps([name, test])
一样编码为 json,然后在 PHP 中解析 json。第二个当然更好
在这种情况下,您的 Python 脚本必须 return 格式化响应,PHP 脚本才能正确解析并确定变量及其值
例如,您的 python 代码必须 return 类似的东西:
file_name=file.png;file_extension=png;creation_date=1/1/2015;
然后在你的 php 代码中做必要的事情
$varValues = explode(";", $PythonResult);
foreach($varValues as $vv) {
$temp = explode("=", $vv);
print 'Parameter : ' . $temp[0] . ' value : ' . $temp[1] . '<br />';
}