我试图插入一个PHP的EOT字符串到一个JS代码,我需要编码它,因为它有一些\n
在里面。我不能用简单的jsonencode
来做,因为它返回的代码是"
,我不需要它们。编码从PHP到JavaScript的字符串返回错误
所以,我想这两个方法,两者均返回一个错误:
<?php
$string = $v['survey'];
function escapeJavaScriptText($string)
{
return str_replace("\n", '\n', str_replace('"', '\"', addcslashes(str_replace("\r", '', (string)$string), "\0..\37'\\")));
}
?>
<?php echo escapeJavaScriptText(); ?>
我也试过:
<?php
$string = $v['survey'];
function javascript_escape($string) {
$new_str = '';
$str_len = strlen($string);
for($i = 0; $i < $str_len; $i++) {
$new_str .= '\\x' . sprintf('%02x', ord(substr($string, $i, 1)));
}
return $new_str;
}
?>
<?php echo javascript_escape(); ?>
都返回: Missing argument 1 for escapeJavaScriptText()
和Undefined variable: string in
但<?php echo $string; ?>
返回的代码我需要(只是没有编码)。
我错过了什么?
''没有传入'$ string',所以函数中的'$ string'是未定义的/超出范围。要么'<?php echo javascript_escape($ string); ?>'或'function javascript_escape(){global $ string;' –
chris85
哦,我真的错过了!它现在的作品,但它似乎并没有解决我的问题与JavaScript编码... http://采取。ms/57aXU – Ricardo
我通过替换'str_replace('''''''''''str_replace(''','''''。 谢谢! – Ricardo