2013-01-01 40 views
-2

我無法將heredoc語句從一個php文件回顯到另一個文件中。我有一個腳本用於檢索API數據庫信息,然後將該信息格式化爲heredoc以將信息回顯到index.php頁面。我有代碼是:PHP:echo heredoc from other script

while($artist_info = $artist_details_resource->fetch_assoc()){ 
    $artist = <<<DOC 
      <img src="{$artist_info['image_url']}" alt="$artist_info['artist_name']" /> 
      <p>{$artist_name}</p> 
DOC; 
} 

而在index.php文件腳本中,我開始我想這個定界符打印的地方PHP的條款。該代碼是:

<?php 
    if($artist){ 
    echo $artist; 
    } 
?> 

然而,這只是從while循環打印最終定界符字符串,而不是呼應了每次迭代的每個定界符。

+0

你嘗試從同一個劇本打印出來? –

+0

是即使在相同的腳本它只打印最後一個元素 – Human

+0

是不是這個herodoc缺少結束DOC –

回答

2

爲什麼呢?你沒有在循環中回顯它,也沒有連接字符串。每次迭代都會覆蓋字符串。

while($artist_info = $artist_details_resource->fetch_assoc()){ 
    $artist .= <<<DOC 
      <img src="{$artist_info['image_url']}" alt="$artist_info['artist_name']" /> 
      <p>{$artist_name}</p> 
} 

注意.=

1

當然,這僅打印最後一個字符串,因爲你用$artist = <<<DOC讓你在每一個循環覆蓋$藝術家變量的值。

嘗試$artist .= <<<DOC或放入數組:$artists[] = <<<DOC