предотвратить php от удаления обратной косой черты из вывода - PullRequest
0 голосов
/ 13 декабря 2011

На моем сайте у меня есть 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?

1 Ответ

1 голос
/ 13 декабря 2011

Вы можете использовать синтаксис nowdoc (требуется PHP 5.3.0):

$string = <<<'EOD'
var  escapeable = /["\\\x00-\x1f\x7f-\x9f]/g,
EOD;
...