Bash CURL 到 PHP CURL 的翻译
Bash CURL to PHP CURL translation
我无法将以下查询从用 bash 编写的教程 (Mixpanel JQL) 转换为 PHP Curl 查询:
Bash代码
# sends the JQL code in `query.js` to the api
# to a project with sample data for this tutorial
curl https://mixpanel.com/api/2.0/jql \
-u ce08d087255d5ceec741819a57174ce5: \
--data-urlencode script@query.js | python -m json.tool
问题
- 在 PHP 中,我应该使用哪些 CURL 选项来做同样的事情;
- 脚本的路径是什么(我猜是一个可访问的 HTTP url?);
python -m json.tool
到底有什么作用,我需要它吗?
参考:https://mixpanel.com/help/reference/jql/getting-started
谢谢。
我假设您删除了密码,因为 -u 是 HTTP 身份验证。以下示例在您需要放置它的地方有 password。 (虽然删除了星星!)。
python -m json.tool 是将 curl 命令传送到的内容,它是一个 json 格式化程序。所以我假设您的服务返回 json 格式。
我不确定你的文件 script@query.js 是什么,所以我假设它是一个文件名。因此添加了file_get_contents。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mixpanel.com/api/2.0/jql");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "ce08d087255d5ceec741819a57174ce5:*password*");
curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode(file_get_contents("script@query.js")));
$result=curl_exec ($ch);
curl_close ($ch);
这是有效的方法,要进行的调用实际上很简单。
通话
请求URL(GET)https://mixpanel.com/api/2.0/jql?script=<javscript script contents>
在PHP
$scriptContents = file_get_contents(<FILE PATH>);
$request_url = 'https://mixpanel.com/api/2.0/jql?script='.urlencode($scriptContents);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => <Request URL>,
CURLOPT_CONNECTTIMEOUT => 2,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HTTPAUTH => 1,
CURLAUTH_ANY => 1,
CURLOPT_USERPWD => 'ce08d087255d5ceec741819a57174ce5',
));
$data = curl_exec($curl);
curl_close($curl);
我无法将以下查询从用 bash 编写的教程 (Mixpanel JQL) 转换为 PHP Curl 查询:
Bash代码
# sends the JQL code in `query.js` to the api
# to a project with sample data for this tutorial
curl https://mixpanel.com/api/2.0/jql \
-u ce08d087255d5ceec741819a57174ce5: \
--data-urlencode script@query.js | python -m json.tool
问题
- 在 PHP 中,我应该使用哪些 CURL 选项来做同样的事情;
- 脚本的路径是什么(我猜是一个可访问的 HTTP url?);
python -m json.tool
到底有什么作用,我需要它吗?
参考:https://mixpanel.com/help/reference/jql/getting-started
谢谢。
我假设您删除了密码,因为 -u 是 HTTP 身份验证。以下示例在您需要放置它的地方有 password。 (虽然删除了星星!)。
python -m json.tool 是将 curl 命令传送到的内容,它是一个 json 格式化程序。所以我假设您的服务返回 json 格式。
我不确定你的文件 script@query.js 是什么,所以我假设它是一个文件名。因此添加了file_get_contents。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mixpanel.com/api/2.0/jql");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "ce08d087255d5ceec741819a57174ce5:*password*");
curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode(file_get_contents("script@query.js")));
$result=curl_exec ($ch);
curl_close ($ch);
这是有效的方法,要进行的调用实际上很简单。
通话
请求URL(GET)https://mixpanel.com/api/2.0/jql?script=<javscript script contents>
在PHP
$scriptContents = file_get_contents(<FILE PATH>);
$request_url = 'https://mixpanel.com/api/2.0/jql?script='.urlencode($scriptContents);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => <Request URL>,
CURLOPT_CONNECTTIMEOUT => 2,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HTTPAUTH => 1,
CURLAUTH_ANY => 1,
CURLOPT_USERPWD => 'ce08d087255d5ceec741819a57174ce5',
));
$data = curl_exec($curl);
curl_close($curl);