1

我需要知道是否可以加载 html 页面并使用 php 在此页面内提交表单。所以像:

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

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

编辑:

我必须提交这个表格

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

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

4

5 回答 5

3

您还可以使用curlPOST 到任何 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”的表单调用的。

要找出您需要发布的 URL,您可以检查源代码。<input>执行此操作时,请检查您要发送的标签上的“名称”属性。

编辑:如果 POST url 和字段可以更改,您应该检查@Adan's answer

于 2012-05-05T09:56:17.270 回答
1

您可以使用 curl 在 php 中获取页面。正如@Lumbendil 的回答中提到的那样。为了解析 HTML,您可以使用类似的库

http://simplehtmldom.sourceforge.net/

或者你可以使用

http://code.google.com/p/phpquery/

于 2012-05-05T10:30:22.127 回答
1

基本上这是你需要做的

1- 获取 HTML 页面的内容file_get_contents()(考虑到安全风险) 2- 使用DOMDocument
解析 HTML 3- 获取表单的属性,最重要的是使用 ( , ) 4- 使用 5- 获取表单的字段名称使用该方法向url发送带有您想要使用cURL替换字段的数据的请求
ACTIONMETHODDOMDocument
DOMDocument
ACTIONMETHOD

于 2012-05-05T09:55:51.173 回答
0

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

于 2012-05-05T10:02:21.373 回答
0

我提供了一个从网络获取的代码来获取页面的内容。之后,您可以使用 jquery(maybe) 来强制提交功能。

$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( "–&amp;gt;", '–&amp;gt;</em>', $line );
    echo "<span class=\"linenumber\">Line <strong>$line_num </strong></span> : " . $line . "<br/>\n";
}

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

于 2012-05-05T10:41:10.347 回答