Probablemente el error más grave es que haces
siempre lo mismo: no buscas alternativas.
Si
lees el tema de nuevo descubrirás que ahí se exponen alternativas para tratar con combinaciones más complicadas, ejemplo:
Código PHP:
Ver original$foo = 'BAR';
$js_code = <<<'MY_JS'
// aquí no se pueden usar variables, por el estilo de HEREDOC
$('.selector').click(function() {
alert('yaaaay!');
});
MY_JS;
// o mejor aún, que el código esté en otro archivo:
// $js_code = file_get_contents('my_script.js');
$html = <<<MY_MARKUP
Aquí puedo colocar cualquier tipo de HTML, con comillas y no habrá ningún problema.
Tampoco hace falta escapar las comillas pues ya se hace de manera automática.
Otra ventaja es poder utilizar variables (sólo variables) aquí: $foo
O hasta incluir otro código externo:
<script>$js_code</script>
MY_MARKUP;
$html .= 'algo más de texto/html, etc.';
Al final estás trabajando únicamente con código Javascript/HTML, que al final es sólo texto y nada más, ¿dónde está la complicación?