私はphpに慣れていないので、次のようなことができるかどうか疑問に思っています。
<?php
...
magicFunctionStart();
?>
<html>
<head>...</head>
<body>...</body>
</html>
<?php
$variable = magicFunctionEnd();
...
?>
私が今使用しなければならないのは
<?php
...
$variable = "<html><head>...</head><body>...</body></html>"
?>
これは煩わしく読みにくいものです。
「出力バッファリング」を試しましたか?
<?php
...
ob_start();
?>
<html>
<head>...</head>
<body>...<?php echo $another_variable ?></body>
</html>
<?php
$variable = ob_get_clean();
...
?>
OKあなたがやりたいことはファッションで可能です。
HTMLのブロックを単純にphp変数に割り当てたり、関数で割り当てることはできません。ただし、希望する結果を得るにはいくつかの方法があります。
あなたが抱えている問題の1つは、ページにあるすべてのHTMLがすぐにクライアントに送信されることです。これは、PHPで変数として使用できないことを意味します。ただし、関数ob_startおよびob_end_fushを使用すると、必要な機能を実現できます。
例えば
<?php
somesetupcode();
ob_start(); ?>
<html>
<body>
html text
</body>
</html>
<?php
//This will assign everything that has been output since call to ob_start to your variable.
$myHTML = ob_get_contents() ;
ob_end_flush();
?>
これが、php docsの output buffers を読み取るのに役立つことを願っています。
私は常に[〜#〜] avoid [〜#〜]バッファ関数(ob_start
、またはその他)代替がある場合は常に(同じシステム内の部品と競合する場合があるため)。
function Show_My_Html()
{ ?>
<html>
<head></head>
<body>
...
</body>
</html>
<?php
}
...
//then you can output anywhere
Show_My_Html();