我試圖插入一個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