我需要知道是否可以加载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-获取表单的属性,最重要的是(ACTION
,METHOD
)使用DOMDocument
4-使用DOMDocument
获取表单的字段名称5-然后使用方法发送到ACTION
网址 METHOD
请求使用您想要的数据替换使用 cURL
您可以使用 curl 在 PHP 中获取页面。 如答案@Lumbendil中所述。对于解析 HTML,您可以使用类似
http://simplehtmldom.sourceforge.net/
或者您可以使用
http://code.google.com/p/phpquery/
作为另一种更干净的选择,您可以使用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( "<", '<span><', $line );
$line = str_replace( ">", '></span>', $line );
$line = str_replace( "<!–", '<em><!–', $line );
$line = str_replace( "–>", '–></em>', $line );
echo "<span class='"linenumber'">Line <strong>$line_num </strong></span> : " . $line . "<br/>'n";
}
上面的代码为我提供了来自同一服务器上另一个页面的内容。现在你必须找到一种方法来检查表单是否存在,然后;强制提交该表单。