我正在使用 TinyMCE 和PHP / MySql来处理/存储数据。我之前已多次完成它,但在这一次我想用<pre></pre>
标签编写示例代码块。问题是要编写html代码,我需要替换我想要为<
和>
显示的代码的<
和>
我没有找到配置 TinyMCE 的方法,所以我做了一些js来替换和粘贴我的代码示例:
$("#change").click(function(){
var output = $("#source").val().replace(/</g,"<");
output = output.replace(/>/g,">");
$("#output").val("<pre>"+output+"</pre>");
});
它曾在数据库中插入一次字符串,但我发现当我想要更新它时,在textarea中显示它们后再次更改的实体。因此,要更新到数据库,我需要再次替换字符串的字符。
所以我编写了这个小函数来准备要在PHP中插入数据库的字符串:
function processCode($string_raw,$start,$end) {
if(preg_match_all("/".$start."(.*?)".str_replace("/","\/",$end)."/s",$string_raw,$matches)) {
for($i=0 ; $i<count($matches[0]) ; $i++) {
$processed = htmlentities($matches[1][$i]);
$string_raw = str_replace( $matches[0][$i],
$start.$processed.$end,
$string_raw);
}
}
return $string_raw;
}
它需要一个字符串:
$raw_string = "This code <pre><b>code</b></pre> is mine";
并替换$star
和$end
标记内的实体。
它很棒,插入和更新,但我还是想知道:
PD:如果你想到这个问题的更好的标题,请现在就让我吧:)。
答案 0 :(得分:1)
TinyMCE有一个codesample
插件,专门设计用于允许人们在其内容中插入代码示例:
https://www.tinymce.com/docs/plugins/codesample/
如果您使用此功能,则不需要所有代码来处理粘贴并将其包装在<pre>
标记中。