我正在慢慢尝试使用Simple HTML DOM Parser从页面中提取一些html并将html代码插入当前页面。 (我是一个PHP新手)
在示例中,一个人只会像c.html一样输入页面名称。我需要php来查看当前页面:div navbar一个href结束w / $ pg,当它发现需要获得完整的href所以我有路径,所以它可以用来转到那个页面并拉一些指定的div。
到目前为止我有这个,但路径没有回应:
<?php
include_once '%resource(simple_html_dom.php)%';
$pg = 'c.html';
echo 'Page: ' . $pg . '<br />'; // Works
$html = file_get_html(); // needs to look in current pg
foreach($html->find('#navbar a[href$=$pg]') as $path) // Doesn't work
echo 'Path: ' . $path;
$html = file_get_html($path);
foreach($html->find('#testdiv2') as $ret)
echo $ret;
?>
感谢您的帮助。
更新的代码:
<?php
include_once 'path/to/resource/simple_html_dom.php';
$pg = 'c.html';
echo 'Page: ' . $pg . '<br />';
function file_get_html($url, $use_include_path = false, $context=null, $offset = -1, $maxLen=-1, $lowercase = true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT)
foreach($html->find(sprintf('#navbar a[href=%s]',$pg)) as $path)
echo 'Path: ' . $path;
$html = file_get_html($path);
foreach($html->find('#testdiv2') as $ret)
echo $ret;
?>
包含一次行是一种特殊的插件格式 - 我将其更改为显示文件的示例路径 - 应该可以通过php读取,对吧?
在定义函数file_get_html时(记得我使用的是简单的HTML DOM解析器):如何为当前页面定义$ url? (我需要自动定义) %s是否意味着'以'结尾'? (我在我看过的文档中没有看到这一点)
我是否需要在第一个foreach中调用该函数或者为该函数分配$ html? (它是否需要括号或结尾;?)
对于第二个foreach,如果$ html被重新定义,那么它会运行正常吗?
你可以向@Baba解释这些,因为这对我来说都是新的:)
答案 0 :(得分:1)
以下不是包含文件的有效方法
include_once '%resource(simple_html_dom.php)%';
应该是
include_once __DIR__.'/simple_html_dom.php';
file_get_html
期望至少有一个参数$url
function file_get_html($url, $use_include_path = false, $context=null, $offset = -1, $maxLen=-1, $lowercase = true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT)
我也想相信你的发现应该看起来像这样
foreach($html->find(sprintf('#navbar a[href=%s]',$pg)) as $path)