php 下面的函數怎麼改?

來源:互聯網
上載者:User
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; }
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.