На моем сайте у меня есть PHP-скрипт, который принимает несколько исходных файлов (HTML, CSS и javascript), оптимизирует их, встраивает их в страницу и кэширует их (в основном, компилируя мой сайт).Недавно я добавил jquery-json (плагин jQuery для кодирования JSON в строки), но часть кода содержит несколько слешей (используется в некотором виде регулярного выражения):
var escapeable = /["\\\x00-\x1f\x7f-\x9f]/g,
Когда эта строка обрабатывается сценарием, который я упоминал ранее, одна из обратных косых черт удаляется и приводит к:
var escapeable = /["\\x00-\x1f\x7f-\x9f]/g,
Кроме того, я настроил короткий сценарий, чтобы убедиться, что проблема не вызваначто-то в том, что javascript обрабатывается PHP-скриптом, и что на самом деле это проблема с тем, как PHP выводит его:
<?php
$string = 'var escapeable = /["\\\x00-\x1f\x7f-\x9f]/g,';
echo($string); //this outputs: var escapeable = /["\\x00-\x1f\x7f-\x9f]/g,
?>
Как вы можете видеть из комментария, проблематоже самое в простом скрипте ...
Я не уверен, что это уместно, но я проверил, чтобы убедиться, что магические кавычки отключены.Кроме того, я знаю, что слово «escapeable» написано с ошибкой, но именно так оно и есть в исходном коде jquery-json.
Итак, как я могу предотвратить удаление обратной косой черты из вывода PHP?