2012-06-17 52 views
1

所以我需要动态地添加使用PHP的HTML内容,这不是棘手的部分,但我试图把HTML放在文档中的不同位置比PHP是正在运行。因此,例如:使用PHP将HTML元素添加到当前页面

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

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

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

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

+0

为什么你要这么做?在其他DIV内部移动代码有什么问题? – Cranio

回答

3

您可以打开/关闭“块” PHP的,无论你在你的HTML喜欢

<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

为什么不干脆将相关代码移到正确的地方?

<div id="firstDiv"> 
    <?php 
     echo "<div id=\"firstDivA\"></div>"; 
    ?> 
</div> 
<div id="secondDiv"> 
    <?php 
     echo "<div id=\"secondDivA\"></div>"; 
    ?> 
</div> 
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> 

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

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对你有好处。

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 
相关问题