繁体   English   中英

使用Curl PHP的POST URL

[英]POST url with Curl PHP

我有一个感谢页面,其中的URL包含变量:

http://vieillemethodecorpsneuf.com/confirmation-achat-1a/?item=1&cbreceipt=VM6JQ6VE&time=1429212702&cbpop=C123FA24&cbaffi=twitpalace&cname=Roberto+Laplante&cemail=roberto%40gmail.com&ccountry=FR&czip=000

我有这个GET函数来捕获变量:

<?php
$clickbank_name = (isset($_GET['cname'])) ? $_GET['cname'] : ''; 
$clickbank_email = (isset($_GET['cemail'])) ? $_GET['cemail'] : '';
$clickbank_country = (isset($_GET['ccountry'])) ? $_GET['ccountry'] : '';
$clickbank_zip = (isset($_GET['czip'])) ? $_GET['czip'] : '';
$clickbank_aff = (isset($_GET['cbaffi'])) ? $_GET['cbaffi'] : '';
?>

现在,我需要使用curl PHP将数据发送到该Zapier URL(但附加了变量,这样它将给我):

https://zapier.com/hooks/catch/bheq6y/?tag=client&cbaffi=twitpalace&cname=Roberto+Laplante&cemail=roberto%40gmail.com&ccountry=FR&czip=000

PS。 我在网址中添加了一个手动标记

使该工作正常的PHP Curl代码是什么? 需要在后台进行操作。

我会试一试。

$get_fields = ['tag' => 'client'];
if (isset($_GET['cname'])) $get_fields['cname'] = $_GET['cname'];
if (isset($_GET['cemail'])) $get_fields['cemail'] = $_GET['cemail'];
if (isset($_GET['ccountry'])) $get_fields['ccountry'] = $_GET['ccountry'];
if (isset($_GET['czip'])) $get_fields['czip'] = $_GET['czip'];
if (isset($_GET['cbaffi'])) $get_fields['cbaffi'] = $_GET['cbaffi'];

$encoded = '';
foreach($get_fields as $name => $value){
    $encoded .= urlencode($name).'='.urlencode($value).'&';
}

$url = 'https://zapier.com/hooks/catch/bheq6y/?'.rtrim($encoded,'&');

// simple get curl
$output = file_get_contents($url);

// or if you want more control over the request
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $url,
));
$output = curl_exec($curl);
curl_close($curl);

在此示例中,我们将数据以参数的形式发布到另一个curl.php页面和curl.php中,每当curl.php被调用时,我都会编写一些代码来执行,并将结果从curl.php得到的地方发送回页面一个要求。 机制:此示例是使用Curl在PHP中制作的。

第一步:创建curl.php文件。 通过使用curl机制,该文件将被另一个php文件调用。 因此,在curl.php中,我们将获得一些参数。 我们获取参数并执行一些功能。 之后,当我们需要输出时,我们仅使用json_encode()和简单的echo来对json进行编码。

$post = $_POST;
echo json_encode($post);

注意:index.php将以json格式获取数据,因为我们会将json格式的数据发送回index.php

第二步:我们必须创建一个index.php文件。 在这里,我们编写了一个用于执行带有某些参数的curl的逻辑,然后调用curl.php并从curl.php获取结果。$ url =' http://localhost/curl_demo/curl.php '; //这是我要在curl执行时执行的目标文件(curl.php)$ ch = curl_init($ url);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'id=1&name=sanjay'); // pass parameters to curl.php
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$resArr = json_decode($response, true);
curl_close($ch);
print_r($resArr);

注意:curl成功执行后获得的数据将以json格式获得。 这意味着我们必须使用php中的json_decode()对其进行解码。

暂无
暂无

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

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