- preg_quote: documentation ( source)
- preg_replace: documentation ( source)
<?php
$ldq = preg_quote('{', '~');
$rdq = preg_quote('}', '~');
$search = "~{$ldq}\*(.*?)\*{$rdq}|{$ldq}\s*literal\s*{$rdq}(.*?){$ldq}\s*/literal\s*{$rdq}|{$ldq}\s*php\s*{$rdq}(.*?){$ldq}\s*/php\s*{$rdq}~s";
$source_content = '{literal}<script type="javascript">alert(\'foo\');</script>{/literal}';
$source_content = preg_replace($search.'e', "'"
. $this->_quote_replace($this->left_delimiter) . 'php'
. "' . str_repeat(\"\n\", substr_count('\\0', \"\n\")) .'"
. $this->_quote_replace($this->right_delimiter)
. "'"
, $source_content);
echo $source_content;