MatrixGod
21.06.2013 - 12:19
всем привет!
кто подскажет как правильней всего запихивать живой текст в бд?
у меня есть живой текст - с кавычками, скобками, процентами и прочими элементами обычного текста.
уже запутался с html_entity_decode и mysql_real_escape_string.
на выходе (на странице) получается бог знает что. то есть кавычки, то нету, то есть но текст между ними пропадает... короче глюки.
в общем, как лучше?
всем спасибо!
Игорь_Vasinsky
21.06.2013 - 12:25
в БД mysql_real_escape_string().
из БД htmlspecialchars()
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
MatrixGod
21.06.2013 - 12:33
Игорь_Vasinsky,
ок. а если мой текст изначально идет с хтмл энтитями, тоесть так:
"вася" пупкин
то, что вы посоветовали выше, тоже нормально будет?
exotica
21.06.2013 - 12:35
да
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Michael
21.06.2013 - 12:39
Цитата (MatrixGod @ 21.06.2013 - 10:33) |
Игорь_Vasinsky, ок. а если мой текст изначально идет с хтмл энтитями, тоесть так:
"вася" пупкин
то, что вы посоветовали выше, тоже нормально будет? |
нет, это искаженный текст, его надо декодировать (htmlspecialchars_decode ) перед сохранением в базу.
_____________
There never was a struggle in the soul of a good man that was not hard
MatrixGod
21.06.2013 - 12:44
в этом и проблема! у меня текст может быть разный и по разному оформленный.
есть ли какой-то универсальный способ это сделать? что я сделал и забыл.
а то если завтра появится какой-то новый "edge case" - мне придется и для него голову ломать.
Michael
21.06.2013 - 12:55
Я говорил про формат вывода текста, "как он есть", вывода с помощью htmlspecialchars.
Все зависит откуда ты этот текст берешь, так и обрабатывай. Мало ли что с ним там могло произойти и как тебе его надо вывести.
_____________
There never was a struggle in the soul of a good man that was not hard
exotica
21.06.2013 - 13:27
а как вы это хотите увидеть в браузере?
как
"вася" или как
"вася"htmlspecialchars() выведет вам "вася" именно так - "вася"
а если вы просто выведите этот текст в браузер вы получите "вася"
Если в БД все по разному лежит, то приведите все к единообразию допустим так
$streng1 =str_replace('"' '/"' $string);
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Игорь_Vasinsky
21.06.2013 - 13:30
Цитата |
а если мой текст изначально идет с хтмл энтитями |
если в в БД хранить & - Это 1 символ
а если как & - 5 символов
нафига тебе такое надо?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
MatrixGod
21.06.2013 - 14:16
ребята,
давайте по порядку.
первым делом обрабатываю текст с помощью html_entity_decode - как я понял это конвертирует всевозможные энтити в обычные чары, если таковы имеются (и пофиг есть они в строке или нет). ибо в некоторых строках они могут быть, в некоторых нет. поправьте меня если ошибаюсь.
далее, запихиваю это дело в бд.
тут у меня вопрос. какая разница между mysql_real_escape_string и htmlspecialchars? - как я понимаю обе эти функции мне подходят. поправьте меня если ошибаюсь. так какой же все таки лучше пользоваться?
(все что мне важно что чтоб не испортить исходной текст и конечно же не схавать ошибок).
ну и конечно же, вывод на страницу.
на странице естественно надо чтоб все выглядело как в книге (читабельно и понятно) - тоесть обычные чары а не их энтити.
так?
glock18
21.06.2013 - 14:24
Да они одинаковы абсолютно. Я, например, ими обеими быструю сортировку массива делаю и спайдеров пишу в пару строк.
On a serious note though:
http://www.php.net/manual/ru/function.mysq...cape-string.php http://www.php.net/manual/ru/function.htmlspecialchars.php
MatrixGod
21.06.2013 - 14:27
glock18,
я читал мануалы...
все же, какую юзать?
и правильно ли я собрался действовать чтоб нормально уложить текст в бд, чтоб небыло проблем с его выводом?
Игорь_Vasinsky
21.06.2013 - 14:29
В бд текст в оригинале, но после mysql_real_escape_string()
при выводе htmlspecialchar()
мне ещё раз написать это?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
glock18
21.06.2013 - 14:31
Цитата (MatrixGod @ 21.06.2013 - 10:27) |
glock18, я читал мануалы... все же, какую юзать? |
то есть, у вас проблемы с пониманием? если английский не понимаете, то там есть селект языка на нужный.
Игорь_Vasinsky
21.06.2013 - 14:34
Цитата |
то там есть селект языка на нужный. |
на венгерском вполне доступно написано.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.