Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Экранизация ковычек 
V
    Опции темы
animegirl
Дата 29.7.2011, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Незнайка на Марсе
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 24.7.2011

Репутация: нет
Всего: нет



Есть задача, надо взять ХТМЛ код из файла, и передать его яваскрипту, в ХТМЛ коде весь джентльменский набор спецзнаков, но вот проблема, в каком-то месте проставляются \ перед двойными кавычками, думала, что это "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']));


Как бы подправить по правильному?


--------------------
Скажи миру - НЯ!
PM   Вверх
animegirl
Дата 29.7.2011, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Незнайка на Марсе
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 24.7.2011

Репутация: нет
Всего: нет



Код

$response['menu_innerhtml'] = stripslashes(file_get_contents('html.container'));


результат тот же самый

Это сообщение отредактировал(а) animegirl - 29.7.2011, 20:57


--------------------
Скажи миру - НЯ!
PM   Вверх
Evghenusi
Дата 29.7.2011, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 6
Всего: 15



ЭКРАНИЗА'ЦИЯ, и, мн. нет, ж. (нов. кино).
Приспособление чего-н. для показывания в кинематографе, на экране.

Экранирование символов — замена в тексте управляющих символов на соответствующие текстовые подстановки.
PM WWW   Вверх
animegirl
Дата 29.7.2011, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Незнайка на Марсе
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 24.7.2011

Репутация: нет
Всего: нет



Evghenusi, грамматический ошиблась, забываю русский, бывает, а по теме можно помочь?


--------------------
Скажи миру - НЯ!
PM   Вверх
Evghenusi
Дата 29.7.2011, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 6
Всего: 15



1) грамматически правильно.
2) по теме хз, может stripslashes() ?



можете прикрепить файл? поиграюсь с ним)

Это сообщение отредактировал(а) Evghenusi - 29.7.2011, 23:04
PM WWW   Вверх
SelenIT
Дата 30.7.2011, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Никогда не пользовался json_encode, но, судя по второму примеру из мануала, она-то слеши и добавляет. Попробуйте с опциями поиграть, в частности, JSON_HEX_QUOT...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
animegirl
Дата 30.7.2011, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Незнайка на Марсе
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 24.7.2011

Репутация: нет
Всего: нет



Цитата(Evghenusi @  29.7.2011,  22:54 Найти цитируемый пост)
2) по теме хз, может stripslashes() ?

Смотрите мой второй пост
Цитата(SelenIT @  30.7.2011,  00:03 Найти цитируемый пост)
Никогда не пользовался json_encode, но, судя по второму примеру из мануала, она-то слеши и добавляет. Попробуйте с опциями поиграть, в частности, JSON_HEX_QUOT...

ПХП версия 5.2.4, поднять не получилось, всё сломала, всё переустанавливала :(


--------------------
Скажи миру - НЯ!
PM   Вверх
animegirl
Дата 30.7.2011, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Незнайка на Марсе
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 24.7.2011

Репутация: нет
Всего: нет



Нашла примерно место, на которое выпадает ошибка, в ХТМЛ файле, есть такое:
Код

<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']));
        }
)();



--------------------
Скажи миру - НЯ!
PM   Вверх
нуп
Дата 30.7.2011, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



Покажите что заносится в  $response.
PM MAIL   Вверх
animegirl
Дата 30.7.2011, 03:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Незнайка на Марсе
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 24.7.2011

Репутация: нет
Всего: нет



нуп, Сверху же написала код ХТМЛ, вот такое и заношу
Код

<div class="button" onclick="somefunc('value',10);">
    Data
</div

Ну и другие две переменные, всё сверху, в приведённом коде


--------------------
Скажи миру - НЯ!
PM   Вверх
Evghenusi
Дата 30.7.2011, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 6
Всего: 15



так JSON хранит данные в двойных кавычках, никак иначе.
Цитата
{"menu_innerhtml":"<div class=\"button\" onclick=\"somefunc('value',10);\">\r\n    Data\r\n<\/div>"}

бэкслэши надо убирать при - >
Код
document.getElementById(data['parent_div_name']).innerHTML = data['menu_innerhtml'];


а вы пытались убрать бэксэши (во втором посте) ещё до того как они появились

Это сообщение отредактировал(а) Evghenusi - 30.7.2011, 10:44
PM WWW   Вверх
animegirl
Дата 30.7.2011, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Незнайка на Марсе
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 24.7.2011

Репутация: нет
Всего: нет



Evghenusi, Ну двойные кавычки он сам экранирует, одиночные str_replace начала использовать, проблема происходит в момент прогона функцией eval.  Либо я не так, что-то делаю, можете готовых код выложить в виде примера, чтоб я поняла, свою ошибку? Спасибо.


--------------------
Скажи миру - НЯ!
PM   Вверх
нуп
Дата 30.7.2011, 11:34 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



Код

<?
$a = array();
$a['aaa'] = '<div class="button" onclick="somefunc(\'value\',10);">Data</div>';
$a['bbb'] = '<div class="button"></div>';
$str = json_encode($a);
echo 'var data = ' .$str .';';
?>
alert(data.aaa);



Это сообщение отредактировал(а) нуп - 30.7.2011, 11:45
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1930 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.