2

所以我需要使用 php 动态添加 html 内容,这不是棘手的部分,但我试图将 HTML 放入文档中与运行 PHP 的位置不同的位置。例如:

<div id="firstDiv">
    <?php
        echo "<div id=\"firstDivA\"></div>";
        echo "<div id=\"secondDivA\"></div>";
    ?>
</div>
<div id="secondDiv">
</div>

但我希望能够使用在“firstDiv”中执行的 PHP 将一些 HTML 放置在“secondDiv”中。最终结果应该是:

<div id="firstDiv">
    <div id="firstDivA"></div>
</div>
<div id="secondDiv">
    <div id="secondDivA"></div>
</div>

但我不知道该怎么做。我阅读了 PHP 5 中的一些 DOM 内容,但找不到有关修改当前文档的任何内容。

4

5 回答 5

4

您可以在 HTML 中的任意位置打开/关闭 PHP 的“块”

<div id="firstDiv">
    <?php echo '<div id="firstDivA"></div>'; ?>
</div>
<div id="secondDiv">
    <?php echo '<div id="secondDivA"></div>'; ?>
</div>

如有必要,您还可以使用ob_start()ob_get_clean()捕获输出:

<?php
$separator = "\n";

ob_start();
echo '<div id="firstDivA"></div>' . $separator;
echo '<div id="secondDivA"></div>' . $separator;
$content = ob_get_clean();

$sections = explode($separator, $content);
?>
<div id="firstDiv">
    <?php echo $sections[0]; ?>
</div>
<div id="secondDiv">
    <?php echo $sections[1]; ?>
</div>
于 2012-06-17T23:57:55.083 回答
1

为什么不把相关代码移到正确的地方呢?

<div id="firstDiv"> 
    <?php 
        echo "<div id=\"firstDivA\"></div>"; 
    ?> 
</div> 
<div id="secondDiv"> 
    <?php 
        echo "<div id=\"secondDivA\"></div>"; 
    ?> 
</div> 
于 2012-06-17T23:58:25.657 回答
1

.php文件是连续的,因此如果您有两个单独<?php ?>的标签,它们将能够共享相同的变量。

 <div id="firstDiv">
 <?php
    echo "<div id=\"firstDivA\"></div>";
    $div2  = "<div id=\"secondDivA\"></div>";
 ?>
 </div>
 <div id="secondDiv">
    <?php echo $div2 ?>
 </div>

这将产生预期的效果。(演示变量的使用)

于 2012-06-18T00:00:07.130 回答
0

我不确定你在问什么。也许只是在第二个 div 中添加一个 echo 语句。

<div id="firstDiv">
    <?php echo "<div id=\"firstDivA\"></div>"; ?>
</div>
<div id="secondDiv">
    <?php echo "<div id=\"secondDivA\"></div>"; ?>
</div>

或者你的意思是你想在 PHP 之后进行 DIV 更改?试试 jQuery!或者你的意思是你想在 PHP 完成之前进行 DIV 更改?也许 phpQuery 对你有好处。

于 2012-06-18T00:00:15.997 回答
0

如果您想使用 XML 数据(阅读 XHTML),您宁愿使用适当的 XML 处理器。

DomCrawler非常适合与 DOM 一起工作。它与本机 DOM 扩展一起工作,因此快速且广泛使用。

这是文档中有关如何添加内容的示例:

  $crawler = new Crawler();
  $crawler->addHtmlContent('<html><div class="foo"></div></html>');

  $crawler->filter('div')->attr('class') // returns foo
于 2012-06-18T00:02:07.847 回答