PHP cURL中远程站点的提交按钮

Submit button of remote site in PHP cURL

本文关键字:站点 提交 按钮 cURL 程站点 PHP      更新时间:2023-09-26

是否有任何方法可以通过按钮触发onClick事件并使用cURL PHP或任何其他方法获得结果?

<button class="yt-uix-button yt-uix-button-size-small yt-uix-buttondefault business-email-button" type="button" onclick=";return false;">
    <span class="yt-uix-button-content">View email address</span>
</button>

您不能直接用CURL模拟点击。当你点击按钮时,你必须使用Chrome DevTools等工具分析发送到服务器的请求(HTTP头)。你可以这样使用它。

一旦你知道了请求的URL和参数(如果它们存在的话),你就可以构建一个CURL请求并得到这样的响应:

$ch = curl_init();
// params example
$post = [
    'username' => 'user1',
    'password' => 'pass1'
];
// Request URL
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
// server response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_response = curl_exec ($ch);
curl_close ($ch);

是的,有几种方法可以做到这一点。首先查看这里发布的CURL方法。http://hayageek.com/php-curl-post-get/

然后,您必须使用Ajax或jQuery为按钮onClick创建脚本,我将在下面发布两个jQuery和Javascript的示例。

jQuery使用PHP

1) 首先将其保存为HTML文件

<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript" language="javascript">
 $(document).ready(function() {
   $("#name").click(function(event){
     $.post("jQueryPost.php",
    {name: "Miguel", surename: "Makonnen"},
    function(data) { 
    $('#result').html(data);}
      );
   });
 });
</script>
<div id="result">
</div>
<input type="button" id="name" value="Check Name" />

2) 然后将其保存为远程PHP文件,并将其命名为jQueryPost.PHP

<?php
if($_POST["name"]) {
   $NAME = $_POST['name'];
   $SURENAME = $_POST['surename'];
   echo "Name ".$NAME."<BR>"; 
   echo "Surname: ".$SURENAME."<BR>"; 
}
?>

使用"onClick",上面的脚本将向远程PHP文件发送一个带有名称+Surename的POST请求。远程PHP文件将处理请求,并将其作为回调发送到HTML文件。您可以将PHP的内容更改为任何您想要的内容。

Javascript AJAX与PHP

1) 首先将其作为HTML文件。

<script type="text/javascript">
function XmlHttp_Request() {
  var xmlHttp = null;
  if(window.XMLHttpRequest) {       // Firefox, IE7+, Opera Support
    xmlHttp = new XMLHttpRequest();
  }
  else if(window.ActiveXObject) {   // fInternet Explorer 5, 6 Support
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  return xmlHttp;
}
// Post Ajax Data
function ajaxPost(Filename, Finalise) {
  var request =  XmlHttp_Request(); 
  // Post Parameters
  var  postData = 'name='+document.getElementById('myname').innerHTML;
  request.open("POST", Filename, true); // Our Post tRequest
  request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  request.send(postData);       // Post Data
  // Check request status
  request.onreadystatechange = function() {
    if (request.readyState == 4) {
      document.getElementById(Finalise).innerHTML = request.responseText;
    }
  }
}
</script>
<button onclick="ajaxPost('ajaxPost.php', 'finalise')">Check Name</button>
<div id="myname"></div>
<div id="finalise"></div>

2) 然后将其保存为名为ajaxPost.PHP的远程PHP文件.

<?php
if (isset($_POST['name'])) {
   echo "Name:    Miguel <BR>"; 
   echo "Surname: Makonnen"; 
}
?>

这将简单地在Button Click上从远程PHP文件中发送一个基于Ajax请求的Name+Surname响应。正如我前面提到的,您可以使用Curl脚本更改PHP的内容。不应该那么难。祝好运