我使用simple_html_dom.php从http://simplehtmldom.sourceforge.net获得维基百科页面上的所有图像的完整网址,将处理大多数情况下,一个更强大的方式。我主要寻找公司和组织。下面的脚本适用于少数,但我得到致命错误:调用一个成员函数查找()一个非对象...在这个例子中的YouTube的许多搜索,也如果我尝试的Facebook在其他之中。我知道这是因为$ html不是一个对象。什么是在返回网址方面最成功的方法。请参阅下面的代码。任何帮助是极大的赞赏。简单的HTML DOM file_get_html不工作 - 有
<html>
<body>
<h2>Search</h2>
<form method="post">
Search: <input type="text" name="q" value="YouTube"/>
<input type="submit" value="Submit">
</form>
<?php
include 'simple_html_dom.php';
if (isset($_POST['q']))
{
$search = $_POST['q'];
$search = ucwords($search);
$search = str_replace(' ', '_', $search);
$html = file_get_html("http://en.wikipedia.org/wiki/$search");
?>
<h2>Search results for '<?php echo $search; ?>'</h2>
<ol>
<?php
foreach ($html->find('img') as $element): ?>
<?php $photo = $element->src;
echo $photo;
?>
<?php endforeach;
?>
</ol>
<?php
}
?>
</body>
</html>
现在我已经在下面的评论,随后建议(虽然我可能犯了一个错误),当我点击沿线的提交遇到错误:
警告:DOM文档:: loadHTMLFile(): ID ref_media_type_table_note_2已经http://en.wikipedia.org/wiki/YouTube定义,行:270 ...
警告:DOM文档:: loadHTMLFile():在http://en.wikipedia.org/wiki/YouTube已经定义ID ref_media_type_table_note_2,行:501 ...
请发ee值修正我下面的代码:
<html>
<body>
<form method="post"> Search:
<input type="text" name="q" value="YouTube"/>
<input type="submit" value="Submit"> </form>
<?php
if (isset($_POST['q']))
{ $search = $_POST['q'];
$search = ucwords($search);
$search = str_replace(' ', '_', $search);
$doc = new DOMDocument();
$doc->loadHTMLFile("http://en.wikipedia.org/wiki/$search");
foreach ($doc->getElementsByTagName('img') as $image)
echo $image->getAttribute('src');
}
?>
</body>
</html>
我会尽量避开SimpleHTMLDom,并坚持使用非常成熟和维护良好的内置DOM扩展。 '$ doc = new DOMDocument(); $ doc-> loadHTMLFile(“http://en.wikipedia.org/wiki/$search”)'应该让你去 – Phil 2014-12-04 00:04:56
@phil非常感谢和为无知抱歉,但我将如何实现,以获得URL图像? – Oroku 2014-12-04 00:35:43
'foreach($ doc-> getElementsByTagName('img')as $ image)echo $ image-> getAttribute('src');' – Phil 2014-12-04 00:43:50