如何使用PHP从其他(本地)页面获取某些HTML?
我有一个页面“Product1.htm”,我希望找到div中带有“price”类的文本,然后显示在另一个页面上:“Products_overview.htm”。所以在Products_overview.htm里面,PHP我想,它的目标是product1.htm并显示“Price”DIV的内容。
不知道如何做到这一点虽然我确信它一定很简单!有什么帮助吗?
答案 0 :(得分:1)
严格地说,最好弄清楚如何生成div“price”的内容,然后在Products_overview.htm中重现该内容。如果没有办法做到这一点,那么你可以使用CURL:
假设PHP需要在输出div之前解析.htm文件:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/path/to/Product1.htm");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$content = curl_exec($ch);
if(preg_match('/<div class=\'Price\'>(.*?)<\/div>/is', $content, $matches) {
echo $matches[1];
}
答案 1 :(得分:1)
简单方法:使用simple HTML Dom:
示例:强>
page.html中
Some html...
<div class="price">
Vivamus malesuada hendrerit metus, eu viverra odio viverra nec. Maecenas nec felis est, sit amet molestie massa. Morbi odio dolor, scelerisque eget bibendum et, volutpat non risus. Curabitur eleifend, lacus non rutrum sollicitudin, est diam fermentum nisl, vel lacinia felis felis quis odio. Aliquam mollis, est nec porttitor feugiat, velit risus dapibus dolor, ac viverra tortor
</div>
Some html...
PHP文件:
<?php
include 'simple_html_dom.php';
$html = file_get_html('page.html');
echo $html->find("div[class=price]", 0); // will echo content inside a <div class="price"> </div>
?>
答案 2 :(得分:0)
您可以使用file_get_contents( 'http://..../Product1.html')
或cURL,然后将其解析为普通文本。
答案 3 :(得分:0)
使用cURL(根据@ cegfault的回答)。但是,要获取文本本身,请使用像DOMDocument这样的HTML解析器。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/path/to/Product1.htm");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$content = curl_exec($ch);
$doc = new DOMDocument();
$doc->loadHTML($content);
$finder = new DomXPath($doc);
$classname="price";
$nodes = $finder->query("//div[contains(@class, '$classname')]");