我需要做一个简单的正则表达式查找并用PHP替换我的语法高亮脚本。
我需要获取一串代码,这些代码实际上是一个整个php文件,读入这样的字符串。
$code_string = 'the whole source code of a php file will be held in this string';
然后找到所有这些并发生替换...
查找: [php] 并替换为 <pre class="brush: php;">
查找: [/ php] 并替换为 </pre>
查找 [javascript] 并替换为 <pre class="brush: js;">
查找: [/ javascript] 并替换为 </pre>
我真的不喜欢正则表达式,有人可以帮我这个吗?
答案 0 :(得分:4)
要替换字符串中的字符串,您只需str_replace();
。如果我正确理解你的问题,它将看起来像这样:
$code_string = htmlentities(file_get_contents("file.php"));
$old = array("[php]","[javascript]","[/php]","[/javascript]");
$new = array('<pre class="brush: php;">','<pre class="brush: js;">','</pre>','</pre>');
$new_code_string = str_replace($old,$new,$code_string);
echo $new_code_string;
答案 1 :(得分:0)
$out = preg_replace(
array(
'/\<\?(php)?(.*)\?\>/s',
'/\<script(.*) type\=\"text\/javascript\"(.*)\>(.+)\<\/script\>/s'
),
array(
'<pre class="brush: php;">$2</pre>',
'<pre class="brush: js;">$3</pre>'
),
$code
);
将替换open和close标签中的任何PHP源(短和长),将用至少一个字符替换脚本标记内的任何JS源(将避免链接到javascript源文件的脚本标记)。