如何使用 php 提交 html 页面的形式


How to submit a form of a html page using php

我需要知道是否可以加载HTML页面并使用PHP在此页面内提交表单。

<?php
   $html = fopen("http://www.mysite.com","r");
   //get position of form...
   ...
   //submit it 
?>

可能吗?有人能帮我吗?谢谢!!

编辑:

我必须提交此表格

https://annunci.ebay.it/pubblica-annuncio

我的问题是在此页面中有一个图像上传,我不知道如何使用php(抓取它)来做到这一点

您还可以

使用 curl 发布到任何 URL,例如表单的操作 URL。

$ch = curl_init('http://example.com/form_action.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('your' => 'data', 'goes' => 'here');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);

这将调用 URL http://example.com/form_action.php,就好像它是从将"your"设置为值"data"和"goes"设置为值"here"的表单中调用的。

要找出您需要 POST 的 URL,您可以检查源代码。执行此操作时,请检查要发送的<input>标签上的"名称"致敬。

编辑:如果POST网址和字段可以更改,您应该检查@Adan的答案。

基本上这是你需要做的

1-使用file_get_contents()获取HTML页面的内容(牢记安全风险)
2-使用DOMDocument
解析HTML3-获取表单的属性,最重要的是(ACTIONMETHOD)使用DOMDocument
4-使用DOMDocument
获取表单的字段名称5-然后使用方法发送到ACTION网址 METHOD 请求使用您想要的数据替换使用 cURL

作为另一种更干净的选择,您可以使用eBay API。它提供了添加新项目的方法,并且可能已经为php构建了库,例如eBay的PHP Accelerator工具包。

我提供了一个从网络获得的代码来获取页面的内容。之后你可以使用 jquery(也许)来强制提交函数。

$url = "URL OF YOUR PAGE"; // I have tested page from same server
$lines = file( $url );
foreach( $lines as $line_num => $line ) {
    $line = htmlspecialchars( $line );
    $line = str_replace( "&lt;", '<span>&lt;', $line );
    $line = str_replace( "&gt;", '&gt;</span>', $line );
    $line = str_replace( "&lt;!–", '<em>&lt;!–', $line );
    $line = str_replace( "–&gt;", '–&gt;</em>', $line );
    echo "<span class='"linenumber'">Line <strong>$line_num </strong></span> : " . $line . "<br/>'n";
}

上面的代码为我提供了来自同一服务器上另一个页面的内容。现在你必须找到一种方法来检查表单是否存在,然后;强制提交该表单。