Escribí la siguiente función. Reemplaza lo siguiente:
Cita Individual [ '] con tala y comilla simple [\']
barra invertida [\] con dos barras invertidas [\\]
function escapePhpString($target) {
$replacements = array(
"'" => '\\\'',
"\\" => '\\\\'
);
return strtr($target, $replacements);
}
se puede modificar para añadir o eliminar las sustituciones de caracteres en la matriz $ replacements. Por ejemplo, para reemplazar \ r \ n se convierte en "\ r \ n" => "\ r \ n" y "\ n" => "\ n".
/**
* With new line replacements too
*/
function escapePhpString($target) {
$replacements = array(
"'" => '\\\'',
"\\" => '\\\\',
"\r\n" => "\\r\\n",
"\n" => "\\n"
);
return strtr($target, $replacements);
}
La buena característica de strtr es que preferirá reemplazos largos. Ejemplo, "Cool \ r \ nFeature" escapará \ r \ n en lugar de escaparse \ n a lo largo.
Deberá escapar más de comillas simples. Newlines, por ejemplo. Puede que le vaya bien con algo como 'addcslashes ($ mystringWithSingleQuotes," '\ "\ r \ n \\\ t \ 0 .. \ 37") ' –
En lugar de manejar el escape usted mismo, use' json_encode() 'para obtener una cadena de Javascript válida (y elimine las comillas simples externas). – mario
@Frank: ¿Puede publicar su respuesta como respuesta en lugar de como comentario? No se pueden seleccionar las respuestas adecuadas en los comentarios y, por lo tanto, crea preguntas falsas "sin respuesta". – Sylverdrag