simplehtmldom获取输入onclick

时间:2013-09-07 07:39:12

标签: php simple-html-dom

现在我已经生气了,我试图在几个小时内获得输入元素的onclick属性......

我收到以下错误:

Notice: Trying to get property of non-object in C:\wamp\www\glitcher\ab.php on line 6

这是片段:

<?php
include 'simple_html_dom.php';
$content='<input type="button" onclick="s8Ajax(\'/bounty.php?hitlist_id=32234066&amp;formNonce=166f7ddc73ce8024c3a6a2b894fa0c83a3d5272c&amp;setTab1Badge=&amp;h=891173dbc0c1aef4bec8592a7e3e74306efa7065\')" class="btnMed" style="font-size: 15px;" value="Add to Hit List">';
$content=str_get_html($content);
$href=$content->find('.btnMed');
$href=$href->onclick;
echo $href;
?>

提前致谢

1 个答案:

答案 0 :(得分:4)

find()函数返回一个dom对象数组,因此你必须指定你想要处理的元素的索引。

所以要么使用:$href = $content->find('.btnMed', 0);将重新调整数组的第一个元素,在这种情况下,$ href是一个对象......

或者,因为$ href是一个数组,所以在他的第一个对象元素上调用onclick属性,如下所示:$href = $href[0]->onclick;

这是一个完整的工作示例:

$text = '<input type="button" onclick="s8Ajax(\'/bounty.php?hitlist_id=32234066&amp;formNonce=166f7ddc73ce8024c3a6a2b894fa0c83a3d5272c&amp;setTab1Badge=&amp;h=891173dbc0c1aef4bec8592a7e3e74306efa7065\')" class="btnMed" style="font-size: 15px;" value="Add to Hit List">';

//Create a DOM object
$html = new simple_html_dom();
// Load HTML from a string
$html->load($text);

// Find the first elements with class 'btnMed'
$btn = $html->find('.btnMed', 0);

// Find succeeded
if ($btn) {
    $href = $btn->onclick;
    echo $href;
}
else
    echo "Find function failed !";