Forum Webscript.Ru
Программирование => PHP => Тема начата: Vetroff от 21 Июня 2003, 16:35:32
-
как лучше всего подготовить текст для бд, кроме добавления слэшей, обрезания лишних пробелов по концам и стрипа хтмл, - что еще посоветуете сделать?
-
Загрузить его наконец в БД :)
-
Vetroff
В принципе, перечисленого тобой вполне хватит.
Хотя если текст очень здоровый, а места под БД отведено мало, то можешь сжать его gzip\'ом.
Правда тут ты должен определить, что для тебя важнее: экономия места или производительность.
Хотя это уже отдельная тема...
-
для БД из всего перечисленного нужно только одно - добавить слеши.
И то - ТОЛЬКО в том случае, если РНР не добавил сам.
Базе абсолютно по барабану твои пробелы и хтмл.
Учись правильно формулировать свои вопросы. тогда ответ и сам найдешь найдешь и отвечающим будет легче.
-
имхо имеет смысл еще проверять длинну текста (через strlen()) а в остальном RomikChef прав (ИМХО)
-
RomikChef:
Базе абсолютно по барабану твои пробелы и хтмл
Именно, но текст в базе для чего-то нужен (например для вывода в броузере), поэтому от пробелов надо избавляться, делать это либо при вводе, либо при выводе, обычно делают при вводе, вот он такой вопрос и задал.
-
Yukko
мальчик, у тебя с головой совсем плохо.
Учи логику, хотя бы житейскую.
Макс
Без ответа на вопрос, ДЛЯ ЧЕГО это нужно, все комментарии бессмысленны.
Как раз для базы проверять длину не надо - она сама все отрежет.
А для вывода - надо знать, куда он пойдет.
понимаешь? можно миллион действий с текстом сделать. на другой язык перевести. по емейлу отправить, вырезать каждое второе слово, а остальные покрасить в зеленый цвет.
но прежде, чем делать, надо знать - ДЛЯ ЧЕГО
Все что я хочу от человека - это чтобы он научился формулировать для себя свои задачи. Это очень помогает в программировании. И именно этого не хватает нашему другу Yukko
даже для вывода в веб есть миллион разных вариантов.
Есть люди, которым можно постить хтмл, а есть - которым нельзя. И этот статус может меняться.
-
Как раз для базы проверять длину не надо - она сама все отрежет.
все верно. Но не ты ли говорил, что нужно бережно относится к данным юзера и без лишней надобности не вносить в них лишних автоматических изменений ? :)
Пусть лучше юзер сам удалит лишний текст.
Хотя вообщем-то ты конечно прав: прежде, чем делать, надо знать - ДЛЯ ЧЕГО
-
Макс
Полностью согласен, кроме одного:
Пусть лучше юзер сам удалит лишний текст.
Если только этот лишний текст не пара пробелов или переносов строки в самом конце.
-
FreeSpace
ну пробелы, ну переносы.
и что с того?
-
Xander
Ну если будет пара переносов, а при выводе юзается nl2br, то можно, например, некрасиво растянуть новость и т.п.
-
в общем это нюансы.
-
Xander
Согласен, но от trim()\'a хуже никому не будет (если это конечно обычный текст, а не какие-то строго форматированные данные).
-
Вообщем, сколько людей столько и мнений, кто-то предпочитает форматить при вводе, кто-то при выводе, это уж действительно смотря ДЛЯ ЧЕГО делается
Подводя итог, можно сказать, что как минимум addslaches и trim при воде простого текста, а все остальное лучше делать при выводе...
-
FreeSpace
Если только этот лишний текст не пара пробелов или переносов строки в самом конце.
у меня на это своя проверка:
if (preg_match("~\\\\S{30,}~", $text)) {
$errors[\'text\'] = "Извините, но вы не можете использовать в тексте слова, длиннее 30 символов";
} :)
-
Макс
у меня на это своя проверка:
if (preg_match("~S{30,}~", $text)) {
___$errors[\'text\'] = "Извините, но вы не можете использовать в тексте слова, длиннее 30 символов";
}
вот за это решение - огромное спасибо!!!
Это действительно проблема - но мне никогда не приходило в голову решить ее так!!!!
Спасибо!!
-
Vetroff
if (preg_match("~S{30,}~", $text)) {
там форум слеш съел перед S
Должно быть :
if (preg_match("~\\S{30,}~", $text)) {
-
RomikChef:
Yukko
мальчик, у тебя с головой совсем плохо.
Учи логику, хотя бы житейскую.
Не хами! Используй более уважительную лексику при обращении к людям с которыми общаешься! Потому что я могу ответить в твоем же стиле: научись быть вежливым, хотя бы на этом форуме!!! а то получается, что на весь форум про РНР только у одного тебя есть логика. Вопрос не был задан с конкретной формулировкой задачи, поэтому ответ нельзя оценивать, как объективный для всех случаев. В конце концов от подобного комментария человек воспитанный и умный просто бы отказался, бери пример с Теоретика!!!
-
Vetroff:
Подводя итог, можно сказать, что как минимум addslaches
повторяю.
Только если сам РНР не добавил. Иначе вместо пользы ты получишь вред.
про то - кода что делать, не было написано ни слова. Вообще.
Было написано тольк про то, что надо думать - что ты делаешь.
Вот я, например, как правильно, но не в тему, вспомнил Макс, действительно, очень трепетно отношусь к данным, и стараюсь их без нужды не портить.
Но вот когда пишется простая гостевушка на текстовом файле, я без тени сомнения заеняю переводы строк на
.
Так надо.
потому, что я исхожу не из догмы, а из текущих потребностей.
Надо определиться с потребностями, а потом уже решать, что делать.
Для БАЗЫ, повторюсь, трим не имеет никакого значения.
Ну определись ты - для чего тебе нужно то или иное действие.
Трим ты делаешь чтобы текст не растягивался, а не для базы, понимаешь?
а вот слеши - это именно для базы.
Макс, опять пробел в логике :-)
в данном случае я говорю не о данных, а о базе.
Что ДЛЯ НЕЕ нужно делать, а что - нет.
-
Извините, но вы не можете использовать в тексте слова, длиннее 30 символов
А почему бы не использовать maxlength="..." ?
А если еще поставить счетчик символов на жаваскрипте, то пользователю будет достаточно проще понять сколько символов он может использовать.
-
Michel_Mak:
А почему бы не использовать maxlength="..." ?
А если еще поставить счетчик символов на жаваскрипте, то пользователю будет достаточно проще понять сколько символов он может использовать.
бывают случаи, когда важно не кол-во знаков вообще а именно длина слова, скажем стоит текстовое поле в него надо ввести минимум 300 символов, юзер берет и вводит букву п -300 раз, представляешь как разосрется у тебя текст при выводе из бд, пробелов нет - перенсти нельзя
-
Ветров, а ты ведь так и не сформулировал свои потребности.
Очень жаль.
Очень.
Этим ты бы помог в первую очередь себе.
Прежде, чем напишешь хотя бы строчку кода, надо сначала научиться формулировать - что ты все-таки, хочешь.
Нет, все давно догадались, что пишешь ты обычную гостевую или что-то в этом роде.
Но не стоит расчитывать на телепатические способности участников форума. ДУМАТЬ за тебя все равно никто не будет. Надо учиться самому.
Тогда же ведь и ответ сам найдется - что делать, а что нет.
Надо просто понимать, что делаешь это ты не для базы, а для вывода непроверенной информации в браузер.
-
RomikChef
да нет, ворпос не жизнено важный, просто подумал, может я чего не так делаю, может еще что-нить надо с текстом сделать при загрузке в бд, задача - проста, ввод и вывод литпроизведений
-
Vetroff
Если под литпроизведения на твоем сайте подпадают и стихи, то тут наоборот всё сложнее.
Никаких trim()\'ов уже делать нельзя, потому что многие авторы любят форматировать стихи под собственный стиль, со всякими выравниваниями по правому краю и так далее.
По своему опыту могу сказать, что мне для этих целей хватило разрешить табуляцию (предупредил авторов, что стихи надо вставлять копи-пейстом из Ворда или ещё откуда) и множественные пробелы, хотя можно было добавить ещё , и .
-
Ветров, я говорю не о проблеме твоей.
мне вообще плевать - в базу ты свою литературу помещаешь, вили в мировую энтропию, где ей и место.
Я всего лишь говорил о том, что нужно думать головой.
но, видимсо, это до тебя никогда не дойдет.
На сем попытки прекращаю.
напоследок - анекдот
поставили ученые эксперимент над обезьяной и человеком. посадили каждого из них в отдельную большую закрытую клетку с банановой пальмой. обезьяна прыгнула раз, прыгнула два - не достает. потом нашла палку и стала сбивать бананы палкой...
человек прыгал час, прыгал два - не достает. ученые шепчут ему - человек думай! человек остановился, перевел дух и кричит - чего тут думать? прыгать надо!!!
-
RomikChef:
Ветров, я говорю не о проблеме твоей.
мне вообще плевать - в базу ты свою литературу помещаешь, вили в мировую энтропию, где ей и место.
Я всего лишь говорил о том, что нужно думать головой.
но, видимсо, это до тебя никогда не дойдет.
На сем попытки прекращаю.
что ж так грубо, я уже давно все понял и вообще тему давно пора уже закрыть, сабж исчерпан полностью - начались какие-то гнилые перепалки
-
FreeSpace
множественные пробелы я тоже сделал, а концевые пробелы все же надо обрезать, иногда это становится проблемой
-
http://forums.webscript.ru/showthread.php?s=&threadid=7918