So I translated the Util.pm encode_php function to a PHP equivalent.
/php/lib/modifier.encode_php.php
Before:
CODE
<?php
function smarty_modifier_encode_php($text, $type) {
// TODO: needs work
return addslashes($text);
}
?>
After:function smarty_modifier_encode_php($text, $type) {
// TODO: needs work
return addslashes($text);
}
?>
CODE
<?php
function smarty_modifier_encode_php($text, $type) {
switch ($type) {
case 'qq':
$out = encode_phphere($text);
$out = str_replace('"','\"',$out);
break;
case 'here':
$out = encode_phphere($text);
break;
default: // 'q'
$out = str_replace("\\","\\\\",$text);
$out = str_replace("'","\\'",$out);
break;
}
return $out;
}
function encode_phphere($text) {
$out = str_replace("\\","\\\\",$text);
$out = str_replace('$','\$',$out);
$out = str_replace("\n",'\n',$out);
$out = str_replace("\r",'\r',$out);
$out = str_replace("\t",'\t',$out);
return $out;
}
?>
function smarty_modifier_encode_php($text, $type) {
switch ($type) {
case 'qq':
$out = encode_phphere($text);
$out = str_replace('"','\"',$out);
break;
case 'here':
$out = encode_phphere($text);
break;
default: // 'q'
$out = str_replace("\\","\\\\",$text);
$out = str_replace("'","\\'",$out);
break;
}
return $out;
}
function encode_phphere($text) {
$out = str_replace("\\","\\\\",$text);
$out = str_replace('$','\$',$out);
$out = str_replace("\n",'\n',$out);
$out = str_replace("\r",'\r',$out);
$out = str_replace("\t",'\t',$out);
return $out;
}
?>