- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
<p>8. Создать гостевую книгу, где любой человек может оставить комментарий в текстовом поле и
добавить его. Все добавленные комментарии выводятся над текстовым полем. Реализовать
проверку на наличие в тексте запрещенных слов, матов. При наличии таких слов - выводить
сообщение "Некорректный комментарий". Реализовать удаление из комментария всех тегов,
кроме тега <b>.
</p>
<?php
if (!is_file('otzyvy.txt')) {
echo "Поки що немає відгуків, Ваш буде першим! <br />";
$file = fopen('otzyvy.txt', 'a+');//щоб не генерувало помилку, створюємо файл
}
elseif (isset($_POST['textar']) && $_POST['textar']) {
$file = fopen('otzyvy.txt', 'a+');//дублюємо строку так як тут інша умова
$text = strip_tags($_POST['textar'], '<b>');
$pozition = strpos($text, 'хуй');
$pozition_1 = strpos($text, 'пизд');
if ($pozition || $pozition === 0 || $pozition_1 || $pozition_1 === 0){
die ("Некорректный комментарий");
}
$new_otzyvy = fwrite($file, $text.PHP_EOL);
$arr = file('otzyvy.txt');//перетворюємо файл у масив щоб потім було зручніше виводити його елементи
foreach ($arr as $key => $item) {
$key_1 = $key + 1;//це для візуалбної нумерації відгуків
echo "Відгук {$key_1}: {$item} <br /><br />";
}
}
else {
echo 'Щоб відправити відгук, потрібно заповнити поле форми!!!';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Задача 8</title>
</head>
<body>
<form action="" method="post">
<textarea name="textar" placeholder="Введіть свій коментарій"></textarea>
<br />
<input type="submit" value="Відправити">
</form>
<br />
<br />
</body>
</html>
bot 03.03.2016 00:10 # 0
Arris 03.03.2016 03:54 # 0
Да, можно лучше. И нужно лучше.
Да, профессионал напишет лучше. А новичок - вряд ли.
ЗЫ: Покажи СВОЮ версию решения этой задачи. Покажи код, блять!
nihau 03.03.2016 11:13 # 0
Steve_Brown 03.03.2016 11:11 # +4
CHayT 03.03.2016 13:10 # 0
где получить приз?
inkanus-gray 03.03.2016 14:40 # +5
kegdan 03.03.2016 14:55 # +4
CHayT 03.03.2016 15:46 # +1
это к 3.14дарам
3.14159265 03.03.2016 15:54 # 0
http://govnokod.ru/8258
http://govnokod.ru/8248
http://govnokod.ru/8245
http://govnokod.ru/8153
http://govnokod.ru/8149
http://govnokod.ru/8136
http://govnokod.ru/8128
bormand 03.03.2016 19:41 # +1
inkanus-gray 04.03.2016 17:54 # +2
3_14dar 15.03.2016 23:50 # −1
>3.14159265
Символично.
inkanus-gray 04.03.2016 00:31 # +1
kegdan 04.03.2016 01:10 # 0
guest 04.03.2016 01:20 # +1
kegdan 04.03.2016 01:25 # +1
bee-squid 03.03.2016 18:08 # +1
inkanus-gray 03.03.2016 13:16 # 0
kegdan 03.03.2016 14:33 # 0
inkanus-gray 03.03.2016 14:36 # +2
kegdan 03.03.2016 14:40 # −1
Arris 03.03.2016 17:24 # 0
красивый же язык.
да, то что его используют всякие уроды не делает язык хуже или лучше.
А, ну да, двойные стандарты в русском рунете, я забыл.
Vasiliy 03.03.2016 17:44 # 0
где?
Arris 03.03.2016 18:16 # 0
kegdan 03.03.2016 18:23 # −2
Я надеюсь обойдется без ненависти к японскому
CHayT 03.03.2016 18:52 # +5
kegdan 03.03.2016 18:54 # 0
Arris 03.03.2016 22:58 # −3
Впрочем, я умею пользоваться гуглтранслейтом.
Если твое знание японского сводится только к таким фразам - могу тебе только посочувствовать.
CHayT 03.03.2016 23:06 # +4
въебал минус
guest 04.03.2016 02:00 # +1
1024-- 04.03.2016 17:13 # 0
Вот это - полезное замечание.
inkanus-gray 03.03.2016 22:21 # +1
kgm-rj 04.03.2016 15:30 # 0
kegdan 04.03.2016 15:38 # −1
guest 04.03.2016 15:41 # −1
kgm-rj 04.03.2016 15:54 # 0
3_14dar 04.03.2016 23:09 # 0
kegdan 04.03.2016 23:15 # 0
3_14dar 04.03.2016 23:23 # 0
kegdan 04.03.2016 23:43 # 0
3.14159265 14.03.2016 10:57 # 0
guest 04.03.2016 15:41 # 0
guest 04.03.2016 15:44 # +4
inkanus-gray 04.03.2016 17:57 # 0
https://news.yandex.ua/quotes/3005.html
Доллар падает!
3.14159265 04.03.2016 17:59 # +2
ШОК! ФРС слёзно просит НБУ не обваливать USD.
inkanus-gray 04.03.2016 18:00 # 0
https://news.yandex.ru/quotes/2002.html
P.S. И к евро тоже начал падать. Америку сливают...
kegdan 04.03.2016 18:11 # 0
inkanus-gray 04.03.2016 18:23 # 0
kegdan 04.03.2016 18:26 # 0
bormand 04.03.2016 19:54 # 0
На кол...
kegdan 04.03.2016 20:16 # 0
guest 04.03.2016 23:08 # 0
3.14159265 14.03.2016 11:01 # 0
3_14darПiдарешт
3_14dar 16.03.2016 02:47 # 0
3.14159265 16.03.2016 13:18 # 0
3_14dar 17.03.2016 00:20 # 0
bormand 16.03.2016 00:07 # 0
Оторвали мишке лапу...
Кегги продолжит. Я не поэт, к сожалению.
Kislorod 16.03.2016 00:09 # −1
kegdan 16.03.2016 06:57 # +1
Оторвали мишке лапу
Вырвали глаза и почку
Мишка еретик - и точка...
Dr_Stertor 03.01.2017 21:10 # +1
Охбля. Плагиатствую. Какой-то умник меня опередил.
guest 04.03.2016 23:08 # −2
guest 04.03.2016 23:50 # 0
Vasiliy 14.03.2016 11:04 # −1
3_14dar 14.03.2016 16:34 # +1
3.14159265 16.03.2016 13:18 # +6
3_14dar 17.03.2016 00:19 # −1
3.14159265 03.03.2016 17:43 # 0
3_14dar 14.03.2016 16:35 # 0
guest 15.03.2016 13:50 # 0
3_14dar 15.03.2016 23:48 # 0
inkanus-gray 16.03.2016 11:27 # 0
3.14159265 16.03.2016 13:13 # +5
Перемога - вот, наверное, ключевое понятие, сформированного многими теоретиками украинского триединства(по некоторым данным изображенном на гербе), состоящего из генотьбы-перемоги-пидарешта. По аналогии с гегелевским, оно представляет собой некий антитезис, который нужно преодолеть для попадания в пидарешт. Перемога, как предполагается, составляет львиную долю триединства, так ее преодоление - вопрос тяжелого труда.
Герои - отдельный вопрос вызывают сами герои, которые попадают в пидарешт. У недальновидного теоретика сразу возникнут вопросы: как определять героя, попадают ли беркутовцы в пидарешт, но я не думаю, что это так важно, ведь ответы на этот вопрос можно узнать только в пидареште. Более интересно само понятие героя, отсылающее нас к ницшеанскому сверхчеловеку. Ведь действительно, герои делают историю, но вся их воля направлена не на жизнь, как у Ницше, а на благосостояние Украины. Герой - это ступень внутренней эволюции человека, стоящая над украинцем, который в свою очередь эволюционировал от москаля, последний же близок к обезьяне. Каждый просвещённый человек в Украине стремится стать героем, именно для этого, наверное, и необходима свидомость.
Свидомость - ключевое понятие украинской метафизики, направляющая человека во всех его проявления и ассоциирующая его с украинцем. Я бы назвал ее "Волей к пидарешту". Именно стремление к пидарешту в общеукраинском смысле(к ее благосостоянию) определяет поведение украинского сверхчеловека. Именно свидомость определяет критерии пидарешта в украинском триединстве, определяет законченность перемоги, является околонаучным методом для проверки ее результатов.
3_14dar 17.03.2016 00:22 # 0
roman-kashitsyn 03.01.2017 19:52 # +1
3_14dar 17.03.2016 00:18 # 0
Her 03.03.2016 23:37 # 0
inkanus-gray 03.03.2016 23:55 # 0
P.S. Может только кодировку воспринять не как UTF-8, а как случайную, потому что вывод будет до мета-тега с параметром charset.
Kislorod 16.03.2016 00:05 # 0
guest 03.01.2017 19:25 # −3
Помните, что все представленные в Библиотеке книг онлайн произведения в виде электронных данных являются собственностью автора и представлены исключительно для того, чтобы иметь о них представление
<a href=http://abookz.net/>аудиокниги скачать бесплатно</a>
inkanus-gray 03.01.2017 19:35 # +2
Суррогатные запроÑÑ‹ – Ñто такие поиÑковые запроÑÑ‹, которые имеют нееÑтеÑтвенную Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ Ð·Ñ€ÐµÐ½Ð¸Ñ Ñ€ÑƒÑÑкого Ñзыка Ñловоформу, то еÑÑ‚ÑŒ предÑтавлÑÑŽÑ‚ из ÑÐµÐ±Ñ Ð½Ð°Ð±Ð¾Ñ€Ñ‹ “ключевых Ñловâ€, и зачаÑтую, по мнению пользователÑ, ÑвлÑÑŽÑ‚ÑÑ Ð±Ð¾Ð»ÐµÐµ легкими Ð´Ð»Ñ Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð¸Ñковыми роботами. Именно так пользователи ищут информацию в поиÑковых ÑиÑтемах.
Стандартные запроÑÑ‹ – Ñто те, которые выглÑдÑÑ‚ еÑтеÑтвенно Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ Ð·Ñ€ÐµÐ½Ð¸Ñ Ñ€ÑƒÑÑкого Ñзыка.
Ðти термины Ñ ÑƒÐ·Ð½Ð°Ð» у Ñвоего друга, который работает в нью-йоркÑком Google лингвиÑтом руÑÑкого Ñзыка.
Ð’ обычной жизни никто Ñуррогатные фразы иÑпользовать не будет. Ðе будут же говорить “Я нашел отличное термобелье интернет магазин†🙂 . Ðто уже будет какой-то зацикленный мутант-Ñеошник, говорÑщий на Ñзыке роботов 😉 .
ЕÑтеÑтвенным вариантом Ñтого запроÑа Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ Ð·Ñ€ÐµÐ½Ð¸Ñ Ñ€ÑƒÑÑкого Ñзыка будет не “термобелье интернет магазинâ€, а “интернет-магазин термобельÑâ€.
ИÑточник: http://shakin.ru/seo/mantis-fist-part-2.html
Имею мнение, хрен оÑпоришь, что более еÑтеÑтвенно звучит фраза «Ñкачать беÑплатно аудиокниги». Да и вообще зачем пиÑать «Ñкачать беÑплатно»? Что означает Ñта фраза? Либо пишите «беÑплатные аудиокниги», либо «у Ð½Ð°Ñ Ð¼Ð¾Ð¶Ð½Ð¾ Ñкачать аудиокниги».
bormand 03.01.2017 19:42 # 0
inkanus-gray 03.01.2017 19:43 # 0
roman-kashitsyn 03.01.2017 19:45 # +4
Скачать, сконфигурировать, собрать и запустить под линуксом из-под рута?
defecate-plusplus 03.01.2017 19:47 # +5
roman-kashitsyn 03.01.2017 19:55 # +3
bormand 03.01.2017 19:56 # +2
roman-kashitsyn 03.01.2017 19:57 # +2
Пакеты — это слишком скучно
bormand 03.01.2017 20:07 # 0
Которые на IP уровне? Ну да, скучновато.
roman-kashitsyn 03.01.2017 20:16 # +3
CHayT 03.01.2017 20:25 # +2
bormand 03.01.2017 21:00 # +1
defecate-plusplus 03.01.2017 21:04 # +2
а аниме ведет к импотенции
bormand 03.01.2017 21:18 # +2
Надо как на сигаретах лейблики для коллекционирования лепить - "одиночество", "импотенция", "педофилия" и т.п.
bormand 03.01.2017 21:22 # 0
И эти люди ругают графику в онеме.
З.Ы. Таки надо глянуть, не первый человек уже советует.
barop 03.01.2017 22:13 # +1
на протяжении всего мультфильма Док убеждал Марти в том, что любую возникшую проблему можно решить, если заняться с ним оральным сексом
Фуу, деф
roman-kashitsyn 03.01.2017 22:18 # +1
Да, мульт отвратный, слишком много пошлой жести накручено. Но интересные идеи есть. Я только несколько серий выдержать смог.
bormand 03.01.2017 22:27 # 0
Да это ладно, лишь бы закадрового смеха не было...
defecate-plusplus 03.01.2017 22:31 # +1
думаю, создатель хотел шокировать публику, потом поумерился (ну или зритель привыкает)
если чо, даже моей жене понравилось
3_14dar 03.01.2017 21:25 # +1
CHayT 03.01.2017 22:02 # +1
Вообще, трудно советовать не зная бэкграунда.
bormand 03.01.2017 22:17 # 0
CHayT 03.01.2017 22:38 # 0
Level E (палю годноту, кстати), коносуба, чайка, Kara no Kyokay новый вышел относительно недавно (не смотрел, но в серии всегда годный графоний и OST), Шинкаевский новый фильм про деви-ации утёк в ужасном качестве.
bormand 03.01.2017 22:45 # 0
Это где Нива-Лада-тян? :) Если да - то оба сезона видел. За остальное спасибо.
inkanus-gray 03.01.2017 23:14 # +2
Если всё-таки нужно перетасовать таблицу, существует workaround и не один.
bormand 03.01.2017 23:17 # +2
Ну у него там таблица максимум десяток тысяч строк.
inkanus-gray 03.01.2017 23:18 # +1
bormand 03.01.2017 23:35 # 0
inkanus-gray 04.01.2017 00:53 # 0
1. Взять N случайных записей. Если среди них попались совпадающие, взять ещё несколько, пока не наберётся N различных.
2. Взять одну случайную запись (пусть её айдишник равен id1). Взять ещё одну случайную запись (WHERE id > id1). Взять ещё одну случайную запись (WHERE id > id2) и т. д. Потом перемешать выбранные записи средствами своей программы.
3. Для MYSQL может оказаться полезным и такой вариант: сначала выбрать айдишники (SELECT id FROM tbl ORDER BY RAND()), потом выбрать записи по этим айдишникам. Из-за того, что у MYSQL дерьмовый оптимизатор, он довольно медленно перемешивает массивы с большими данными, хотя легко перемешивает массив из голых айдишников.
В СУБД с нормальным оптимизатором последний метод может не дать прироста пирфоманса.
Готовые решения:
http://plutov.by/post/order_by_rand_performance
https://habrahabr.ru/post/54176/
P.S. Кто-нибудь заметил подвох в пункте 2?
defecate-plusplus 04.01.2017 05:42 # +2
1. Взять N случайных записей. Если среди них попались совпадающие, взять ещё несколько, пока не наберётся N различных.
Ну т.е. чтобы забрать из базы N случайных записей, надо взять N случайных записей. Ок
Решения по твоим ссылкам мне не понравились.
Вообще говоря, такая задача решается крайне нечасто, особенно с начальными условиями "у нас настолько много записей в исходной таблице, и так часто приходится селектить, что всё тормозит". Тут даже баннерокрутилка не сильно тащится за уши, по очевидным причинам (даже имея в базе миллион баннеров, на сайте или пользователю показывать надо совсем не из этого миллиона, там другие принципы выбора что показывать). Ну т.е. куда ещё это присунуть - вопрос.
Это все проза, почему в никакой СУБД в принципе не придумано какого-то охуенного механизма для "ну-ка достань рандомных строк быстро бля".
По понятным причинам на мелких таблицах способ в лоб будет работать сносно (он у тебя идет под номером 3, включая сначала работу только с айдишниками), ну а для "хайлоада" недостаточно вводных. Например, достаточно ли, если любой посетитель (портала) будет видеть 5 минут один и тот же семпл, ну или посетителей миллион, но им достаточно десяти вариантов - ну т.е. кешированием на уровне приложухи/нжинкса порешать, и уже годно.
Твой способ номер 2 плох всем - а) он может выдать 0 строк, б) ты снова написал "случайную запись" - как ты её собрался брать? в) выполнять селекты в цикле - ну ладно, если это ты будешь из хранимой процедуры делать (хотя и тут получишь нехилое пенальти на переключение контекстов), но если из приложухи через драйвер, то вообще весь пирформанс убьешь.
Впереди ч.2
bormand 04.01.2017 05:44 # 0
Ну это если реально зачем-то понадобилось часто дёргать рандомные выборки.
defecate-plusplus 04.01.2017 06:26 # +2
Как будем ускорять фулл-скан? Правильно, нам нужен индекс-скан. И это значит, что в таблице нам надо уже заранее быть подмытыми, в носках без дырок и с гандонами по карманам - ну т.е. во всеоружии.
И снова нам надо знать свои данные.
Предположим, у нас есть id, ПК, автоинкрементирующийся. Мы знаем, что пропусков в нем немного, т.к. из середины таблицы удалялось нечасто. Тогда отдельным подзапросом генерим последовательность рандомных чисел в интервале min(id)..max(id), с запасом 5-10% (ну т.е. 1100 записей, например), и потом джойним основную таблицу по айдишнику (планировщик должен прийти к nested loops).
min(id), max(id) можно даже кешировать отдельно, не думаю, что это очень динамическая величина, или кто-то расстроится, если N минут он не будет видеть в результатах хронологически последних записей.
defecate-plusplus 04.01.2017 06:26 # +2
Или максимально оптимизируем фулл-скан:
- в записи создаем 1-2-3 дополнительных колонки, куда складываем сгенеренные при инсерте рандомные значения (или даже, что лучше, сразу некие нормализованные cluster_id, rand_key_1, rand_key_2, определяющие любую строку в 1/100 долю множества),
- основную таблицу кластеризуем по значению cluster_id,
- при запросе генерим целевые значения cluster_id, rand_key_1, rand_key_2,
- в пределах партиции делаем фуллскан с матчингом rand_key_1, rand_key_2 - тем самым экономим на сортировке, ну и вообще годный оптимизатор закончит такой фуллскан на limit N, а не будет всю партицию проходить.
CHayT 03.01.2017 23:29 # +2
guestinho 03.01.2017 23:50 # 0
bormand 03.01.2017 23:52 # +3
Mnesia - база на erlang для девочек-волшебниц.
roman-kashitsyn 03.01.2017 23:53 # +3
Нет, mnesia -- база на erlang для девочек-волшебниц, а "мнезийщик" -- это девочка-волшебница, которая пользуется этой базой.
guestinho 04.01.2017 00:28 # +1
roman-kashitsyn 04.01.2017 15:00 # +2
> анскильная питушня
Начнём с того, что если ты делаешь случайную выборку из всего датасета, то тебе уже не так уж дорог пирфоманс. Сложно представить себе вменяемый юзкейс, который требует частых выборок.
Скорее всего, ты хочешь сделать сэмпл, чтобы оценить какую-нибудь метрику. Это, скорее всего, относительно редкий запрос, и даже 4-кратное ускорение с 1 сек до 0.25 сек не принципиально (ок, с 4 часов до 1 одного — уже более ощутимый профит).
Если ты захочется сделать выборку с чуть более интересным условием, половина этих оптимизаций пойдут лесом. Например, если захочется считать взвешенную статистику — чтобы вероятность выбора анимэшечки была пропорциональна рейтингу.
Так что IMHO ORDER BY RAND() — это вполне себе адекватный вариант.
barop 04.01.2017 23:01 # 0
показать пользователю интернет-магазина случайный товар
roman-kashitsyn 05.01.2017 00:52 # +3
Пользователю интернет-магазина нафиг не сдался случайный товар.
Ему нужно показать товар, который он захочет купить. Тот, который похож на то, что он смотрит, или тот, который подходит к его интересам, или популярные новинки, если про пользователя совсем ничего не известно.
barop 05.01.2017 00:56 # 0
См: http://goo.gl/4mBrd4
roman-kashitsyn 05.01.2017 01:19 # +2
Если тебе прям вот всё равно, что показывать, считай случайную перестановку айдишников один раз в N единиц времени и выбирай из неё со случайным смещением.
guest 03.01.2017 22:23 # +1
bormand 03.01.2017 22:28 # 0
rotretS 03.01.2017 22:29 # +1
https://www.youtube.com/watch?v=UC2OfPsWs6w
CHayT 03.01.2017 22:42 # +1
rotretS 03.01.2017 22:46 # +1
guest 03.01.2017 22:53 # 0
guest 03.01.2017 22:54 # 0
dxd 03.01.2017 22:33 # 0
bormand 03.01.2017 22:35 # 0
dxd 03.01.2017 22:46 # +1
bormand 03.01.2017 22:58 # 0
CHayT 03.01.2017 23:27 # +2
bormand 03.01.2017 23:30 # +1
Ну вот не окажется случайно блича на телефоне, придётся ведь на телеке включать...
dxd 04.01.2017 00:31 # +1
bormand 04.01.2017 00:38 # 0
Для других участников корпоратива? :)
3_14dar 03.01.2017 21:26 # +2
bormand 03.01.2017 21:28 # 0
bormand 03.01.2017 19:45 # +1
Иначе ЦА не ключет.
inkanus-gray 03.01.2017 19:47 # +2