我使用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