0

我正在慢慢尝试使用Simple HTML DOM Parser从页面中提取一些 html 并将 html 代码插入当前页面。(我是 PHP 新手)

在示例中,一个人将只输入页面名称,如 c.html。我需要 php 在当前页面中查看: div navbar a href 以 $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;
?>
  • include once 行是一种特殊的插件格式 - 我将其更改为显示文件的示例路径 - php 应该可以读取,对吧?

  • 在定义函数 file_get_html 时(记住我使用的是简单的 HTML DOM 解析器):如何为当前页面定义 $url?(我需要自动定义) %s 是否意味着“以”结尾?(我在查看的文档中没有看到)

  • 我是否需要在第一个 foreach 中调用该函数或将 $html 分配给该函数?(它需要括号还是结尾;?)

  • 对于第二个 foreach,如果 $html 被重新定义,那么它会运行吗?

你能向我解释这些@Baba,因为这对我来说是全新的:)

4

1 回答 1

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)
于 2012-10-13T18:01:10.797 回答