php 下面的函数怎么改?
程序员文章站
2024-01-08 10:14:34
...
protected function doCodeBlocks($text)
{
#
# Process Markdown `` blocks.
#
preg_match('/\{\{\{/i', $text, $_m_c_open);
preg_match('/\}\}\}/i', $text, $_m_c_close);
if (count($_m_c_open) == count($_m_c_close))
{
$text = preg_replace_callback('/\{\{\{[ \n]*(.*?)\}\}\}/is', array(
&$this,
'_doCodeBlocks_callback'
), $text);
}
return $text;
}
protected function _doCodeBlocks_callback($matches) {
$codeblock = $matches[1];
$codeblock = $this->outdent($codeblock);
$codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES);
# trim leading newlines and trailing newlines
$codeblock = preg_replace('/\A\n+|\n+\z/', '', $codeblock);
$codeblock = str_replace(array(
'&',
"\t",
' '
), array(
'&',
' ',
' '
), $codeblock);
$codeblock = "$codeblock\n
";
return $this->hashBlock($codeblock);
}
这第一个个函数中的参数$text是markdown格式文章中的代码内容,markdown 格式的内容是这种形式的
{{{ 代码 }}}
如果markdown格式的代码块是这种形式的 {{{javascript: 代码}}}
我想把javascript:
用变量$lang_code的形式提交给$codeblock里面,之后返回下面的html内容:
$codeblock = "$codeblock\n
";
回复内容:
protected function doCodeBlocks($text)
{
#
# Process Markdown `` blocks.
#
preg_match('/\{\{\{/i', $text, $_m_c_open);
preg_match('/\}\}\}/i', $text, $_m_c_close);
if (count($_m_c_open) == count($_m_c_close))
{
$text = preg_replace_callback('/\{\{\{[ \n]*(.*?)\}\}\}/is', array(
&$this,
'_doCodeBlocks_callback'
), $text);
}
return $text;
}
protected function _doCodeBlocks_callback($matches) {
$codeblock = $matches[1];
$codeblock = $this->outdent($codeblock);
$codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES);
# trim leading newlines and trailing newlines
$codeblock = preg_replace('/\A\n+|\n+\z/', '', $codeblock);
$codeblock = str_replace(array(
'&',
"\t",
' '
), array(
'&',
' ',
' '
), $codeblock);
$codeblock = "$codeblock\n
";
return $this->hashBlock($codeblock);
}
这第一个个函数中的参数$text是markdown格式文章中的代码内容,markdown 格式的内容是这种形式的
{{{ 代码 }}}
如果markdown格式的代码块是这种形式的 {{{javascript: 代码}}}
我想把javascript:
用变量$lang_code的形式提交给$codeblock里面,之后返回下面的html内容:
$codeblock = "$codeblock\n
";
在这个后面
# trim leading newlines and trailing newlines
$codeblock = preg_replace('/\A\n+|\n+\z/', '', $codeblock);
加上下面这两行试试:
$lang_pos = strpos($codeblock,":");
$lang_code_pre = substr($codeblock, 3,$lang_pos - 3);
switch ($lang_code_pre) {
case 'php':
$lang_code = "php";
break;
case 'javascript':
$lang_code = "javascript";
break;
default:
$lang_code = "default value";
break;
}
推荐阅读
-
此函数是PHP中哪方面的学问,其功能是何
-
PHP中的函数在哪里能看到 想研究一下函数的底层实现
-
php imagettftext()函数里面的x、y参数分别是什么?
-
php mysql有关问题 数据库连接成功执行析构函数后 后面的代码不执行什么原因
-
php下实现在指定目录搜索指定类型文件的函数_php技巧
-
MYSQL里有没有像PHP里面的explode函数解决方法
-
UTF-8与GBK编码下PHP获取字符串长度的函数
-
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect: hy000/1040:
-
php策略模式的有关问题~下~多谢 帮改下下面的代码
-
分享经常用到的21个PHP函数代码段(下)(1)