使用PHP将HTML元素添加到当前页面

时间:2012-06-17 23:55:18

标签: php html dom

所以我需要使用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的东西,但是我找不到任何关于修改当前文档的内容。

5 个答案:

答案 0 :(得分:3)

您可以在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>

答案 1 :(得分:1)

为什么不将相关代码移到正确的位置?

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

答案 2 :(得分: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>

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

答案 3 :(得分: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对你有好处。

答案 4 :(得分:0)

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

DomCrawler非常适合使用DOM。它适用于原生DOM扩展,因此可以快速广泛地使用。

以下是doc如何添加内容的示例:

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

  $crawler->filter('div')->attr('class') // returns foo