rem - sintaxis de codigo php
HTML en Variable PHP(HTML fuera del código PHP) (7)
¿Has probado el "buffering de salida"?
<?php
...
ob_start();
?>
<html>
<head>...</head>
<body>...<?php echo $another_variable ?></body>
</html>
<?php
$variable = ob_get_clean();
...
?>
Soy nuevo en PHP y me pregunto si puedo tener algo como esto:
<?php
...
magicFunctionStart();
?>
<html>
<head>...</head>
<body>...</body>
</html>
<?php
$variable = magicFunctionEnd();
...
?>
Lo que tengo que usar en este momento es
<?php
...
$variable = "<html><head>...</head><body>...</body></html>"
?>
Lo cual es molesto y no legible.
Creo que quieres sintaxis heredoc .
Por ejemplo:
$var = <<<HTML
<html>
<head>
random crap here
</html>
HTML;
Es REALMENTE LOCO pero ten en cuenta que si lo haces:
<?php echo ""; ?>
Lo conseguiras:
<html><head></head><body></body></html>
Mantén la calma, solo php intenta volverte loco.
No estoy realmente seguro de lo que está intentando lograr, pero creo que algo como la heredoc podría ser útil para usted:
<?
$variable = <<< MYSTRING
<html>
<head>...</head>
<body>...</body>
</html>
MYSTRING;
Sin embargo, si está intentando crear plantillas HTML, le recomendaría encarecidamente que obtenga un motor de plantilla real, como Smarty , Dwoo o Savant .
Ok, lo que quieres hacer es posible de una manera.
No puede simplemente asignar un bloque de HTML a una variable php o hacerlo con una función. Sin embargo, hay varias formas de obtener el resultado que deseas.
- Investigue el uso de un motor de plantillas (le sugiero que haga esto ya que vale la pena de todos modos). Yo uso Smarty , pero hay muchos otros
- El segundo es utilizar un búfer de salida.
Uno de los problemas que tiene es que cualquier HTML que tenga en su página se envía inmediatamente al cliente, lo que significa que no se puede utilizar como una variable en php. Sin embargo, si usa las funciones ob_start y ob_end_fush, puede lograr lo que desea.
p.ej
<?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();
?>
Espero que esto te ayude a leer los buffers de salida en documentos php.
Siempre recomiendo EVITAR funciones de búfer (como ob_start
, etc.) siempre que tenga una alternativa (porque a veces pueden entrar en conflicto con partes del mismo sistema).
Yo suelo:
function Show_My_Html(){ ?>
<html>
<head></head>
<body>
...
</body>
</html>
<?php
}
//output anywhere
Show_My_Html();
$html_content = ''
<p class="yourcssclass">Your HTML Code inside apostraphes</p>
'';
echo $html_content;