-
26-09-2019 - |
题
我试着去获得称作GeSHi工作与降价。
一个简单使用用于隔世如下:
$geshi = new GeSHi($message, 'c');
print $geshi->parse_code();
上面的代码发生在整个消息的并将其变为突出显示的代码
我也有减价功能
print Markdown($message);
我是想对返回值使用回拨功能preg_match
从降价返回<pre>
标签和运行geshi->parse_code();
功能
下面是我的代码
print preg_replace_callback(
'/<pre.*?>(.*?[<pre.*?>.*<\/pre>]*)<\/pre>/gism',
create_function(
// single quotes are essential here,
// or alternative escape all $ as \$
'$matches',
'$geshi = new GeSHi($matches[0], \'php\'); return $geshi->parse_code()'
),
Markdown($blog_res['message']));
我是在正确的轨道?
是我的正则表达式吧?它适用于 http://gskinner.com/RegExr/
感谢您的帮助
解决方案 2
它是正则表达式:(
,而不是
/<pre.*?>(.*?[<pre.*?>.*<\/pre>]*)<\/pre>/gism
使用(删除全局标志)
/<pre.*?>(.*?[<pre.*?>.*<\/pre>]*)<\/pre>/ism
但是,如果你使用的是降价,你要记住,以弥补code
块是在thier自己因此,你需要更换只在<pre><code>...MyCode</code></pre>
的格式,并留下了Hello <code>MyCode</code>
因此,您需要满足以下条件的那些
'/<pre.*?><code.*?>(.*?[<pre.*?><code.*?>.*<\/code><\/pre>]*)<\/code><\/pre>/ism',
其他提示
以供将来参考,你可能想看看我的插件这样的:
https://github.com/drm/Markdown_Geshi
它是基于常规的降价插件添加标记有认领到亮点代码块,如下所示:
#!php
<?php print('This is PHP code'); ?>
作品非常好,我经常用它在自己的博客。
我明白你[被]寻求扩展降价,添加了对称作GeSHi语法高亮支持。 美化做到这一点,更。例如,它可以呈现在 DOT 的曲线图。
美化在这“围栏”到称作GeSHi码块不同的方式从 DRM / Markdown_Geshi 的被使用。例如:
~~~ php
<?php print('This is PHP code'); ?>
~~~
我不知道是否美化约为回来时,这个问题是积极的,但在回答中似乎值得一提。
不隶属于 StackOverflow