2015-02-08 20 views
0

是否有可能在PHP中使第二個div出現在第一個div裏面而不是獲得兩個分隔的div? 我想做一個PHP DOM系統,但我堅持這個問題。div函數在另一個div函數內

這是HTML我得到的時候頁面就會返回:

<div style="width: 
       50px; 
      height: 
       30px; 
      background-color: 
       yellow; 

       color:white 
      "> 
       blablabla 
</div> 
<div style="width: 
       200px; 
      height: 
       50px; 
      background-color: 
       blue; 

       color:white 
      "> 

</div> 

這是PHP代碼:

<? php 

function genDiv($width, $height, $bgColor, $add, $content) { 
    echo ' 
     <div style=\'width: 
      '.$width.'; 
     height: 
      '.$height.'; 
     background-color: 
      '.$bgColor.'; 

      '.$add.' 
     \'> 
      '.$content.' 
     </div> 
    '; 
} 

$block = genDiv(
    '50px', 
    '30px', 
    'yellow', 
    'color:white', 
    'blablabla' 
); 
genDiv(
    '200px', 
    '50px', 
    'blue', 
    'color:white', 
    $block 
); 

?> 

回答

1

你需要重寫功能,因此它回報的HTML,而不是直接回應出來。

然後,您可以將第二次調用的結果回顯給函數。

+0

非常感謝您的先生! – 2015-02-08 11:29:50

0

您的功能中沒有return,您的echo st。直。

function genDiv($width, $height, $bgColor, $add, $content) { 
    return ' 
     <div style=\'width: 
      '.$width.'; 
     height: 
      '.$height.'; 
     background-color: 
      '.$bgColor.'; 

      '.$add.' 
     \'> 
      '.$content.' 
     </div> 
    '; 
} 

$block = genDiv(
    '50px', 
    '30px', 
    'yellow', 
    'color:white', 
    'blablabla' 
); 
echo genDiv(
    '200px', 
    '50px', 
    'blue', 
    'color:white', 
    $block 
); 
0

您也可以使用雙引號而不是單引號。

我用這段代碼得到了所需的輸出。

<?php 
function genDiv($width,$height,$bgcolor,$add,$content) 
{ 
    return "<div style='width $width; height:$height; 
    background-color: $bgcolor; $add'> 
    $content 
    </div>"; 
} 
$block = genDiv('50px','30px','orange','color:white','blablabla'); 
$content = genDiv('200px','50px','blue','color:white;padding-top:20px', $block); 
echo $content; //required output. second div in first div 
?> 

我改變了黃色,並添加了填充以獲得清晰的可視性。

+0

您的要求是否達到 – Akilsree1 2015-02-19 18:29:52