HTML в переменную PHP (HTML вне кода PHP)
Я новичок в php и задаюсь вопросом, Могу ли я иметь что-то вроде этого:
<?php
...
magicFunctionStart();
?>
<html>
<head>...</head>
<body>...</body>
</html>
<?php
$variable = magicFunctionEnd();
...
?>
то, что я должен использовать прямо сейчас, это
<?php
...
$variable = "<html><head>...</head><body>...</body></html>"
?>
что раздражает и не читается.
6 ответов
вы пробовали "буферизация вывода"?
<?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, я бы настоятельно рекомендовал вам получить настоящий механизм шаблонов, например умница, Dwoo или Савант.
Ok то, что вы хотите сделать, возможно в некотором роде.
вы не можете просто назначить блок 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.
Я всегда рекомендую избежать функции буфера (например,ob_start
или и т. д.), Когда у вас есть альтернатива (потому что иногда они могут конфликтовать с частями в одной системе).
я использую:
function Show_My_Html(){ ?>
<html>
<head></head>
<body>
...
</body>
</html>
<?php
}
//output anywhere
Show_My_Html();
его действительно сумасшедший, но имейте в виду, что если вы это сделаете:
<?php echo ""; ?>
вы получите:
<html><head></head><body></body></html>
сохраняйте спокойствие, его только php пытается свести вас с ума.