Экранирование кавычек
Есть задача, надо взять ХТМЛ код из файла, и передать его яваскрипту, в ХТМЛ коде весь джентльменский набор спецзнаков, но вот проблема, в каком-то месте проставляются \ перед двойными кавычками, думала, что это "magic_quotes_gpc", глянула phpinfo включены гады, отключила, но они продолжают добавляться, и как назло ТОЛЬКО перед ", если бы так же другие знаки экранизировались, было бы всё ок, но тут проблема в том, что мне надо экранизировать самой всё, а там получается уже начатая, но не законченная работа.
Вот код: <? header("Content-Type: application/x-javascript"); $response = array(); $response['datadiv'] = $_GET['divid']; $response['menu_innerhtml'] = file_get_contents('html.container'); $response['parent_div_name'] = 'div123'; $jsondata = json_encode($response); ?> var data = eval('(<?echo $jsondata;?>)'); document.getElementById(data['parent_div_name']).innerHTML = data['menu_innerhtml']; document.getElementById('dynamic_data').removeChild(document.getElementById(data['datadiv'])); Как бы подправить по правильному? $response['menu_innerhtml'] = stripslashes(file_get_contents('html.container')); результат даёт тот же самый Нашла примерно место, на которое выпадает ошибка, в ХТМЛ файле, есть такое: <div class="button" onclick="somefunc('value',10);"> Data </div> Если убрать двойные кавычки, то всё норм, но их использование есть и будет, так как нужно, вопрос в том, как обработать строку так, чтоб перестала выскакивать ошибка? Общию картину чуток исправила, добавила экранирование одиночной кавычки <? header("Content-Type: application/x-javascript"); $response = array(); $response['datadiv'] = $_GET['divid']; $response['menu_innerhtml'] = file_get_contents('html.container'); $response['parent_div_name'] = 'div123'; $jsondata = json_encode($response); ?> ( function() { var data = eval('(<?echo str_replace("'","\'",$jsondata);?>)'); document.getElementById(data['parent_div_name']).innerHTML = data['menu_innerhtml']; document.getElementById('dynamic_data').removeChild(document.getElementById(data['datadiv'])); } )(); |
Часовой пояс GMT +3, время: 14:54. |