js中怎么使用php代码高亮,推荐Discuz!5的PHP代码高亮显示与实现可运行代码 | 学步园...

discuz!5.0论坛显示风格的php代码高亮显示插件,

把php代码进行语法着色,喜欢PHP的同志可以轻松的看代码啦。

同时添加了html代码运行功能。

此插件是在以前某位同志发布的Discuz!4的php代码高亮显示基础之上修改完成。

另外,本人的php学习进入了停滞状态,

希望有人能帮助我走出php的学习困境

My QQ:5642382 我的QQ群:2577162

功能:发贴时使用[php]php代码[/php]标记来高亮显示php代码,

使用[runcode]Html代码[/runcode]标记来运行HTML代码(在客户端运行非服务器)。

插件添加步骤如下:

1.修改include/common.js

查找

复制代码 代码如下:

function copycode(obj) {

var rng = document.body.createTextRange();

rng.moveToElementText(obj);

rng.scrollIntoView();

rng.select();

rng.execCommand("Copy");

rng.collapse(false);

}

在这个函数结束的下面添加:

复制代码 代码如下:

function runCode(obj) {

var winname = window.open('', "_blank", '');

winname.document.open('text/html', 'replace');

winname.document.writeln(obj.value);

winname.document.close();

}

function saveCode(obj) {

var winname = window.open('', '_blank', 'top=10000');

winname.document.open('text/html', 'replace');

winname.document.writeln(obj.value);

winname.document.execCommand('saveas','','code.htm');

winname.close();

}

2.修改include/discuzcode.func.php

查找

复制代码 代码如下:

$discuzcodes['codecount']++;

return "[\tDISCUZ_CODE_$discuzcodes[pcodecount]\t]";

}

(注:也可以用Editplus直接查找到代码的第110行来进行下面的添加)

在下面继续添加:

复制代码 代码如下:

//------- 添加 [runcode] Html代码 [/runcode] 来运行Html代码

function runcodedisp($code) {

global $discuzcodes;

$discuzcodes['pcodecount']++;

$code = htmlspecialchars(str_replace('\\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code)));

$discuzcodes['codehtml'][$discuzcodes['pcodecount']] = "

$code 提示:您可以先修改部分代码再运行

";

$discuzcodes['codecount']++;

return "[\tDISCUZ_CODE_$discuzcodes[pcodecount]\t]";

}

//------- 添加 [php] php代码 [/php] 来高亮显示php代码,进行php语法着色

function phpcodedisp($code) {

global $discuzcodes;

$discuzcodes['pcodecount']++;

$code = phphighlite(str_replace("\\\"", "\"", $code));

$discuzcodes['codehtml'][$discuzcodes['pcodecount']] = "

PHP代码如下:
$code

";

$discuzcodes['codecount']++;

return "[\tDISCUZ_CODE_$discuzcodes[pcodecount]\t]";

}

function phphighlite($code) {

if(!strpos($code,"\n") && !strpos($code,'') && substr($code,0,2) != '') {

$code = '';

$addedtags = 1;

}

ob_start();

$oldlevel = error_reporting(0);

highlight_string($code);

error_reporting($oldlevel);

$buffer = ob_get_contents();

ob_end_clean();

if ($addedtags) {

$openingpos = strpos($buffer, '');

$closingpos = strrpos($buffer, '?');

$buffer = substr($buffer, 0, $openingpos).substr($buffer, $openingpos+5, $closingpos-($openingpos+5)).substr($buffer, $closingpos+5);

}

$buffer = str_replace('"', "\"", $buffer);

$buffer = str_replace('
', '', $buffer);

return $buffer;

}

//------- 结束

3.继续修改include/discuzcode.func.php

查找

复制代码 代码如下:

$message = preg_replace("/\s*\[code\](.+?)\[\/code\]\s*/ies", "codedisp('\\1')", $message);

在其下面继续添加:

复制代码 代码如下:

//------- runcode

$message = preg_replace("/\s*\[runcode\](.+?)\[\/runcode\]\s*/ies", "runcodedisp('\\1')", $message);

//------- php

$message = preg_replace("/\s*\[php\](.+?)\[\/php\]\s*/ies", "phpcodedisp('\\1')", $message);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值