home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / Servidores / xampp-win32-1.6.7-installer.exe / php / PEAR / Text / Highlighter / Renderer / JSON.php < prev    next >
Encoding:
PHP Script  |  2008-07-02  |  2.3 KB  |  86 lines

  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
  3. /**
  4.  * JSON renderer.
  5.  *
  6.  * Based on the HTML renderer by Andrey Demenev.
  7.  *
  8.  * LICENSE: This source file is subject to version 3.0 of the PHP license
  9.  * that is available through the world-wide-web at the following URI:
  10.  * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
  11.  * the PHP License and are unable to obtain it through the web, please
  12.  * send a note to license@php.net so we can mail you a copy immediately.
  13.  *
  14.  * @category   Text
  15.  * @package    Text_Highlighter
  16.  * @author     Stoyan Stefanov <ssttoo@gmail.com>
  17.  * @copyright  2006 Stoyan Stefanov
  18.  * @license    http://www.php.net/license/3_0.txt  PHP License
  19.  * @version    CVS: $Id: JSON.php,v 1.1 2007/06/03 02:37:09 ssttoo Exp $
  20.  * @link       http://pear.php.net/package/Text_Highlighter
  21.  */
  22.  
  23. /**
  24.  * @ignore
  25.  */
  26.  
  27. require_once 'Text/Highlighter/Renderer.php';
  28. require_once 'Text/Highlighter/Renderer/Array.php';
  29.  
  30. /**
  31.  * JSON renderer, based on Andrey Demenev's HTML renderer.
  32.  *
  33.  * @author     Stoyan Stefanov <ssttoo@gmail.com>
  34.  * @category   Text
  35.  * @package    Text_Highlighter
  36.  * @copyright  2006 Stoyan Stefanov
  37.  * @license    http://www.php.net/license/3_0.txt  PHP License
  38.  * @version    Release: 0.5.0
  39.  * @link       http://pear.php.net/package/Text_Highlighter
  40.  */
  41.  
  42. class Text_Highlighter_Renderer_JSON extends Text_Highlighter_Renderer_Array
  43. {
  44.  
  45.     /**
  46.      * Signals that no more tokens are available
  47.      *
  48.      * @abstract
  49.      * @access public
  50.      */
  51.     function finalize()
  52.     {
  53.  
  54.         parent::finalize();
  55.         $output = parent::getOutput();
  56.  
  57.         $json_array = array();
  58.  
  59.         foreach ($output AS $token) {
  60.  
  61.             if ($this->_enumerated) {
  62.                 $json_array[] = '["' . $token[0] . '","' . $token[1] . '"]';
  63.             } else {
  64.                 $key = key($token);
  65.                 $json_array[] = '{"class": "' . $key . '","content":"' . $token[$key] . '"}';
  66.             }
  67.  
  68.         }
  69.  
  70.         $this->_output  = '['. implode(',', $json_array) .']';
  71.         $this->_output = str_replace("\n", '\n', $this->_output);
  72.  
  73.     }
  74.  
  75.  
  76. }
  77.  
  78. /*
  79.  * Local variables:
  80.  * tab-width: 4
  81.  * c-basic-offset: 4
  82.  * c-hanging-comment-ender-p: nil
  83.  * End:
  84.  */
  85.  
  86. ?>