2014-02-06 33 views
-1

我想知道是否有類似以下內容的可能嗎?作爲字符串的PHP html

<?php $html_string = ?> 
    <div> 
     some html 
    </div> 
<?php ; 
echo $html_string; 
?> 

也就是說,PHP可以「接收」下面的HTML並將它分配給一個變量嗎?

是否這樣?

$html_string = '<div>somehtml</div>'; 
echo $html_string; 

或者你可以在HTML存儲在它自己的文件,並與file_get_contents()加載它。

$html_string = file_get_contents("myhtml.html"); 

或者與輸出緩衝:

ob_start(); 
include "myhtml.html"; 
$html_string = ob_get_contents(); 
ob_end_clean(); 
+0

你要問,如果有可能或爲什麼可能? –

+0

我想知道爲什麼,如果可能的話,你會想。只需製作一個字符串並打印出來。 –

+0

我在問怎麼可能,上面的代碼是錯誤的。 – Benedictus

回答

1

你描述的語法是無效的,因爲PHP在這種情況下會自動添加一個;?>之前,使代碼爲:$html_string = ;

一種選擇是使用輸出緩衝:

<?php ob_start() ?> 
    <div> 
     some html 
    </div> 
<?php 
$html_string = ob_get_clean(); 
echo $html_string; 
?> 

另一個辦法是使用匿名函數,在這種情況下,;未插入:

<?php $html_string = function() { ?> 
    <div> 
     some html 
    </div> 
<?php 
}; 
$html_string(); 
?> 
+0

就是這樣!很好的答案 – Benedictus

1
+0

不,我發佈的時尚。 – Benedictus

+0

@Benedictus您不能將文本存儲在像這樣的變量中。 – Marty

+0

mok,這就是我要求的部分 – Benedictus

2

如果你正在尋找一個 「易」 多行字符串賦值方法,有HEREDOC S:

<?php 

$html = <<<EOL 
blah blah 
blah blah 
blah blah 
EOL; 
3

看一看Heredoc

<?php 
$str = <<<EOF 
    <p>My</p> 
    <p>HTML</p> 
    <p>HTML</p> 
EOF; 

echo $str; 
?>