Ответ 1
Вы пробовали "буферизацию вывода"?
<?php
...
ob_start();
?>
<html>
<head>...</head>
<body>...<?php echo $another_variable ?></body>
</html>
<?php
$variable = ob_get_clean();
...
?>
Я новичок в 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();
...
?>
Я думаю, вы хотите heredoc синтаксис.
Например:
$var = <<<HTML
<html>
<head>
random crap here
</html>
HTML;
Я не уверен, что вы пытаетесь выполнить, но я думаю, что что-то вроде синтаксис heredoc может быть вам полезна
<?
$variable = <<< MYSTRING
<html>
<head>...</head>
<body>...</body>
</html>
MYSTRING;
Однако, если вы пытаетесь создать HTML-шаблоны, я настоятельно рекомендую вам создать настоящий механизм шаблонов, например Smarty, Dwoo или Savant.
Хорошо, что вы хотите сделать, возможно в моде.
Вы не можете просто назначить блок HTML переменной php или сделать это с помощью функции. Однако есть несколько способов получить желаемый результат.
Одна из проблем, которые у вас есть, - это то, что любой 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.
Я всегда рекомендую ИЗБЕЖАТЬ буферных функций (таких как ob_start
или т.д.) Всякий раз, когда у вас есть альтернатива (потому что иногда они могут конфликтовать с частями в одной системе).
function Show_My_Html()
{ ?>
<html>
<head></head>
<body>
...
</body>
</html>
<?php
}
...
//then you can output anywhere
Show_My_Html();
$html_content = '
<p class="yourcssclass">Your HTML Code inside apostraphes</p>
';
echo $html_content;
Его ДЕЙСТВИТЕЛЬНО CRAZY, но имейте в виду, что если вы это сделаете:
<?php echo ""; ?>
Вы получите его:
<html><head></head><body></body></html>
Сохраняйте спокойствие, его единственный php пытается превратить вас в сумасшедшего.