|
Size: | 11524 |
Storage flags: | no_autoload,compress/gzip (29%) |
This guide to get you started with ZendMarkup uses the BBCode parser and HTML renderer. The principles discussed can be adapted to other parsers and renderers.
Basic ZendMarkup Usage
We will first instantiate a Zend\Markup\Renderer\Html class using the Zend\Markup\Markup::factory() method. This will also create a Zend\Markup\Parser\Bbcode object which will be added to the renderer object.
After that, we will use the render() method to convert a piece of BBCode to HTML.
1 2 3 4 5 6 | // Creates instance of Zend\Markup\Renderer\Html,
// with Zend\Markup\Parser\BbCode as its parser
$bbcode = Zend\Markup\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>'
|
A more complicated example of ZendMarkup
This time, we will do exactly the same as above, but with more complicated BBCode markup.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $bbcode = Zend\Markup\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>
*/
|
Processing incorrect input
Besides simply parsing and rendering markup such as BBCode, ZendMarkup is also able to handle incorrect input. Most BBCode processors are not able to render all input to XHTML valid output. ZendMarkup corrects input that is nested incorrectly, and also closes tags that were not closed:
1 2 3 4 5 6 | $bbcode = Zend\Markup\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, ZendMarkup renders it correctly as:
// some <em>wrong <strong>sample </strong></em><strong> text</strong>
|
The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.