簡體   English   中英

PHP收發數據

[英]PHP receives and sends data

我有以下 php 代碼,它將數據發送到線索工具。

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://mkt.university-private.internal/form/submit",                                                                                                                                                                                                                                                                                                                                                                           CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array('mauticform[f_email]' => 'gbsilva@gmail.com','mauticform[f_name]' => 'Gabriel','mauticform[formId]' => '5'),
  CURLOPT_HTTPHEADER => array(
    "X-Forwarded-For: 91.92.103.192"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

問題是我必須在 php 腳本中手動輸入數據。

我現在有一個 CRM,它執行 POST 並以正文形式數據發送以下數據:

email=gbsilva@40gmail.com&name=Gabriel&IP=91.92.103.192&formId=5

我需要的是我的 php 代碼接受接收具有上述這些值的 CRM 帖子,並使用來自 CRM 的數據在我的潛在客戶工具中提出請求。

在我的 erp 上,我可以調用 url,我將調用我的腳本的 url。php

他需要在發送轉換之前將字段名稱放在此命名法之間,潛在客戶工具僅接受具有此命名法的字段:

mauticform[f_FIELDNAME]

誰能幫忙

非常簡單,只需要利用$_POST將值傳輸到變量然后使用它

<?php

$P_email = $_POST['email'];
$P_name = $_POST['name'];
$P_formId = $_POST['formId'];
$P_ip = $_POST['IP'];

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://mkt.university-private.internal/form/submit",   
  //..hidden                                                                                                                                                                                                                   
  CURLOPT_POSTFIELDS => array('mauticform[f_email]' => $P_email,'mauticform[f_name]' => $P_name,'mauticform[formId]' => $P_formId),

  //hidden

  //*update* FOR IP
  CURLOPT_HTTPHEADER => array(
    "X-Forwarded-For: $P_ip"
  ),
));


//..

更新:所以要解決動態變量名稱

//Create an array to hold the name=value pairs
$P_arr = [];
//Loop over $_POST and populate $P_arr
foreach($_POST as $key=>$value){
    $P_arr[$key] = $value; 
   // $key will run through all those keys' values you sent //name ,email ..
   // so will $value but on the literals like "gbsilva@40gmail.com", "Gabriel"
}

/* We have now an array of key value pairs */
// adjust the KEYs to "mauticform"'s format before using
$mauticformArr = [];

foreach($P_arr as $key=>$value){
   if($key != 'IP'){
      if($key!= 'formId')
        $mauticformArr['mauticform[f_'.$key .']'] = $value;
      else
        $mauticformArr['mauticform['.$key .']'] = $value;       
   }
}

// Then use inside you code as
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://mkt.university-private.internal/form/submit",   
  //..hidden                
CURLOPT_POSTFIELDS => $mauticformArr,
  //..hidden 
  //..

您可能會發現“Guzzle”比實際使用 CURL 效果更好......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM