首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检测GeSHi代码

检测GeSHi代码
EN

Stack Overflow用户
提问于 2013-01-20 18:45:28
回答 2查看 222关注 0票数 0

我正在用PHP + MySQL从头开始写一个博客,在那里我有时会为教程张贴一行PHP代码等等。因此,我在我的项目中安装了GeSHi类。但是,由于我将以正常的文本格式编写博客/文章,我将编写一些教程,如:

下面是一些PHP代码: code=php /code

它将以文本格式存储在我的MySQL DB上,那么我如何设置PHP以便识别代码并使用GeSHi类来解析它呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-20 18:59:19

Yo可以通过简单的定期替换做到这一点。

代码语言:javascript
运行
复制
function code($match) {
    $geshi = new GeSHi($match[2], $match[1]);
    return $geshi->parse_code();
}
$html = preg_replace_callback('~\[code=(.+?)\](.+?)\[\/code\]~is', 'code', $text);
票数 1
EN

Stack Overflow用户

发布于 2013-01-20 19:00:36

有两种方式:

最简单但更糟的:

代码语言:javascript
运行
复制
preg_replace_callback('#\[code=([a-zA-Z]+)](.+)\[/code]#sU',function($matches){
    $geshi = new GeShi($matches[1]);
     return $geshi->parse($matches[2]);
    },
 $text    );

有点困难,但相当有效率,而且很好斗:

http://php.net/manual/fr/book.bbcode.php

代码语言:javascript
运行
复制
$bbcodeContainer = bbcode_create(array(
''=>         array('type'=>BBCODE_TYPE_ROOT,  'childs'=>'!i'),
'i'=>        array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<i>',
                'close_tag'=>'</i>', 'childs'=>'b'),
'url'=>      array('type'=>BBCODE_TYPE_OPTARG,
                'open_tag'=>'<a href="{PARAM}">', 'close_tag'=>'</a>',
                'default_arg'=>'{CONTENT}',
                'childs'=>'b,i'),
'img'=>      array('type'=>BBCODE_TYPE_NOARG,
                'open_tag'=>'<img src="', 'close_tag'=>'" />',
                'childs'=>''),
'b'=>        array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<b>',
                'close_tag'=>'</b>'),
 ));

bbcode_add_element($bbcodeContainer,'code',array('type'=>BBCODE_TYPE_OPTARG,
         'open_tag'=>'<div class="code">','close_tag'=>'</div>',
         'content_handling'=>function($content,$params){
                $geshi = new GeShi($params[0]);
                return $geshi->parse($content);   
            }));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14427931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档