Подтвердить что ты не робот

HTML в PHP Variable (HTML вне PHP-кода)

Я новичок в php и задаюсь вопросом, могу ли я иметь что-то вроде этого:

<?php
 ...
 magicFunctionStart();
?>

<html>
   <head>...</head>
   <body>...</body>
</html>

<?php
 $variable = magicFunctionEnd();
 ...
?>

То, что я должен использовать прямо сейчас, это

<?php
 ...
 $variable = "<html><head>...</head><body>...</body></html>"
?>

Это раздражает и не читается.

4b9b3361

Ответ 1

Вы пробовали "буферизацию вывода"?

<?php
 ...
 ob_start();
?>

<html>
   <head>...</head>
   <body>...<?php echo $another_variable ?></body>
</html>

<?php
 $variable = ob_get_clean();
 ...
?>

Ответ 2

Я думаю, вы хотите heredoc синтаксис.

Например:

$var = <<<HTML
<html>
   <head>
random crap here
</html>
HTML;

Ответ 3

Я не уверен, что вы пытаетесь выполнить, но я думаю, что что-то вроде синтаксис heredoc может быть вам полезна

<?
$variable = <<< MYSTRING

<html>
   <head>...</head>
   <body>...</body>
</html>

MYSTRING;

Однако, если вы пытаетесь создать HTML-шаблоны, я настоятельно рекомендую вам создать настоящий механизм шаблонов, например Smarty, Dwoo или Savant.

Ответ 4

Хорошо, что вы хотите сделать, возможно в моде.

Вы не можете просто назначить блок HTML переменной php или сделать это с помощью функции. Однако есть несколько способов получить желаемый результат.

  • Исследуйте использование механизма шаблонов (я предлагаю вам сделать это, поскольку это все равно). Я использую smarty, но есть много других.
  • Второй - использовать выходной буфер.

Одна из проблем, которые у вас есть, - это то, что любой 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.

Ответ 5

Я всегда рекомендую ИЗБЕЖАТЬ буферных функций (таких как ob_start или т.д.) Всякий раз, когда у вас есть альтернатива (потому что иногда они могут конфликтовать с частями в одной системе).

Я использую:

function Show_My_Html()
{ ?> 
    <html>
      <head></head>
      <body>
         ...
      </body>
    </html>
    <?php 
}


...
//then you can output anywhere
Show_My_Html();

Ответ 6

$html_content = '
    <p class="yourcssclass">Your HTML Code inside apostraphes</p>
';
echo $html_content;

Ответ 7

Его ДЕЙСТВИТЕЛЬНО CRAZY, но имейте в виду, что если вы это сделаете:

<?php echo ""; ?>  

Вы получите его:

<html><head></head><body></body></html>  

Сохраняйте спокойствие, его единственный php пытается превратить вас в сумасшедшего.