0

我正在使用当前功能:

function callframe(){
    $ch = curl_init("file.html");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    echo curl_exec($ch);
    curl_close($ch);
}

然后我调用 callframe() 它出现在我的 php 页面上。假设这是 file.html 内容:

<html>
<body>

   [...]

<td class="bottombar" valign="middle" height="20" align="center" width="1%" nowrap> 

   [...]

<a href="link.html">Link</a>

   [...]

</body>
</html>
  • 我怎样才能删除该 <td class="bottombar" valign="middle" height="20" align="center" width="1%" nowrap>行?
  • 我怎样才能删除一个参数,如高度参数,或将中心向左更改?
  • 我怎么能在我的href中的link.html之前插入' http://www.whatever.com/ '

谢谢你的帮助!

ps:你可能想问我为什么不直接改file.html。那么,毫无疑问。

4

3 回答 3

1

为了让您开始,而不是仅仅回显curl_exec,首先存储它以便您可以使用它:

$html = curl_exec($ch);

现在,将其加载到 aDOMDocument中,然后您可以使用它进行解析和更改:

$dom = new DOMDocument();
$dom->loadHTML($html);

现在,对于第一个任务(删除该行),它看起来像:

//
// rough example, not just copy-paste code
//

$tds = $dom->getElementsByTagname('td'); // $tds = DOMNodeList
foreach ($tds as $td) // $td = DOMNode
{
    // validate this $td is the one you want to delete, then
    // call something like:
    $parent = $td->parentNode;
    $parent->removeChild($td);
}

也执行任何其他类型的处理。

然后,最后调用:

echo $dom->saveHTML();
于 2013-06-12T16:03:26.463 回答
0

我就是这样做的。更改例如选项字段(用于搜索字符串)这会更改我的选项列表的第二个值并将其替换为我想要的。

require('simple_html_dom.php');

$html = file_get_html('fileorurl');

$e = $html->find('option', 0) ->next_sibling ();
$e->outertext = '<option value="WTR">Tradition</option>';

然后回显 $html;

于 2013-06-13T15:40:11.590 回答
0

您可以将输出放在一个变量中,并可以使用字符串函数来完成您的工作

function callframe(){
 $ch = curl_init("file.html");
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 $result = curl_exec($ch);
 $result = str_replace("link.html","http://www.whatever.com/link.html", $result);
 // other replacements as required
 curl_close($ch);
}
于 2013-06-12T15:56:07.490 回答