Марк Б дал лучший ответ. Используйте json_encode: http://php.net/manual/en/function.json-encode.php Иди, проголосуй за его ответ.
Вот мой первоначальный ответ:
<?php
$data = "Hello, 'world'.\nHow are you doing?\n\"Good?\"\n";
$data = str_replace("\n", '<br>', $data);
$data = str_replace('"', '\"', $data);
$data = str_replace("'", "\'", $data);
echo $data;
?>
То же самое, используя регулярное выражение:
<?php
$data = "Hello, 'world'.\nHow are you doing?\n\"Good?\"\n";
$data = preg_replace("/\n/", '<br>', $data);
$data = preg_replace("/\"|'/", '\"', $data);
echo $data;
?>
Приведя эти примеры, вам на самом деле не нужно избегать ни одинарных, ни двойных кавычек. В JavaScript вы можете использовать как строки в двойных кавычках, так и строки в одинарных кавычках. Итак, используйте одно и избегайте другого.
Возможно, вы захотите избежать обратной косой черты (замените \
на \\
), чтобы убедиться, что какой-то забавный загрузчик YouTube не пытается сломать ваш PHP-скрипт, поместив foo\'bar
в описании видео. Теперь это может сломать ваш скрипт, если вы не избежите обратной косой черты, потому что строка JavaScript после замены теперь будет выглядеть так: 'foo\\'bar'
, что является синтаксической ошибкой, поскольку строка заканчивается на 'foo\\'
.