TigerZF
🌐Español

46.2. Primeros pasos con Zend_Markup

Esta guía para comenzar con Zend_Markup utiliza el analizador BBCode y el renderizador HTML. Los principios tratados pueden adaptarse a otros analizadores y renderizadores.

Ejemplo 46.1. Uso básico de Zend_Markup

Primero instanciaremos un objeto Zend_Markup_Renderer_Html utilizando el método Zend_Markup::factory(). Esto también creará un objeto Zend_Markup_Parser_Bbcode que se añadirá al objeto renderizador.

Después de eso, utilizaremos el método render() para convertir un fragmento de BBCode a HTML.

// Creates instance of Zend_Markup_Renderer_Html,
// with Zend_Markup_Parser_BbCode as its parser
$bbcode = Zend_Markup::factory('Bbcode');

echo $bbcode->render('[b]bold text[/b] and [i]cursive text[/i]');
// Outputs: '<strong>bold text</strong> and <em>cursive text</em>'

Ejemplo 46.2. Un ejemplo más complicado de Zend_Markup

Esta vez, haremos exactamente lo mismo que arriba, pero con un marcado BBCode más complicado.

$bbcode = Zend_Markup::factory('Bbcode');

$input = <<<EOT
[list]
[*]Zend Framework
[*]Foobar
[/list]
EOT;

echo $bbcode->render($input);
/*
Should output something like:
<ul>
<li>Zend Framework</li>
<li>Foobar</li>
</ul>
*/

Ejemplo 46.3. Procesamiento de entradas incorrectas

Además de simplemente analizar y renderizar marcado como BBCode, Zend_Markup también es capaz de manejar entradas incorrectas. La mayoría de los procesadores de BBCode no son capaces de renderizar toda la entrada como salida XHTML válida. Zend_Markup corrige entradas anidadas incorrectamente, y también cierra etiquetas que no se cerraron:

$bbcode = Zend_Markup::factory('Bbcode');

echo $bbcode->render('some [i]wrong [b]sample [/i] text');
// Note that the '[b]' tag is never closed, and is also incorrectly
// nested; regardless, Zend_Markup renders it correctly as:
// some <em>wrong <strong>sample </strong></em><strong> text</strong>