функция трансляции в мнемоники - символы \" и \'

iNTa

Новичок
функция трансляции в мнемоники - символы \" и \'

Всем привет.

такая проблема...
использую htmlspecialchars(), она транслирует в мнемоники все символы, которые она "знает"

но у меня ситуация, когда надо отраслировать только символы " и '
при этом, чтобы она не транслировала эти символы в ссылках <a href=""></a>

как быть?
 

iNTa

Новичок
Вообщем у меня праблема такая

С формачек добавляю данные в БАзу...

щас делаю функциию редактирования того, что добавлял...
она возвращается обратно в Формачки (при вызове странички редактирования)

и если в тексте пристутсвовали символ " или '
-- ТЕКСТ "С кавычками"
то
<input type="text" name="xz" value="ТЕКСТ "С кавычками"
">
в итоге выводится... в инпуте - "ТЕКСТ " остальное пропадает...

ну я теперь при добавление - транслирую эти кавычки в мнемоники HTML
 

sage

Новичок
При выводе:
<input type="text" name="xz" value=
PHP:
<?=htmlspecialchars($val, ENT_QUOTES) ?>
>
 

iNTa

Новичок
да, но при обновление... туда закачиваются - уже мнемоники HTML
 

iNTa

Новичок
причем тут БД?
кавычки заэкранированны у меня...

экранирование кавычек не помогает в ХТМЛ..
 

sage

Новичок
сдаётся мне, что ты перед добавлением делаешь htmlspecialchars. или я ошибаюсь?
 

iNTa

Новичок
нет...

всмысле... я использую htmlspecialchars теперь перед добавление... но при выводе уже не использую...

но это порадило проблему со ссылками... они не становятся ссылками - а просто пишется код ссылки... да и с другими тегами так...

может составить регулярное выражение какое-либо, которое не трогало бы кавычки в тегах, а остальные кавчки - мнемонизировала ? только я слаб в регулярных выражениях.. как бы это сделать?
 

iNTa

Новичок
ну написал я наооборот!

сматри...
теперь текст отранслировался...нажимаю кнопку обновить и базу попадает уже мнемоники ХТМЛ...

придется.. обратно мнемоники в сиволы...

в мануале есть прием инверсии

PHP:
<?php
function unhtmlentities ($string)
{
	$trans_tbl = get_html_translation_table (HTML_ENTITIES);
	$trans_tbl = array_flip ($trans_tbl);
	return strtr ($string, $trans_tbl);
}
?>
но это так нудно... так как придется инвертировать, да потом добавлять слеши и.т.д

такая ситуация я думаю встречается у всех.. кто делал новостные скрипты и т.д.

может у вас есть свои библиотеки или приемы..?
 

Фанат

oncle terrible
Команда форума
придется инвертировать, да потом добавлять слеши и.т.д
верно. придется
такая ситуация я думаю встречается у всех..
нет. только у тех, кто сначала делает, а потом думает.
может у вас есть свои библиотеки или приемы..?
есть. по сылке, которую тебе дали выше

вопросы?
 
Сверху