Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP简单HTML DOM解析器:插入HTML_Php_Dom - Fatal编程技术网

PHP简单HTML DOM解析器:插入HTML

PHP简单HTML DOM解析器:插入HTML,php,dom,Php,Dom,我试图使用从页面B中提取一些html,并将html代码插入当前页面。(请温柔一点,我是PHP新手) 我针对的B页html如下所示: B 我需要在当前页面中插入相同的代码 当前页面上的我的PHP: <?php include_once '%resource(simple_html_dom.php)%'; $ret = Array(); $html = file_get_html('b.html'); $ret[] = $html->find('div[id=testdiv]', 0);

我试图使用从页面B中提取一些html,并将html代码插入当前页面。(请温柔一点,我是PHP新手)

我针对的B页html如下所示:
B

我需要在当前页面中插入相同的代码

当前页面上的我的PHP:

<?php
include_once '%resource(simple_html_dom.php)%';
$ret = Array();
$html = file_get_html('b.html');
$ret[] = $html->find('div[id=testdiv]', 0);
$ret->outertext = $ret->makeup() . $ret->innertext . '</div>';
echo $ret;
?>

我试着拼凑起来,但还是没有运气。我希望在查看当前页面时看到“B”,但我肯定也需要所有html编码;)
当前获取错误“对非对象调用成员函数compose()”

另外,一旦运行起来,我可能需要一种方法来引入B页上的css和js

谢谢你的帮助,比尔

更新代码:

<?php
include_once '%resource(simple_html_dom.php)%';
$html = file_get_html('b.html');
foreach($html->find('div[id=testdiv]') as $ret)
  echo $ret;
?>

所以现在我需要能够从第B页获取指定的css&js文件,以便div中的任何内容都能正确呈现。下面是一个例子,如果您查看页面B的标题,将有一个典型的css和js文件,名为B_files/stacks_Page_page1.css&B_files/stacks_Page_page1.js

这些是我需要在当前页面中引用的文件,并根据需要更改相对路径。我还添加了一个位于文件夹中的页面C(B位于根目录w/当前页面),因此路径将不同。我想将css文件和js文件组合在一起会很好,这样就不会有大量的dom调用

总的来说,将这些文件放入的代码是什么?

您将得到“对非对象的成员函数compose()的调用”,因为$ret是一个数组,没有名为“compose()的方法”

我不确定你到底想做什么,但像这样的事情可能会让你更接近。我假设您有一个名为compose()的函数,它生成一个字符串“
”:

未经测试


该代码存在许多问题
$ret[]
意味着推到数组上,但是下一行调用的是对象方法,这就是为什么会出现错误

一旦该问题得到解决,根据API,
$ret->compose
就不是有效的方法(除非您对其进行了修改/扩展)。我不确定你认为你在用
$ret->outertext=$ret->化妆()做什么$ret->innertext'',但如果您希望输出中出现
B

<?php
include_once 'simple_html_dom.php';
$html = file_get_html('b.html');
$ret = $html->find('div[id=testdiv]', 0);
if ($ret) {
    echo $ret->innertext;
}

结果将是
B
它将在浏览器上显示为

B
如果要显示代码:

foreach($html->find('div[id=testdiv]') as $content)
    echo "<xmp>".$content."</xmp>";
foreach($html->find('div[id=testdiv]')作为$content)
回显“$content.”;
实际结果:
B

然后在浏览器的显示屏上:

<div id="testdiv">B</div>
B

感谢用户使用foreach works。请参阅上面更新的代码和最后的css/js问题。没问题!如果我的答案真的对你有帮助,请投赞成票。:-)显然,我在努力赢得更多的声誉。:-)我对你的答案投了赞成票:)还需要最后一个问题的答案。谢谢,BillI已经阅读了你的css/js问题。你想得到“css”是什么意思?你能举出一个例子吗?请确认,更新问题并给出完整的解释和例子。如果你需要更多信息,请告诉我。是的,我消除了外在/内在的东西。请参阅更新的代码和最后一个问题。谢谢Colin,我在另一篇文章中看到了化妆——我认为这是一个标准的PHP函数——我将消除它。见上面更新的代码和最后一个问题。
foreach($html->find('div[id=testdiv]') as $content)
    echo "<xmp>".$content."</xmp>";
<div id="testdiv">B</div>