当前位置: 首页>>代码示例>>PHP>>正文


PHP Engine::highlightSyntax方法代码示例

本文整理汇总了PHP中Engine::highlightSyntax方法的典型用法代码示例。如果您正苦于以下问题:PHP Engine::highlightSyntax方法的具体用法?PHP Engine::highlightSyntax怎么用?PHP Engine::highlightSyntax使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Engine的用法示例。


在下文中一共展示了Engine::highlightSyntax方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: renderTag

 static function renderTag($input, $params, $parser, $frame)
 {
     global $extr;
     try {
         $darr = array_diff_key($params, self::$allowedAttr);
         if (!empty($darr)) {
             throw new Exception('Engine.php: unknown attribute(s) "' . implode('", "', array_keys($darr)) . '"');
         }
         if (!array_key_exists('output', $params)) {
             $params['output'] = 'text';
         }
         if (!in_array($params['output'], Engine::$allowedOutput)) {
             throw new Exception('Engine.php: unknown value "' . $params['output'] . '" for attribute "output"');
         }
         $wiki = array_key_exists('wiki', $params) || strcmp($params['output'], 'wiki') == 0;
         $sha1 = $extr->hashtxt($extr->R_DTS . $input . serialize($params));
         $name = array_key_exists('name', $params) ? $params['name'] : (array_key_exists('label', $params) ? $params['label'] : $sha1);
         $direct = !array_key_exists('iframe', $params);
         if ($wiki && (!$direct || array_key_exists('echo', $params))) {
             throw new Exception('Engine.php: You can not use output="wiki" and use "echo" or "iframe"');
         }
         $params['geshi'] = $extr->options['usegeshi'] && array_key_exists('echo', $params) && strcmp($params['echo'], 'nogeshi');
         $workhorse = array_key_exists('engine', $params) ? Engine::engineIndex($params['engine']) : 0;
         Engine::check($extr->engine[$workhorse]->banned, $input);
         $params['engine'] = $extr->engine[$workhorse]->name;
         $params['sha1'] = $sha1;
         $params['input'] = trim($input);
         if (array_key_exists('name', $params) && !$direct) {
             $params['name'] = rawurlencode($parser->getTitle() . '_' . $params['name']);
             file_put_contents(R_DIR . $params['name'] . '.param', serialize($params));
         }
         $fn = $extr->engine[$workhorse]->render($params);
         if (array_key_exists('iframe', $params)) {
             $iframe = Engine::makeStyle($params['iframe'], array('width' => '100%', 'height' => '250px'));
             $ret = '<iframe name="' . $name . '" style="' . $iframe . '" src="' . $extr->engine[$workhorse]->url($fn) . '">Sorry, your browser does not support &lt;iframe...&gt;... &lt;/iframe&gt; !</iframe>';
         } else {
             $ret = file_get_contents($fn);
         }
         if ($wiki) {
             $ret = $parser->recursiveTagParse($ret, $frame);
         }
         $category = array_key_exists('category', $params) ? $params['category'] : $extr->engine[$workhorse]->category;
         if (!empty($category)) {
             $ret .= $parser->recursiveTagParse(sprintf('[[Category:%s]]', $category), $frame);
         }
         if ($extr->engine[$workhorse]->security > 0) {
             Engine::checkJavaScriptAndPHP($extr->engine[$workhorse], $ret);
         }
         if ($params['geshi']) {
             $ret = Engine::highlightSyntax($extr->engine[$workhorse]->lang, $ret, $parser, $frame);
         }
         return $ret;
     } catch (Exception $e) {
         $extr->exception_log($e);
         return '<pre style="color:red">' . htmlentities($e->getMessage()) . '</pre>in<pre>' . htmlentities($input) . '</pre>';
     }
 }
开发者ID:sigbertklinke,项目名称:R,代码行数:57,代码来源:Engine.php


注:本文中的Engine::highlightSyntax方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。