[Ответить в тред] Ответить в тред

15/10/15 - Набор в модераторы 15.10 по 17.10
27/09/15 - Двач API — Инструкция к применению
15/09/15 - Про пожертвования и ДДоС



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 1040 | 59 | 189
Назад Вниз Каталог Обновить

Чат изучающих PHP 71 Аноним 24/02/16 Срд 07:41:29  664784  
14562888895270.png (33Кб, 500x500)
14562888895281.jpg (157Кб, 1024x683)
14562888895312.jpg (194Кб, 1024x768)
14562888895353.png (364Кб, 1920x1080)
Добро пожаловать в наш уютный чатик. Тут мы не флудим, а изучаем язык PHP (а также JS/CSS/HTML/SQL), решаем задачки и даже делаем простые сайты! Зачем? Кто-то хочет научиться программировать, кто-то - делать сайты, кто-то - просто размять мозги и заняться чем-то полезным.

Почему PHP? Потому что фейсбук и википедия на нем написаны, и вакансий море, и учить легко.

Это тред для начинающих. Не написал за свою жизнь ни одной программы? Ты наш человек.

Устанавливать пока что ничего не требуется, разве что редактор кода вроде Sublime Text 3, Notepad++, Netbeans PHP или PhpStorm (с ним будет удобнее).

Предыдущий тред был тут: >>649329 (OP) (больше 1000 постов!)

Что самое главное для программиста? Умение аккуратно оформлять код (читай второй пост).

Правила: ведем себя воспитанно, помогаем новичкам, постим ссылки на решения задачек, ОП их проверяет и дает советы и замечания. ОП отвечает даже на самые нубские вопросы. ОП заходит где-то раз в 2-3 дня, не жди его, решай задачки дальше.

У нас есть уроки по основам PHP, они собраны и выложены по адресу http://archive-ipq-co.narod.ru/ Это учебник для изучающих с нуля, то есть если ты вообще ничего не знаешь, то надо начать с него. Он простой и понятный (по крайней мере в начале). Там есть задачи, их надо решать обязательно (чтобы стать программистом, надо писать код — иначе никак). Пости ссылки на решения в тред, мы их проверим, напишем замечания и дадим советы по улучшению.

Если не знаешь как решать, запости код, напиши в каком месте остановился и попроси подсказку.

Учебник дает основы языка PHP, но чтобы делать сайты, этого недостаточно. Если ты его прошел, то надо переходить в более серьезным задачкам, которые научат тебя как выдавать страницы в браузер, работе с таблицами в БД, работе с формами, MVC.

- Для начала установи Апач + PHP (советы ниже) и читай туториал http://php.net/manual/ru/tutorial.php
- Учи HTML/CSS и SQL, хотя бы основы
- Далее простая, но полезная задача сделать список студентов, в ней много полезных советов: https://github.com/codedokode/pasta/blob/master/student-list.md
- Более сложная задача сделать файлообменник на микрофреймворке Slim: https://gist.github.com/codedokode/9424217
- Еще более сложная и долгая задача на Yii/Yii2: https://gist.github.com/codedokode/8733007
- После нее можно изучать автоматизированное тестирование
- Если ты все решил, переходи к Symfony 2/Doctrine 2

Чтобы делать эти задания, тебе надо установить Апач + PHP (можно заодно сразу и MySQL) на компьютер. Вот полезные инструкции:

https://gist.github.com/codedokode/10774100
https://gist.github.com/codedokode/7054af4a03865c4cc863

Может тебе понадобится пользоваться командной строкой, вот гайд https://gist.github.com/codedokode/10539568

Вот небольшой туториал по тому как начать использовать PHP на сервере для отдачи странички в браузер: https://php.net/manual/ru/tutorial.php Увы, уроков плавно подводящих к тому, как сделать задачи выше, пока нет, так что если что, задавай вопросы.

Решения задач лучше показать мне, особенно на ООП,так как сам ты вряд ли увидишь все ошибки. Пости свой код на гитхаб и вкидывай ссылку в тред по мере решения. Я прокомментирую и укажу на ошибки.

Также, у нас есть задачи которые позволят тебе изучить или подтянуть до нормального уровня знания JS/HTML/CSS/SQL. Решай их параллельно с задачами выше.

- HTML/CSS: https://gist.github.com/codedokode/58ebc90bd006baf4b35c
- JS: https://gist.github.com/codedokode/ce30e7a036f18f416ae0
- SPA (сложно): https://github.com/codedokode/pasta/blob/master/js/spa.md
- Проверялка решений на JS: http://dkab.github.io/jasmine-tests/
- MySQL: https://gist.github.com/codedokode/10539213

Что почитать

- Мануал по PHP — http://www.php.net/manual/ru/langref.php
- Сайт phptherightway (перевод на русский: http://getjump.me/ru-php-the-right-way/ )
- По PHP: Профессиональное программирование на PHP Джордж Шлосснейгл
- По PHP: Мэтт Зандстра — PHP: Объекты, шаблоны, методики программирования
- JS: learn.javascript.ru
- Про Git: https://git-scm.com/book/ru/v1

Нужен ли ООП, фреймворки, MVC? — Да, однозначно. Посмотри любую вакансию.
Сайт опять упал!!!!! — Не паникуй, а открой http://rghost.net/45000175 и получи личную немного устаревшую копию сайта
Оформляй код аккуратно!!! — например пропусти через phpformatter.com . Также, если ты пользуешься IDE вроде PhpStorm, Netbeans, Eclipse, то в них эта опция встроена, подробнее: https://gist.github.com/codedokode/8759492
ОП, сделай за меня мою работу или домашнее задание? — Это конечно, хорошая идея, но нет.
Подскажи сайты для поиска работы, я не умею гуглить? — hh.ru, geekjob.ru, moikrug.ru (склеен с brainstorage.me), fl.ru, upwork.com (бывший одеск). Имей в виду, что кроме фриланса есть еще постоянная удаленная работа (remote job) когда тебе не надо тратить время на поиск заказов и переговоры с неадекватными заказчиками.
Прочти внимательно Аноним 24/02/16 Срд 07:42:56  664785
14562889761890.png (56Кб, 500x644)
14562889761901.jpg (435Кб, 600x900)
14562889761992.jpg (93Кб, 561x800)
Код тут нужно писать не как попало, а аккуратно и по правилам. Почему? Потому, что на неакуратно написанный код не хочется даже смотреть.

Если тебе лень выравнивать код руками, закачай его на http://beta.phpformatter.com/ и нажми «format». Робот исправит выравнивание и отступы в мгновение ока (да, прогресс не стоит на месте). Если ты используешь мощную IDE вроде PhpStorm, там тоже есть функция форматирования кода.

Горячие клавиши для форматирования кода в разных IDE: https://gist.github.com/codedokode/8759492

Вообще, в PHP долгое время не было единого стандарта оформления кода, все писали как попало и было много бардака, но сейчас дело лучше — есть стандарты PSR-1 и 2. Вот как надо оформлять код:

- переменные и функции пишутся с маленькой буквы, подчеркивание не используется, используется camelCase, пример: $x, $numberOfPeople, printResults()
- Название функции начинается с глагола, в стиле «сделайЧтоТо»
- не знаешь английский? Не беда, в 21 веке есть решение этой проблемы. Не пиши транслитом, открой лучше Гугл Транслейт или slovari.yandex.ru и найди название для переменной там
- в именах классов используется CamelCase, первая буква большая, «_» может использоваться
- мы предпочитаем подстановку переменных вместо конкатенации строк: "I am $age years old" — хорошо, 'I am ' . $age . ' years old' — плохо из-за обилия точек и кавычек
- мы используем для отступов 4 пробела (можно настроить редактор, чтобы при нажатии Tab он вставлял 4 пробела)

Вот ссылка на стандарты, где все это описано подробнее и даны примеры оформления:

PSR-1: https://github.com/php-fig/fig-standards/blob/master/accepted/ru/PSR-1-basic-coding-standard.md
PSR-2: https://github.com/php-fig/fig-standards/blob/master/accepted/ru/PSR-2-coding-style-guide.md


------------------

Итак, ты зашел в тред и решил помочь какому-то анону, дав ему совет или подсказку. Спасибо! Но прочти сначала эти напоминания, чтобы твоя помощь действительно была полезной.

Будь доброжелателен

Не годится: «Ты мануал хоть раз в жизни открывал, обезьяна?»
Не годится: «В гугле забанили?»
Не годится: «Твой код плохой»
Хорошо: «Вот, как можно улучшить этот код: ...»
Хорошо: «Ты неправильно используешь функцию abc(). Вот ее описание: ссылка, и как видишь ей надо передать строку, а не массив»

Не придирайся к знанию английского языка.

Объясняй

Не очень хорошо: «сделай как в этом коде»
Хорошо: «если ты вставляешь текст от пользователя в SQL запрос, то получается SQl-инъекция, которая позволяет взломать твой сервер (ссылки). Чтобы этого избежать, надо вставлять данные с помощью плейсхолдеров (ссылки)»
Хорошо: «Помни, что код пишется для людей. Если писать такие большие функции, то в них становится трудно разобраться...»

Не проповедуй

Мы учим использованию самых распространненных подходов, стандартов, библиотеки фреймворков. Если ты не любишь ООП, пробелы в коде, jQuery, сам PHP, то рассказать об этом стоит в каком-нибудь другом треде.

Не придирайся к знанию английского языка, анон пишет как умеет.

Ах да. Если тебе кажется, что что-то в учебнике или задачах можно сделать лучше — пиши, обратная связь всегда очень полезна.
Аноним 24/02/16 Срд 07:46:07  664787
В прошлом треде >>649329 (OP) я все поверил, всем дал ответы. Зайдите и поищите ответы в конце треда. Если я вас пропустил или не ответил - напишите тут.

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

По поводу https://github.com/foobar1643/student-list - ты еще переделваешь код или все уже исправил?


Аноним 24/02/16 Срд 08:15:47  664799
>>664704
Всё, разобрался. Спасибо
Аноним 24/02/16 Срд 09:14:21  664825
Но при чем тут Сендзёгахара?
Аноним 24/02/16 Срд 09:42:42  664839
>>662476
Благодарю за ответ.

>А почему ты один репозиторий используешь для 2 проектов?
Думал, что так будет удобнее. Ошибался. Пока оставлю как есть.

> используй абсолютные (идущие от корня диска), например с использованием константы __DIR__
Типа такого: require_once(__DIR__ . '../src/init.php') ?

> По моему тут может быть ситуация когда переменная не определена. Как можно писать надежный код если неизвестно существует переменная или нет?
Поясни, пожалуйста. isset($_GET['registered']) недостаточно?

> А почему так много статических методов?
У меня в хелперах нет полей, так что не увидел резона делать нестатические методы. В UrlHelper есть смысл параметры ($sort, $dir и прочее) сделать членами класса и передавать в конструктор? Видимо да, т.к. это улучшит читаемость кода вьюхи А в TokenHelper - $token?

> Однако тогда надо обеспечить инкапусуляцию, то есть чтобы никто другой напрямую к этой куке не обращался.
Не очень понял, как это можно сделать.
Что-то типа такого:
$myCookie = $_COOKIE;
unset($_COOKIE);
// используем функции хелперов, которые работают с $myCookie
$_COOKIE = $myCookie;

>> public static function fromRow($row)
> Маппингом студента на строчку базы данных должен заниматься класс для работы с базой данных.
Но это же по сути конструктор. В языке с перегрузкой методов, я бы их и использовал, а тут приходится так извращаться.

>> $characters[rand(0, $charactersLength - 1)];
> Квадратные скобки не будут работать если мы добавим нелатинские символы, например кириллицу.
Я понимаю, но зачем нам здесь поддержка кириллицы?
JS Integer64 24/02/16 Срд 09:48:03  664843
Задача 11: https://jsfiddle.net/dqv3ngz8/
Аноним 24/02/16 Срд 09:51:59  664847
>>664839
>$myCookie = $_COOKIE;
>unset($_COOKIE);
>// используем функции хелперов, которые работают с $myCookie
>$_COOKIE = $myCookie;
Что-то я фигню написал.
Аноним 24/02/16 Срд 10:01:22  664854
>>664843
Желательно учитывать требования стандарта:
>If comparefn is not undefined, it should be a function that accepts two arguments x and y and returns a negative value if x < y, zero if x = y, or a positive value if x > y.
http://www.ecma-international.org/ecma-262/6.0/index.html#sec-array.prototype.sort
JS Integer64 24/02/16 Срд 10:12:44  664858
>>664854
https://jsfiddle.net/dqv3ngz8/1/
Пофиксил
Аноним 24/02/16 Срд 10:27:23  664870
https://ideone.com/lqLSPc
https://ideone.com/ccwxQH
https://ideone.com/ZuRDo8
https://ideone.com/7g3WwD
Аноним 24/02/16 Срд 10:58:27  664890
Серьезный вопрос к ОПу или крутым версталам. Есть ли какая-то продуманная стратегия назначения всех размеров? Особенно в ем-ах. Ну например я читал про одну идею назначить html {font-size:10px;} а уже от него брать все производные в ем, например
h1 {font-size:2em;} // получится 20рх
h2 {font-size:1.6em;} // 16рх и т. д.
Правда геморрой в том что размер шрифта наследуется и на третьем-четвертом уровне вложенности будет далеко не так наглядно все вычислять, но там можно и rem применить.
А вот как быть с размерами блоков, отступов, паддингов? Смутно себе представляю как вычислить размер паддинга в процентах или ем.
Сейчас буквально везде вижу в тестовых заданиях mobile-first или 'все должно быть адаптивно'.
Аноним 24/02/16 Срд 11:12:25  664896
>>664890

Исходя из логики. Если ты делаешь элемент, высота которого зависит от размера шрифта - используй em, если от пикселей - то пиксели.

Ну к примеру, возьмем такой элемент как "текст написанный уменьшенным/увеличенным шрифтом". Очвеидно что тут размер должен быть в процентах от родителя, чтобы маленький текст в заголовке и маленький текст в абзаце имели разный размер.

Паддинг на кнопке может зависеть от шрифта на ней.

"все в em" это какой-то нездоровый фанатизм. Еще нездоровее - идея указывать размеры в процентах от ширины окна, так, что функция увеличения и уменьшения масштаба перестает работать.

Много лет назад процентные размеры шрифта имели смысл, так как в ИЕ6 при увеличении масштаба менялся размер шрифта на body или html, и если размер бы указывался в пикселях, то текст не увеличивался. Но это было очень давно, у современных браузеров такой проблемы нет (но верстальщики придумали верстать в процентах от размера окна и функция масштабирования снова сломалась).

Ну и помни что везде где можно обойтись вообще без указания размеров и без дублирования цифр в css. Например если надо сделать блок на 20 px уже родителя, это можно сделать маргином, а не вычитая из ширины родителя 20.

> можно и rem применить.
Я плохо представляю когда нужен rem . Наверно для страниц где можно менять размер шрифта программно? Все равно не очень понимаю.

> Сейчас буквально везде вижу в тестовых заданиях mobile-first или 'все должно быть адаптивно'.
Это тут вообще не при чем.

Аноним 24/02/16 Срд 15:43:50  665126
14563178306540.png (27Кб, 891x832)
Оп написал, что в список студентов не тащить кучу плагинов бутстрапа. Тот, кто делал список студентов с версткой на бутстрапе или сам Оп, подскажите, что не нести в проект? Очевидно все что с яваскриптом, верно?
http://bootstrap-3.ru/customize.php
Аноним 24/02/16 Срд 16:14:04  665163
Хочу хранить уникальные объекты в коллекции. Для этого есть паттерн?
Аноним 24/02/16 Срд 16:46:59  665184
14563216200180.png (32Кб, 449x416)
Sup php'ач. Последнее время нужда заставила установить Xdebug 3 часа ебли с настройками (сперва по сетке на Ubuntu + phpstorm, потом переехал на локальную машину Openserver+ PHPstorm). Так вот, в ПХПсторме в консоли Debugger'а пишет: Waiting for incoming connection with IDE key "PHPSTORM". В инете единственное что пишут - что в пхп ини то же самое должно быть и у меня сейчас там: xdebug.idekey = "PHPSTORM"
, пробовал уже разные комбинации, и другие слова-цифры, и без кавычек в пхп.ини . В общем тест выдает что всё ок (пикрелейтед), но входящих коннектов в phpstorm нету и соответственно на брейкпоинтах не происходят остановки
Аноним 24/02/16 Срд 17:10:15  665212
>>665184

Ты php скрипт в браузере или консоли запускаешь? В обоих случаях надо передать параметр который включит отладку.

Так же не забудь в php.ini включить отладку. И перезапустить Апач.
Аноним 24/02/16 Срд 17:10:19  665213
>>665184
Так что за вопрос-то?
Аноним 24/02/16 Срд 17:11:57  665216
>>665184

> что в пхп ини то же самое
А ты тот файл который нужно редактируешь? Настройки видны в phpinfo() ?
Аноним 24/02/16 Срд 17:27:48  665230
>>665216
Тот, до этого я менял другие настройки (порта сменил с 9000 на 9005 так как ругалось на то, что он занят в Шторме) после этого ошибка с занятым портом пропала и появилось ожидание коннекта с ключом
>>665213
Как побороть проблему чтобы шторм увидел входящий коннект от дебагера.
>Ты php скрипт в браузере или консоли запускаешь? В обоих случаях надо передать параметр который включит отладку.
Ставлю брейкпоинты в скрипте, перезапускаю страницу в браузере
Аноним 24/02/16 Срд 17:30:02  665232
>>665230
Страницу нужно открывать из Шторма. Он дабавит GET параметр в адресс, что бы дебагер видел что пора конектится.
Аноним 24/02/16 Срд 17:33:58  665239
>>664772
Спасибо, ОП, большое за комментарии по кошкам-мышкам. Очень дельные замечания, сейчас сижу правлю код свой.

>Явное нарущение инкапсуляции. Животные не должны ковыряться во внутренностях Поля, а должны просить его переместить их значок. Ну или, что еще лучше, можно вообще убрать там массив с картой и тогда это не требуется.
Согласен, теоретически можно было сделать вообще без визуального массива, но, когда начинал делать задачу, это казалось наиболее логичным. Надо перекраивать будет тогда решение.

Вообще, я уже студентов тихонько подбиваю с разных сторон, сейчас про PDO читаю. Думаю за них взяться на днях, кошки-мышки и антикризисные меры сообразно твоим комментариям исправлю, но навряд ли стану загружать снова(ошибки понял, лишний раз мучить тебя смысла мало), если только вопросы появятся новые. Теперь уже студентов жди, опушка!
Аноним 24/02/16 Срд 17:44:34  665246
>>665232
Эммм, если у меня цмска и мне нужно отследить определенный скрипт на определенной странице каким образом мне запустить из IDE'шки определенную страницу. Нет, я точно видел в нетбинсе работу дебаггера в таком виде: установка брейкпоинтов по скрипту, отдельный запуск браузера, в браузере открывается нужная страница - срабатывают брейкпоинты и в самом нетбинсе отображается отладочная инфа. Если запускать скрипт в браузер из иде'шки это пиздец
Аноним 24/02/16 Срд 17:47:19  665248
Также добавлю:
>>664772
> endswitch;
>Это для шаблонов, тут используй фигурные скобки
Поясни за это, ты намекаешь, что лучше использовать обычный синтаксис, ок, понял, но о каких шаблонах говоришь и почему?

> $move1 = new Movement($this->y, $this->x);
> $move2 = new Movement($this->y + 1, $this->x);
...
> $move6 = new Movement($this->y + 1, $this->
>Копипаста, убирай
много ломал голову, как от копипасты-перечисления ходов избавиться ещё когда решал задачу, но не придумал. Подкинь совет?
Аноним 24/02/16 Срд 17:58:43  665260
>>665246
Расширение для браузера.
The easiest Xdebug для Firefox например. Но опять же, все должно быть нормально настроено.
Аноним 24/02/16 Срд 18:15:22  665276
>>665260
Запустил в браузере через Закладки полученные на сайте шторме (/marklets) страница перезагрузилась, в шторме всё равно висит та же надпись что нет входящих подключений с таким то ключом
Аноним 24/02/16 Срд 18:34:52  665291
14563280929120.png (309Кб, 3840x1080)
>>665276
Ну вот xdebug на гостевой убунте сконфигурированный. Можно запускать дебаг из броузера (расширение ставит куку), можно из IDE (добавляется переменная в GET). Х.з. чем тебе еще помочь.
Аноним 24/02/16 Срд 18:41:37  665302
Ньюфаг репортинг ин. Застопорился на решении третьей задачи отсюда http://archive-ipq-co.narod.ru/l1/arrays.html
Верно ли я понял что мне в $random мне нужно использовать mt_rand (1,6) ?
И ещё я немного не вьехал как достать вариант с выпавшим числом из массива.
Пытался зделать так http://codepad.org/taLdglSx но получил fatal error: Function name must be a string
Аноним 24/02/16 Срд 18:43:06  665304
>>665302
$answers[]. Квадратные скобки для массивов бро
Аноним 24/02/16 Срд 18:44:16  665307
>>665302
И еще нумерация в массиве начинается с 0.
т.е. пятый элемент это $answers[4]
Аноним 24/02/16 Срд 18:45:10  665308
>>665307
Хотя у тебя там ключи руками прописаны, так что все нормально. Мой косяк, не глянул.
Аноним 24/02/16 Срд 18:46:19  665309
>>665291
>192.168.56.1 - это на отдельном сервере или на локалхосте? мне на localhost ругалось, поставил просто http://fashion и вроде тест прошел норм
Аноним 24/02/16 Срд 18:46:24  665311
>>665304
>>665307
Спасибо, поправил, но теперь получаю вот что
http://codepad.org/5zzzeHW6
Аноним 24/02/16 Срд 18:52:37  665319
>>665309
Это хост. ВиртуалБокс создает виртуальный сетевой интерфейс. Виндовс в нем 192.168.56.1. Убунта с виртуалки коннектится к 192.168.56.1.

>>665311
Убери ' ' вокруг $random
Аноним 24/02/16 Срд 18:54:20  665320
>>665319
Благодарю, бро, всё заработало. Значит вокруг переменной не нужны кавычки?
Аноним 24/02/16 Срд 19:02:25  665327
>>665320
php парсит то, что внутри " " и не парсит то что внутри ' '.
$answers["$random"] и $answers[$random] сработает. А $aswers['$random'] нет.
В первых двух случаях он поставит значение переменной и будет искать собственно это значение. В третьем будет искать в массиве ключ строку '$random'.
Аноним 24/02/16 Срд 19:10:50  665335
ОП слышал про Laravel Homestead?
Думаю годная штука, которая подойдет новичкам и любителям видны для запуска своих приложений без ебли и без денверов
На словах ты Лев Толстой Аноним 24/02/16 Срд 19:18:16  665338
Кароче решил вашу задачку, ловите мой драндулет:
http://codepad.org/pKoJDIJP
Аноним 24/02/16 Срд 19:22:42  665341
>>665338
Нет, там в echo должно быть:
> слово1 слово2 слово3
> слово1 слово2 слово3
> Я слово4 слово5
А не так, как у тебя.
Чтобы добиться верного решения, можно пропустить всё через цикл.
Первые два раза выводится строка "слово1 слово2 слово3", а во время третьего прохождения цикла выводится строка "Я слово4 слово5" и цикл обрывается.
Аноним 24/02/16 Срд 19:24:28  665342
>>665338
>Я хз почему random лишь один раз рандомит и остаётся таким навсегда, по этому пришлось пустить рандом второй раз.
Потому что один раз становится переменная определённой, а потом ты её выводишь в эхо.
Чтобы этого не было, надо изменять переменную перед каждым выводом, как я выше написал про цикл.
Аноним 24/02/16 Срд 19:30:15  665347
>>665341
у меня так и идёт
word1 2 3
1 2 3
я 4 5.
я делал циклы и рандом все равно оставался одним и тем же.
Аноним 24/02/16 Срд 19:37:50  665353
>>665347
У тебя идёт:
echo "$randomText1 $randomText2 $randomText3\n";
echo "$randomText4 $randomText5 $randomText6\n";
echo "Я $randomText7 $randomText8.\n";
А желательно всё-таки вот так:
echo "$randomText1 $randomText2 $randomText3\n";
echo "$randomText1 $randomText2 $randomText3\n";
echo "Я $randomText4 $randomText5.\n";
Но так-то задача на строки, вывод их из массивов, так что вполне можно и твоё решение посчитать правильным. Но ты подожди ОПа, что он тебе скажет.
А, хотя, нет: он как раз скажет что-нибудь про копипасту, там же её у тебя много.
Аноним 24/02/16 Срд 19:42:13  665358
>>665353
он скажет все переделывай. ведь нельзя было делать такие штуки
1 => 'блабла',
А я не додумал как по другому отдельные слова вытаскивать. Могу через count пронумеровать и зарандомить число, но мне слово же нужно. хотя, если как нибудь word1[....].
Аноним 24/02/16 Срд 19:46:21  665360
>>665358
Цикл жи есть.
Я объяснил же в первом сообщении этот момент.
Цикл с $i, делает три круга. В первом и втором круге изменяются randomText1 $randomText2 $randomText3 и выводится echo "$randomText1 $randomText2 $randomText3\n";. А в третьем круге выводится echo "Я $randomText4 $randomText5.\n"; (а изменяться они могли и раньше, допустим).
Аноним 24/02/16 Срд 19:52:23  665368
Анон, которому был необходим средне PHP со знанием мультикурл, я написал на почту тебе, тебе ещё надо?
Аноним 24/02/16 Срд 19:55:36  665373
14563329368310.jpg (143Кб, 1252x1026)
>>665126
Алсо, вопрос по бутстрапу. Разбираюсь с макетами, почему вместо результата выше, у меня получается то, что ниже. Колонки длиннее чем должны, не вкладываются друг в друга и переносятся на новую строку.
Аноним 24/02/16 Срд 20:00:08  665381
http://ideone.com/Zlpjoc
Посоны, как собрать кусочки воедино? Никак не могу вдуплить.
Аноним 24/02/16 Срд 20:26:18  665407
>>665381
http://ideone.com/Rxj3Gb
Аноним 24/02/16 Срд 20:34:02  665417
>>665407
Спасибо. На стаковерфлоу мне ещё вот так посоветовали https://ideone.com/i38mbX
Аноним 24/02/16 Срд 20:36:43  665420
Решил написать свою борду на PHP. Ну, традиционная история.
Где лучше хранить тексты постов? Нормально хранить в базе данных, или можно хранить в текстовых файлах?
Что будет, когда к текстовому файлу будут обращаться несколько посетителей одновременно?
Аноним 24/02/16 Срд 20:38:10  665423
>>665420
В вузе рассказывали, что когда несколько пользователей обращаются к базе данных, то всё будет в порядке.
Аноним 24/02/16 Срд 20:51:39  665445
>>665230

Ты порт и в IDE и в php поменял? В phpinfo этот порт виден? С настройками явно что-то не то, кем может быть занят этот порт? Запости конфиг относящийся к xdebug из phpifno(), а также настройки ИДЕ (если там есть что-то кроме того что выше на скриншоте).

И посмотри эту страницу, https://xdebug.org/docs/remote

Аноним 24/02/16 Срд 20:52:02  665446
Привет, пхпач, не бей. Мне надоело бездельничать и я решил выучить хтмл/ксс/пхп. Уже скачал денвер и сделал базу данных. Как я понимаю, мне лучше начать с html. Посоветуйте литературы для чайников, по которой сами учились.
Моя цель - написать простенький сайт за 3 месяца. Верстка, связь с БД, etc.
Аноним 24/02/16 Срд 20:54:23  665449
>>665446
Тебе нужно следовать пути в ОП-посте описанном. При должном усердии извояешь свой файлообменник ты.
Аноним 24/02/16 Срд 20:55:56  665453
>>665239

Там еще могут быть замечания ведь. Лучше бы с ООП на этих задачах разобраться. А студентов можешь делать параллельно, я все равно вряд ли сразу проверить смогу.

>>665246

Там надо либо GET параметр приписывать либо куку ставить. Расширения к браузеру делают именно это. Почитай документацию по xdebug чтобы понимать как это работает.

>>665248

> ок, понял, но о каких шаблонах говоришь и почему?
http://www.phpinfo.su/articles/practice/shablony_v_php.html

> как от копипасты-перечисления ходов избавиться
циклами

>>665291

Лучше показывать настройки из phpinfo(), чтобы он вывел текущие. Вот почему у тебя стоит порт 9000 если ты в IDE его поменял?





Аноним 24/02/16 Срд 20:58:54  665461
>>665453
>Вот почему у тебя стоит порт 9000 если ты в IDE его поменял?
Что куда поменял? Я не анон с проблемой. У меня все работает.
Аноним 24/02/16 Срд 21:04:16  665468
Ребят , в 19 поздно уже пытаться что-то учить?:D
Аноним 24/02/16 Срд 21:07:38  665471
>>665468
Да.
Аноним 24/02/16 Срд 21:09:14  665473
>>665335

> Думаю годная штука
Почему ты так думаешь? какие ты видишь преимущества и недостатки?

Вот что я вижу:

- образ виртуальной машины тяжелее чем Апач с PHP, ему надо больше диска, ОЗУ, процессора
- там могут быть чужие настройки. Например вместо легкого дебиан какая-нибудь тормозная убунта с кучей сервисов. Вместо нормального редактора какой-нибудь вим. А у меня например есть виртуальная машина где все привычно
- там может быть высокое потребление памяти По идее для PHP хватило бы 192 Мб, но там в образе куча сервисов и вряд ли он в эту цифру уложится. Ну и в любом случае напрямую PHP будет работать быстрее чем с виртуализацией
- для вагранта надо ставить руби в систему. Где гарантия что он не попрописвает себя всюду и не будет с чем-нибудь конфликтовать? Да и тащить огромный интерпретатор как-то нелогично по моему.
- без виртуалки PHP напрямую читает файлы с диска. В случае виртуалки приходится испоьзовать какие-нибудь общие папки которые работают медленнее
- куча лишего хлама: зачем мне редис, постгрес и какой-то непонятный beanstalkd. что это вообще такое?
- странные перенаправления портов - это зачем? Почему нельзя 80 использовать например?
- как я понимаю образ там read-only, и установить новый пакет через apt-get install не выйдет?

А посмотрим, как подают авторы этот образ? Легко развернуть? Ну не знаю, с одной стороны можно поставить апач + php + mysql и настроить их, а с другой ставить виртуалбокс, руби, вагрант, образ, и настраивать все в нем. Не сказал бы что это легче.

Ну и если нужен линукс, лучше установить в виртуалку дебиан. Хоть устанавливать дебиан научишься.

Ну то есть у использования вагранта наверно где-то есть преимущества. Хотелось бы про них услышать, а пока у тебя только личное мнение что это "годная штука".
Аноним 24/02/16 Срд 21:10:05  665475
>>665335

Ну и начинающим вредны сборки. Хоть раз в жизни Апач или дебиан стоит установить самостоятельно.
Аноним 24/02/16 Срд 21:12:08  665478
>>665373

Открой инспектор в Хроме (Ctrl + SHift + I) и посмотри какие стили применены к элеиенту. Про dev tools много статей в интернете.

>>665420

В реляционной БД вроде mysql. На текстовых файлах ничего нормально работать не будет.

Аноним 24/02/16 Срд 21:20:11  665482
>>665473
>и установить новый пакет через apt-get install не выйдет?
Как раз таки выйдет. Вообще, как по мне, ключевое удобство Vagrant'а - это песочница (можно откатываться, юзая снапшоты в virtualbox) + последующий беспроблемный деплой на VPS. Зачем это новичку - вообще без понятия. Я не поддерживаю >>665335-анона. Homestad - так вообще уже готовый box с полностью настроенным под работу линуксом. Это плохо для новичков - слишком высокий уровень абстракции; возникнет незначительная легко устраняемая проблема, а новичёк с ней не справится по причине отсутствия элементарных знаний в более низкоуровневых вещах.

Аноним 24/02/16 Срд 21:25:17  665484
>>665482
> новичёк
Бля, не пинайте.
Аноним 24/02/16 Срд 21:48:48  665497
14563397286520.png (98Кб, 618x617)
14563397286541.png (73Кб, 493x378)
14563397286562.png (35Кб, 982x397)
14563397286563.png (18Кб, 809x267)
>>665445
Вот мои настройки текущие
Аноним 24/02/16 Срд 21:49:06  665498
14563397461850.png (40Кб, 771x353)
14563397461861.png (97Кб, 857x634)
>>665497
и остача
Аноним 24/02/16 Срд 21:49:59  665502
>>665449
Абу йода-спик ввел в пхп-треде?
Аноним 24/02/16 Срд 21:57:19  665517
>>665502
Я пропустил слово и мне лень было педалить backspace. А дальше уже стилистические требования.
Аноним 24/02/16 Срд 22:19:40  665568
>>665497
>>665498
Встроенный сервер php настраивается на 8000 порту, тащемта.
Аноним 24/02/16 Срд 22:39:57  665607
>>664787
Я все замечания исправил, просто там еще несколько багов с отображением поисковых результатов нашел и исправил, из-за этого имя коммита такое странное получилось.
Аноним 24/02/16 Срд 22:47:20  665618
>>665568
Ну 9015 тоже свободен был, разве сыграет такую большую роль?
Аноним 24/02/16 Срд 22:56:34  665637
Почему
$i = 015;
echo $i;

Выдаёт 13?

https://ideone.com/60JSl5
Аноним 24/02/16 Срд 22:59:00  665640
>>665637

http://php.net/manual/ru/language.types.integer.php
http://www.reshinfo.com/vosmerichnaja_systema.php
https://ru.wikipedia.org/wiki/%D0%92%D0%BE%D1%81%D1%8C%D0%BC%D0%B5%D1%80%D0%B8%D1%87%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F

Число с нуля считается восьмеричным.
Аноним 24/02/16 Срд 23:31:18  665709
Знаком с PHP, OOP, MVC. Решил освоить yii2, начал искать инфу и понял, что хоть и инфы много, но что-то успехов нет. Начал читать документацию, и понял, что там не очень доходчиво объясняется. Анон, как вкатиться в свой первый фреймворк ?
Аноним 24/02/16 Срд 23:33:23  665713
>>665709
Попробуй сделать какую-нибудь задачу из ОП-поста с использованием Yii. Тех же студентов или файлообменник.
Аноним 24/02/16 Срд 23:33:24  665714
>>665709
Курсы на ютабе посмотри, так проще вкатишься.
Аноним 24/02/16 Срд 23:38:39  665724
>>665713
С ООП знаком, такие слова, как абстрактный класс или интерфейс не вызывают у меня страха. Но я открываю директорию yii и охуеваю о того, сколько всяких методов, что пока для меня остаются загадкой.
Аноним 25/02/16 Чтв 00:43:00  665807
>>665724
Все херня. Учи классические алгоритмы. А всякую лабуду типа обсерверов, абстрактных строителей и мостов нагонишь по мере надобности, когда к этому придешь.
Аноним 25/02/16 Чтв 01:09:57  665832
>>665373
С этим разобрался. Спаны со старой версии бутстрапа. Вопрос >>665126 в силе.
Аноним 25/02/16 Чтв 01:35:28  665850
Привет.
Может кто рассказать как правильно юзать printf?
Есть кусок кода >
https://ideone.com/w0LcUw

При попытки вывести его с помощью этого >
https://ideone.com/b7UIkt

Получаю ошибку yntax error, unexpected T_STRING.
Так вот..Как правильно пихать html код в printf что бы все работало?

Аноним 25/02/16 Чтв 07:39:25  665938
>>662476
>> if (FormHelper::isFormSent()) {
>> else if ($_SERVER['REQUEST_METHOD'] == "GET") {
>А что если ни одно из условий не сработает?
Отдастся пустая страница с кодом 200. Это плохо?
Аноним 25/02/16 Чтв 08:46:23  665953
>>665850
>Как правильно пихать html код в printf
Никак. Если очень хочется, то нужно разобраться с кавычками Лучше делать как написано здесь http://www.phpinfo.su/articles/practice/shablony_v_php.html
Аноним 25/02/16 Чтв 09:14:28  665964
>>665953
Уже разобрался , но , спасибо
Аноним 25/02/16 Чтв 10:16:16  666009
ОП, спасибо за все ответы в прошлом треде.
Если я не отвечаю, то это не значит, что я не читаю твои подробные ответы и разборы или не стараюсь исправиться.
Просто чаще всего нечем ответить, настолько всё разобрано.

Аноним
Аноним 25/02/16 Чтв 10:53:58  666028
ОП, спасибо тебе за курс. Вот, я попытался решить задачек.
То, что, что легко:
W1. https://ideone.com/r93YE8
W2. https://ideone.com/8BIRn7
W3. https://ideone.com/yqbFo1
W4.1 https://ideone.com/Yikc7R
W4.2 https://ideone.com/gipbSX
Надо было напрячь мозг:
W5.1 https://ideone.com/MwfLmz
W5.2 https://ideone.com/cVgjxu
W5.3 https://ideone.com/iFv71d
W5.4 https://ideone.com/jMJLFM
W5.5 https://ideone.com/kVp3j3
W5.6 https://ideone.com/QcFU0m
W5.7 https://ideone.com/Eh48abC
Аноним 25/02/16 Чтв 11:00:54  666035
В каком возрасте вы начали учить пхп?
Аноним 25/02/16 Чтв 11:05:10  666038
>>665446
Бамп
Аноним 25/02/16 Чтв 11:09:43  666043
>>666028
Лёгкие вроде бы все правильно решены.
Задача W5.1 решена неверно, там должно быть 61270 с копейками. Это непростая задача, многие на ней подолгу сидят.
Задача W5.2 решена неверно, там должно получиться 1060 тысяч в последний год и он должен быть 50-ым по счёту. Если я не путаю сейчас.
W5.6 решена неверно, там у тебя функция mt_rand(1, count($letters)) выдаёт слоги из массива с 1 по 16, тогда как должна выдавать слоги с 0 по 15. Автоматически нумерация в массиве идёт с 0, а count($letters) считает, начиная с 1. В итоге у тебя нулевой слог никогда не появится и будет ошибка, когда выпадет 16-ый слог.
W5.7 - там ничего нет.

>>666035
В возрасте тридцати одного года.

>>666038
Ab-w.net, с него начинал учить HTML, CSS, там же учился устанавливать Wordpress.
Аноним 25/02/16 Чтв 13:11:12  666128
https://ideone.com/bUy2YN
Аноним 25/02/16 Чтв 13:28:52  666148
>>666128
$creditSum - $payout < 0 преобразуем в $creditSum < $payout. Убирается лишнее действие.

$creditSum <= 0 должно быть == 0. Если у тебя возникает ситуация, что баланс кредита меньше нуля, значит алгоритм работает неверно и Ванька переплачивает банку.
Так вроде все отлично.
Аноним 25/02/16 Чтв 14:46:02  666238
>>665938

Да. Думаю надо сделать так:

- либо метод = POST и мы принимаем данные формы
- во всех остальных случаях выдаем страницу для GET

Я как минимум HEAD могу вспомнить который ведет себя как GET но прибивает скрипт при попытке выдать текст.

>>666043


Да, там странная строка:

> if ($sum > 1000000) {
> $y++;
Зачем дополнительно плюсовать? Также, $y лучше назвать нормально и поставить вместо $i в шапку цикла.

Аноним 25/02/16 Чтв 14:53:46  666249
Пользуясь случаем напомню: В прошлом треде >>649329 (OP) (OP) я все поверил, всем дал ответы. Зайдите и поищите ответы в конце треда. Если я вас пропустил или не ответил - напишите тут.
Аноним 25/02/16 Чтв 15:39:48  666303
14564039883940.jpg (44Кб, 722x482)
Анон, на работе, бывает, появляется свободное время, хотел бы обмазаться каким-нибудь видеокурсом для начинающих. Хотелось бы руками что-нибудь делать, но такой возможности нет. Что посоветуешь? На трекерах, тытрубе и в интернетах дохуя всего, даже не знаю, что попробовать, может, анон чего порикаминдует?
Аноним 25/02/16 Чтв 15:49:54  666310
>>666303
http://nnm-club.me/?q=%F1%EF%E5%F6%E8%E0%EB%E8%F1%F2+php&w=title
Аноним 25/02/16 Чтв 15:52:47  666314
>>666310
Спасибо.
Он хороший, стоящий? А то у меня основная проблема - сомнения.
Аноним 25/02/16 Чтв 15:56:39  666320
>>666314
Ну это выбор анона можно сказать. Хотя практически все видеокурсы длинное нудное скакание по верхам. Иначе они просто не будут продаваться.
Аноним 25/02/16 Чтв 16:08:52  666336
>>666303
Не забывай и про то, что без написания кода ничего не выйдет. Тут толковый учебник (вроде ОПовского) намного больше тебе даст, чем простое смотрение на то, как кто-то разбирает или пишет код.
Аноним 25/02/16 Чтв 16:10:47  666338
>>666336
Это само собой разумеется. Была бы на работе пека, на которой можно кот пейсать, этим бы и занимался. А так рабочая машина сейчас в ФЗС за ДМЗ и пиздец. Разве что браузер есть, но я не хочу жабаскрипт.
Аноним 25/02/16 Чтв 16:13:25  666343
>>666338
Можно писать на http://ideone.com - хоть с планшета, был бы Инет и браузер.
Аноним 25/02/16 Чтв 16:19:49  666344
>>666343

А также есть "облачные" IDE вроде https://www.google.ru/search?q=cloud+php+ide&newwindow=1&gbv=1&sei=bP_OVtCsGMScsgHfjIzoAw
Аноним 25/02/16 Чтв 16:22:04  666346
>>666343
Инета нет, в том и дело. Есть вайфай и планшет, но я заебусь же там набирать кот.
Аноним 25/02/16 Чтв 16:53:41  666371
Как перестать прокрастинировать? Сажусь заниматься, и всегда делаю не то, что нужно. То на ютубе зависну, то на дваче. Как взять себя в кулак?
Аноним 25/02/16 Чтв 16:54:19  666373
>>666371
Иди в перезвоним тред или куда-нибудь в /b/. Тут задачи решают.
Аноним 25/02/16 Чтв 16:57:56  666380
>>666371
Никак.
Аноним 25/02/16 Чтв 16:58:31  666381
>>666346
Понятно. Ну тогда не пиши код. Занимайся чем-нибудь другим.
Аноним 25/02/16 Чтв 17:07:27  666389
>>666371
Настойчивость. Усидчивость.
В последнее время с какого-то хуя стало популярным слово "мотивация".
- Мне чтобы учиться/работать/дрочить хуй нужна мотивация, - пиздят на каждом шагу. Какого хуя вообще? Вы хоть знаете, что такое мотивация? Что под постоянной мотивацией ваши межушные нервные узлы свернулись бы в трубочку?
Если за тобой в лесу бежит медведь, а ты убегаешь, вращая глазами и бросаясь в него собственным говном - вот это мотивация. Если вычислили по IP, где ты живешь, и идут ебать твою мамку, а ты, пытаясь предотвратить неизбежное, превращаешь свой подъезд в храм тиpeча и смазываешь входную дверь свиным эякулянтом - это твоя ёбаная мотивация. Она есть, а через минуту медведь сгорел в машине, мамку выебали, и её больше нет. И что дальше будешь делать? Мотивация, блядь. На этом говне далеко не уедешь. Все делается при помощи упорства и настойчивости, которые должны стать качествами твоей личности, анон, а не при помощи мотивации.
Аноним 25/02/16 Чтв 17:15:57  666394
>>666346
Купи клавиатуру к планшету.
Я поначалу просто так набирал код на Идеоне в планшете.
Если есть возможность и желание - купи недорогой нетбук, установи на него Апач и РНР, так пиши.
Сервер даже и на планшет можно установить, ОП как-то приводил пример, какие-то приложения для Андроида.
Аноним 25/02/16 Чтв 17:17:05  666395
>>666394
Годная мысль. Наверное, так и сделаю.
Аноним 25/02/16 Чтв 17:19:00  666397
Хороший тред, люблю вас
Ушел учить.
Аноним 25/02/16 Чтв 17:28:00  666406
>>666389
Неа, страх и мотивация - это разные вещи. Это как кнут и пряник. Просто разумный человек понимает, что программирование, как и любая другая работа - это просто инструмент. А какая цель? Как правило, у нормального человека цель - хорошо провести время. Программирование иногда помогает в этом, но чаще всё-таки нет. Это зависит от индивидуальных предпочтений, и от того, сколько человеку надо денег. Я бы сказал, мотивация - это связь между чем-то неосвоенным и целью, без которой непонятно, нафига оно тебе надо.
Аноним 25/02/16 Чтв 18:41:32  666470
У меня проблемы с математикой, анон. И вот вчера внезапно решил освоить php, а тут фраза "Возвращает абсолютное значение (abs(-5) => 5)"
как понимать эти вещи? Сильно будет мешать в будущем незнание? В общем, я в ступоре
Аноним 25/02/16 Чтв 18:42:44  666473
>>666470
Абсолютное значение это просто положительное число, что тут можно не понимать?
Аноним 25/02/16 Чтв 18:44:22  666476
>>666470
Абсолютное значение - это модуль числа.
Представляй модуль числа как расстояние от нуля до числа на числовой прямой. У расстояния знака нет, так что это просто положительное число.
Модуль 5 равен 5. Модуль -5 равен 5.
> |5| = 5
> |-5| = 5
> abs(5) == 5
> abs(-5) == 5
Как-то так.
Аноним 25/02/16 Чтв 18:45:49  666478
>>666476
>>666473
спасибо, друзья. Догнал
Аноним 25/02/16 Чтв 18:46:10  666479
>>666470
>Сильно будет мешать в будущем незнание
На уровне 9 классов математику знать весьма желательно, т.к. это будет мешать не только в PHP.
Аноним 25/02/16 Чтв 18:49:35  666485
>>666344
Интересная штука, жалко, платно там всё после тестового периода.
Аноним 25/02/16 Чтв 18:53:51  666493
Думаю, не написать ли генератор рифм? Будет ли это плюсом, если при устройстве на работу, или это слишком примитивно? Я так понял суть генератора рифм в том, что надо сравнивать окончания введённого слова со словами которые хранятся например в файле и выводить эти слова. Сделать так, чтобы ещё учитывать и ударения наверное нельзя? Точнее можно, но для этого надо проставить правильное ударение всем словам что есть в файле (а их более 100К) вряд ли, кто-то будет таким заниматься.
Аноним 25/02/16 Чтв 18:55:29  666499
>>666493
>Будет ли это плюсом, если при устройстве на работу
Песенником-балалаечником на средневековую ярмарку, если только
Аноним 25/02/16 Чтв 18:56:22  666500
>>666499
Тамадой еще можно
Аноним 25/02/16 Чтв 18:57:28  666504
>>666493
>Будет ли это плюсом, если при устройстве на работу
Плюсом при устройстве на работу будет если сможешь перевернуть бинарное дерево, или написать квиксорт.
Аноним 25/02/16 Чтв 18:57:47  666505
>>666493
Вполне годная задумка.
Любой хороший собственный проект на Гитхабе или на своём домене будет характеризовать твои способности только положительно.
Аноним 25/02/16 Чтв 19:16:03  666530
>>666493
Ты хочешь написать генератор рифм или генератор стихов?
Аноним 25/02/16 Чтв 19:28:50  666549
Я говно, я не понимаю ничего в разработке на php.
Аноним 25/02/16 Чтв 19:29:35  666551
>>666549
>>/b/
Аноним 25/02/16 Чтв 19:31:26  666552
>>666551
Что?
Аноним 25/02/16 Чтв 19:39:07  666562
>>664784 (OP)
Приветствую. Задачка лишь косвенно связана с PHP. Но тем не менее.
Есть объект(помещение) с двумя свойствами: мин. площадь(building_area_min) и макс. площадь(building_area_max)

Пользователь вводит начальную($s_from) и конечную площадь($s_to)
Формируется запрос на вывод помещений по этим двум полям.

Общий запрос:
$args['meta_query'][] = array(
'relation' => 'OR',
array(
'key' => 'building_area_min',
'value' => array($s_from, $s_to ),
'type' => 'NUMERIC',
'compare' => 'BETWEEN'
),
array(
'key' => 'building_area_max',
'value' => array($s_from, $s_to ),
'type' => 'NUMERIC',
'compare' => 'BETWEEN'
),
array(
'relation' => 'AND',
array(
'key' => 'building_area_min',
'value' => $s_from,
'type' => 'NUMERIC',
'compare' => '<='
),
array(
'key' => 'building_area_max',
'value' => $s_to,
'type' => 'NUMERIC',
'compare' => '>='
)
)


);
Допустим пользователь вводит ($s_from=20) и конечную площадь($s_to=100)

Должны отображаться
1) помещение от 22 до 80
срабатывает
array(
'key' => 'building_area_min',
'value' => array($s_from, $s_to ),
'type' => 'NUMERIC',
'compare' => 'BETWEEN'
),
2) помещение от 50 до 120
срабатывает
array(
'key' => 'building_area_max',
'value' => array($s_from, $s_to ),
'type' => 'NUMERIC',
'compare' => 'BETWEEN'
),
3) помещение от 5 до 120
срабатывает
array(
'relation' => 'AND',
array(
'key' => 'building_area_min',
'value' => $s_from,
'type' => 'NUMERIC',
'compare' => '<='
),
array(
'key' => 'building_area_max',
'value' => $s_to,
'type' => 'NUMERIC',
'compare' => '>='
)
)
Все работает как надо, но последний вложенный запрос создает дикие тормоза.
Может есть какой-то другой способ сделать выборку пересекающихся массивов ? В sql не особо понимаю.
Аноним 25/02/16 Чтв 19:44:10  666567
>>666562
Со вторым случаем ошибся, сработает тоже первое условие. Для второго случая найдется помещение допустим от 20 до 50
Аноним 25/02/16 Чтв 19:44:45  666568
>>666567
>от 20 до 50
от 19 до 50
Аноним 25/02/16 Чтв 19:46:58  666573
>>665291
Спасибо за идею, сегодня поставил на виртуалку убунту сервер, настроил, установил xdebug, настроил phpstorm и всё заработало, проблемы были только с айпишниками но в итоге спустя 5 часов ебли всё заработало, я счастлив!
Аноним 25/02/16 Чтв 19:50:49  666576
Объясните смысл инкапсуляции:
1. мы объявляем переменную класса protected $x;
2. мы делаем два метода, если хотим работать с этим $x из других классов - сеттер и геттер. Геттер - просто даёт переменную, сеттер даёт возможность установить новую.
Как же мы защитили её в таком случае? Ведь сеттер-геттер это же полный контроль над переменной, не?

Аноним 25/02/16 Чтв 19:55:21  666584
>>666576
Ты можешь в геттере и сеттере производить любую валидацию.
Кстати, для твоей ситуации достаточно private.

Например

private $age;
private $no_u_cant;

public function get_age() {

if (!$this->no_u_cant)
return $age;

}

public function set_age($age) {

if ($age >= 18 && $age <= 99 && !$this->no_u_cant)
$this->age = $age;

}
Аноним 25/02/16 Чтв 19:56:59  666588
>>666576
Представь ситуацию что тебе в большом приложении дали задачу сделать какую-нибудь верификацию объекта которы используется по всему приложению. Ты будешь открывать кучу файлов и по пол часа разбираться как именно и где именно используется твой объект. При инкапсуляции верификацию можно сделать в сеттере, отредактировав при этом один файл.
Аноним 25/02/16 Чтв 19:57:22  666591
>>666389
Этому два чая.
Сам лишь только недавно это понял.
Аноним 25/02/16 Чтв 20:02:14  666599
>>666588
>>666584
логично, не думал про ИФ-ы в функциях. Так да, теперь понимаю.
Аноним 25/02/16 Чтв 20:14:15  666619
>>666599
И не только ифы.
Можно еще переопределить __set() и __get() и возвращать значения в ответ на любой рандомный член класса, которого у тебя даже нет, допустим.

Самый простой пример.

class GetSet {

private $storage = array();

public function __get($index) {

if (array_key_exists($index, $this->storage))
return $this->storage[$index];
else
return false;

}

public function __set($index, $value) {

$this->storage[$index] = $value;

}

}

$obj = new GetSet();

$obj->lalka = 'dicks';
echo $obj->lalka; // dicks
Аноним 25/02/16 Чтв 20:17:36  666625
Я понял. Фраза "black mesa" составлена из букв разных раскладок. Вот ОП-хитрюга такая.
Аноним 25/02/16 Чтв 20:23:01  666636
>>666619
Объясни-ка, пожалуйста, что ты в примере сделал.

Аноним 25/02/16 Чтв 20:34:00  666655
>>666636
Описал объект, определил геттер и сеттер для всего объекта.
Это значит, что любое обращение к непубличному свойству объекта (даже если оного не существует) улетит в функцию __set(), где мы уже решаем, что делать.
В примере мы складываем всё в массив $storage и вынимаем оттуда же.

Пример синтетический, поэтому пусть так, например:

class NewsItem {

private $newsTitle;
private $newsRawText;

public function __construct($newsTitle, $newsRawText) {

$this->newsTitle = $newsTitle;
$this->newsRawText = $newsRawText;

}

public function __get($property) {

switch ($property) {

case 'title':
return $this->newsTitle;
break;

case 'text':
return strip_tags($this->newsRawText);
break;

}

}

}

$someNews = new NewsItem('Битард повесился в прямом эфире', '<b>На месте дежурит бригада <i>траллей</i> из /b/</b>');

echo $someNews->text; // На месте дежурит бригада траллей из /b/ (тегов нет)
Аноним 25/02/16 Чтв 20:36:17  666658
Мимо проходил.
Я вообще не занимаюсь этой вашей пыхой, но хочу сказать следующее для ньюфагов - пыха нужна всегда и везде,так что не ссыте вкатываться.
мимо-ява-адепт
Аноним 25/02/16 Чтв 20:39:00  666670
>>666655
>$someNews = new NewsItem('Битард повесился в прямом эфире', '<b>На месте дежурит бригада <i>траллей</i> из /b/</b>');
>echo $someNews->text; // На месте дежурит бригада траллей из /b/ (тегов нет)

>$obj->lalka = 'dicks';
>echo $obj->lalka; // dicks

но ведь эти выражения в любом случае, не зависимо от всего твоего кода, будут выводиться так, как показано. Я чего-то упускаю?
Аноним 25/02/16 Чтв 20:40:40  666681
>>666670
насчёт echo $someNews->text проебался, да, но пример с диком - он всегда и будет диком же, и без __set() с __get(0
Аноним 25/02/16 Чтв 20:42:37  666688
>>666655
А почему у тебя вернулся case 'text'? Почему не case 'title'?
Аноним 25/02/16 Чтв 20:44:16  666691
>>666658
Как будто ява не везде нужна. 80% энтерпрайза на ней написано. Хотя порог вхождения там выше конечно.
Аноним 25/02/16 Чтв 20:45:01  666693
>>666670>>666681

Суть не в выводе текста или его метаморфозах.
У тебя внутри объекта есть некоторые данные внутри приватных свойств. Этих данных целиком и полностью хватает для описания объекта.
Но там, снаружи, тебе не нужны эти данные в сыром виде. Они тебе нужны, возможно, как-то переработанными, и под другими именами.

>>666688
Слушай, ну серьезно. Тебе для начала надо выучить синтаксис языка.
Аноним 25/02/16 Чтв 20:46:52  666696
>>666691
Это да, порог действительно выше.
По работе приходится часто общаться с пыхокодерами, и уяснил что готовы брать ребят даже без знания фреймворков.
Простите, я не знаю как отклеить сажу. Ёбаная вакаба
Аноним 25/02/16 Чтв 20:49:26  666701
>>666693
кажется, я начал понимать твой пример, спасибо.

>>666696
>Простите, я не знаю как отклеить сажу.
и ещё погромист называется
Аноним 25/02/16 Чтв 20:50:28  666703
14564226286140.jpg (33Кб, 565x365)
>>666701
Если сажа решила подружиться с постом - разве я должен им мешать?
Аноним 25/02/16 Чтв 20:50:50  666704
>>666696
База у любых программистов должна быть, я считаю. Это первым делом оценки сложности алгоритмов, линейная алгебра, основы анализа и т.д.

У многих начинающих просто отсутствуют эти базовые знания, хотя они умеют формочки на симфони делать.
Аноним 25/02/16 Чтв 20:52:07  666713
>>666666
...
Аноним 25/02/16 Чтв 20:55:22  666724
>>666704
Слыш я в погромисты пошел потому что у меня с матешей плохо
Аноним 25/02/16 Чтв 20:58:16  666733
>>666724
Тебя на работу ни один уважающий себя работодатель не возьмет. Пока не выучишь математику хотя бы до уровня первого курса ВУЗа будешь работать в шарагах за 15к\мес.
Аноним 25/02/16 Чтв 21:00:30  666744
>>666733
Да беда в том, что я это уже осознаю, лол.
У меня вообще больно тугой ум, очень трудно все дается.
Искренне хуею с постоянных репортов уровня "я выучил HTML+CSS+JS+PHP за 6 месяцев, че дальше".
Я уже 7 лет PHP-макака, и до сих пор быдлокожу за еду. Сложные алгоритмы повергают мозг в ступор.
Аноним 25/02/16 Чтв 21:05:07  666752
Как свардампить локальную переменную функции?
global $var не помогает.
Аноним 25/02/16 Чтв 21:07:05  666754
>>666752
Очевидно же, дампь внутри функции, а потом вызывай её.
Аноним 25/02/16 Чтв 21:07:27  666755
>>666043
Спасибо большое. Вот, исправил ошибки:
W5.1 https://ideone.com/94782z
W5.2 https://ideone.com/MCoNPH
W5.6 https://ideone.com/qhdVJ8
W5.7 https://ideone.com/Eh48ab
Вот, еще порешал.
W5.8 https://ideone.com/WNN6jp
W5.9 https://ideone.com/QNB4l9
Аноним 25/02/16 Чтв 21:07:28  666756
>>666733
Я могу в матешу первого курса медвуза, достаточно? Проходили матрицы, теорию вероятности и прочие задачки.
>>666744
Ты это я в течение будущих семи лет.
Аноним 25/02/16 Чтв 21:08:01  666758
>>666752
Конечно, переменная из функции видна только в функции.
Вардампь внутри функции.

Если жизненно важно сделать это снаружи, добавь еще один ссылочный аргумент.

function doSomething($regularArg1, $arg2, &$ref) {

// че-то происходит

$ref = твоя_переменная;

}

var_dump($ref);
Аноним 25/02/16 Чтв 21:08:28  666759
>>666754
Лол, и правда ведь.
Аноним 25/02/16 Чтв 21:09:19  666761
>>666756
Лол, я даже не знаю алгебры уровня 9 класса.
После дискриминанта и системы уравнений я просто пинал хуи вплоть до выпускного.
Аноним 25/02/16 Чтв 21:09:30  666762
>>666758
Спасибо за костыль, браток.
Аноним 25/02/16 Чтв 21:10:48  666763
>>666761
>Лол, я даже не знаю алгебры уровня 9 класса.
>После дискриминанта и системы уравнений я просто пинал хуи вплоть до выпускного.
Я вообще учился в школле с гуманитарным уклоном и проебывал матешу как только мог. Так что ты хоть что-то знаешь. А я могу только в первый курс мед. вуза.
Аноним 25/02/16 Чтв 21:11:08  666765
>>666763
>школле
Школе. Ебаный немецкий.
Аноним 25/02/16 Чтв 21:11:51  666767
>>666763
Матрица и тервер куда круче a^2 - 4bc, или как там дискриминант решается.
Числа прописью Аноним 25/02/16 Чтв 21:12:47  666771
Посмотрите как вам?

https://ideone.com/aK0ryI
Аноним 25/02/16 Чтв 21:12:59  666772
>>666504
А зачем это для разработчика ПХП?
Аноним 25/02/16 Чтв 21:13:16  666773
>>666756
В алгоритмы можешь? Оценку сложности алгоритмов, оценку времени исполнения, потребления памяти и прочее?
Аноним 25/02/16 Чтв 21:14:00  666775
>>666772
Язык программирования лишь средство, ты должен в принципе уметь в алгоритмы.

Аноним 25/02/16 Чтв 21:15:53  666779
>>666767
БЭ В КВАДРАТЕ МИНУС ЧЕТЫРЕ АЦЭ
Выучил эту формулу наизусть, идя в школу на контрошу по алгебре. Хоть я и не помню, что она означает, но саму формулу помню, хек.
Аноним 25/02/16 Чтв 21:17:00  666782
>>666775
Книг computer science достаточно будет?
Взаимопомощь Malikov 25/02/16 Чтв 21:25:15  666797
Нюфаги, го сюда. Будем делиться опытом, помогать с лабами, выискивать баги.
Kirill 25/02/16 Чтв 21:26:03  666799
>>666797
Вкатился. Как тут зарегистрироваться?
Взаимопомощь Malikov 25/02/16 Чтв 21:26:36  666800
https://telegram.me/joinchat/AFkjiQbZ-ih1sNDznEmoxQ

Нюфаги, го сюда. Будем делиться опытом, помогать с лабами, выискивать баги.
Malikov 25/02/16 Чтв 21:29:09  666802
>>666799
https://telegram.me/joinchat/AFkjiQbZ-ih1sNDznEmoxQ
Аноним 25/02/16 Чтв 21:43:42  666828
>>666771
Грязно.

Почему inclineWord возвращает такую парашу?
> $result = " (".$number.") ".$result;

> declensionMillion
11 миллион? 12 миллиона?

> declensionThousands
11 тысяча? 12 тысячи?

Тебе не кажется, что делаешь однородные действия?
Что число можно разбивать в цикле бесконечно?
Что можно написать код, работающий на числе любой длины, входящего в конфиг вида:
$largeNumbersNames = array(array('тысяча', 'тысячи', 'тысяч'), array('миллион', 'миллиона', 'миллионов'), array('триллион', 'триллиона', 'триллионов'), array('квадриллион', 'квадриллиона', 'квадриллионов'), ...);
Причем при изменении конфига (удалении названия степени, добавления) код должен работать.
Аноним 25/02/16 Чтв 22:05:27  666855
trim() работает с мультибайтовыми кодировками?
Аноним 25/02/16 Чтв 22:11:36  666860
>>666855
Работает.
У меня другой вопрос.
Работает ли trim() в массиве?
foreach($textArr as $key => $value){
trim($value);
}
Аноним 25/02/16 Чтв 22:18:50  666870
>>666860
Конечно работает, $value же обычная строка.
Аноним 25/02/16 Чтв 22:43:18  666920
>>666870
https://ideone.com/AJaH1S
Почему у меня не работает?
Аноним 25/02/16 Чтв 22:54:25  666944
>>666920
https://ideone.com/2FX1ou
Вот так попробуй.
Аноним 25/02/16 Чтв 23:03:42  666965
>>666828
Благодарю за критику.
Да не могу я в универсальность, делаю всё в лоб, да еще и через жопу. Про такой вариант $largeNumbersNames даже и не подумал.

Походу хуже моего говнокода уже быть не может.
Аноним 25/02/16 Чтв 23:13:19  666983
>>666944
Ну и что? Она все равно не обрезает проблелы.
https://ideone.com/AJaH1S
Аноним 25/02/16 Чтв 23:15:52  666989
>>666983
>пробелы
Аноним 25/02/16 Чтв 23:19:22  666994
>>666920
Ну ты даешь.
Что ты вардампить собрался, если после ретурна функция прекращает работу?

https://ideone.com/Yc0sGK
Аноним 25/02/16 Чтв 23:20:24  666996
>>666983
Пробелы сначала надо удалить с помощью preg_replace(). Ставишь регулярки, которые удаляют лишние пробелы и запятые, заменяя их на один пробел.
Аноним 25/02/16 Чтв 23:23:59  667001
>>666983
А вот тебе с удалением пробелов.

https://ideone.com/P9PgzE
Аноним 25/02/16 Чтв 23:26:40  667007
Ко всем относится - регулярные выражения сами по себе очень мощный инструмент.
Если вы сначала че-то там режете по регулярке, а потом еще что-то перебираете и проверяете - вы что-то делаете направильно.

А конкретно этот кадр вдобавок не понимает, что в foreach значения передаются не по ссылке. И что надо их присвоить. Вот так:

foreach ($array as $var => $val) {

$array[$var] = trim($val);

}
Аноним 25/02/16 Чтв 23:27:26  667009
>>667001
Мы тут учимся вообще-то, а не просим решить за нас задачи!
Не делай так больше!
Тем более, что ни черта непонятно в твоем коде
Аноним 25/02/16 Чтв 23:27:58  667010
>>666485

Вроде были и бесплатные - стоит изучить несколько разных вариантов. Там конечно могут быть ограничения вроде "не больше N файлов", но для учебы их должно хватить.

Вот например тут https://c9.io/pricing/webide (взял первого попавшегося провайдера услуг) есть план free - единственный недостаток в нем это ограничение по памяти (1GB RAM, 5 GB HDD) и публичность всех выкладвааемых файлов. Для учебы - хватит.

Проверял в Хромиуме, выпущенном в этом, 2016 году, на ноутбуке с core2duo.

Можно логиниться через гитхаб, если тебя не напрягает что они могут за тобой и на гитхабе теперь следить.

PHP есть, версии 5.5 (увы): https://docs.c9.io/docs/supported-languages (обещают подсветку синтаксиса и отладчик). Есть полноценная (линуксовая) консоль без прав рута.

PHP7 доступен, но параллельно с его установкой придется поучиться консольной магии: https://community.c9.io/t/how-to-upgrade-to-php7/1379

MySQL версии 5.5.44-0ubuntu0.14.04.1, пользователь root без пароля.

Редактор примитивный, слабее Sublime, но может кому-то его возможностей хватит.

В углу физиономия основателя или разработчика,которая там появляется сама собой.

Можно запускать код в консоли, через встроенный в PHP сервер и через Апач. Во втором и третьем случае дают публичный адрес, где можно увидеть ваш проект.

Логи выводятся в вкладке Апача - удобно!

Ну, проектов у меня под рукой полно - взял первый попавшийся гитхаб ( https://github.com/V3N0m21/StudentList ) и не стал его устанавливать так как там нет папки public и инструкций по установке. Позор автору.

Вместо него взял https://github.com/V3N0m21/Uppu4

В ридми кстати не написано что надо править конфиг.

Композер есть (не то чтобы это было проблемой, но удобно).

Вот приложение: https://venom21-students-codedokode-1.c9users.io/

что-то не работает? Скажите спасибо V3N0m21, который не осилил настроить корректно файловый кеш и не добавил нужные папки в репозиторий.

Аноны, может кто-нибудь проверит на себе эту ИДЕ?

Правда, помните что это веб-приложение и вам нужен современный браузер и свободная память (я бы рассчитывал на 400-800 Мб только под вкладку с IDE, это не мерял, а интуитивно посчитал. Померял - вроде пишет 150 Мб, но я редактор почти не использовал, толкьо консоль).

Также, вам нужен большой экран - чем больше, тем лучше. На 1280x720 работать можно, но тесновато - приложение явно расчитано на огромные комьютерные мониторы.

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

Вот команды которые пришлось сделать для установки приложения:

------

13 git clone 'https://github.com/V3N0m21/Uppu4' uppu
14 cd uppu
15 composer install
16 mysql -uroot -e 'CREATE DATABASE uppu CHARSET=utf8'
17 mysql -uroot -e < Uppu4.sql
18 mysql -uroot < Uppu4.sql

# наконец-то!
19 mysql -uroot uppu < Uppu4.sql
20 nano app/config.ini

# поменять документ рут в апаче
21 sudo nane /etc/apache2/sites-available/001-cloud9.conf
22 sudo nano /etc/apache2/sites-available/001-cloud9.conf

# поправить кривокод
23 nano app/bootstrap.php
24 mkdir public/upload
25 chmod 0777 public/upload
26 # почему папки нет в репозитории?
27 mkdir upload/resize
28 mkdir public/upload/resize
29 chmod 0777 public/upload/resize/

---------

В общем, в плане скорости работы облачная ИДЕ сильно зависит от браузера и процессора и проигрывает саблайму. Редактор слабый. В плане удобства - очень удобно, все уже установлено, настроено и "just works". Считайте что cloud9 это как хостинг, только бесплатно и без рекламы и почти все настроено.

Я советую тем, кто хочет опубликовать свое учебное приложение, попробовать. И тем кто не хочет - тоже попробуйте, очень интересная штука. Ну сами подумайте, насклоько ОПу удобнее когда ему дают не только ссылку на код, но и на работающее приложение. И другие анончики смогут протестировать ваше приложение. Сделайте файлообменник, выложите ссылку в /b - вам мигом найдут все баги и уязвимости.
Аноним 25/02/16 Чтв 23:30:31  667014
>>667009
Вот тебе задание - разберись.

Если ты не понимаешь, как работают красивые верные решения, ты так и будешь писать говнокод.
Всегда читай чужой код, разбирайся, как он работает.
Аноним 25/02/16 Чтв 23:33:01  667019
>>667010

Хоят вру - сервер работает не постоянно, а только пока открыта вкладка с IDE в браузере.

ну да ладно, кто хочет посмотреть файлообменник венома - сделайте аккаунт, склонируйте мой проект https://ide.c9.io/codedokode/venom21-students и запускайте сколько влезет.

Несмотря на все недостатки, технология очень интересная. Советую посмотреть хотя бы из любопытства.

Алсо, если кто-то может зайти с андроида/айпада - отпишитесь, как работает, не тормозит ли. 150 Мб памяти вроде для планшета приемлемо, а вот справится ли АРМ процессор - не знаю.


Аноним 25/02/16 Чтв 23:36:55  667025
>>667019

Алсо, файлы не скачиваются так как автор кода V3N0m21 не предусморел отдачу средствами PHP при отсутствии расширения, а ставить его мне лень.
Аноним 25/02/16 Чтв 23:38:35  667030
Что такое колбэк функция простыми словами и как она работает?
Аноним 25/02/16 Чтв 23:40:13  667031
>>667030
Функция, предназначенная для вызова для другой функцией.

callback дословно - обратный звонок.
Аноним 25/02/16 Чтв 23:40:33  667034
Обратный вызов точнее.
Аноним 25/02/16 Чтв 23:41:38  667038
>>664784 (OP)
>>666920
Завёл твой код, всё работает. Проблема не в коде
Аноним 25/02/16 Чтв 23:42:10  667042
/((?:^|[.?!])\)?)\s*\b(.)/ - как понять эту регулярку?
Там ведь даже скобка не закрыта, а всё работает.

>>667010
Интересно, схоронил.
Аноним 25/02/16 Чтв 23:44:03  667045
Какие плюсы перехода на php7?
Аноним 25/02/16 Чтв 23:46:33  667053
>>667042
Это скобка - литерал. Она заэкранирована, видишь?

Эта штука матчит ситуацию:
начало строки или .!? - (^|[.?!]), символы ?: говорят, что эту группировку не надо сохранять в памяти;
дальше закрывающая скобка (которой может не быть) - \)?
дальше пробельные символы (которых может не быть) - \s*
дальше граница слова, дальше первый символ слова.
Аноним 25/02/16 Чтв 23:49:04  667059
>>667031
>callback дословно - обратный звонок.
И какой смысл вкладывается во фразу "обратный вызов"? Она ничего не говорит интуиции. Зачем придумали эту фразу вместо "лямбда"?
Аноним 25/02/16 Чтв 23:51:00  667064
>>667059
Коллбэк не обязательно должен быть лямбдой (анонимной функцией).

Код из примера можно записать так:

function myStrtoupper($matches) {

return $matches[1] . ' ' . mb_strtoupper($matches[2]);

}

echo preg_replace_callback('#((?:^|[.?!])\)?)\s*\b(.)#su', 'myStrtoupper', $challengeText);
Аноним 25/02/16 Чтв 23:51:41  667066
>>667053
Спасибо, но я ни хера не понял, я туп.
Где можно так надрочицца в регулярных выражениях?
Аноним 25/02/16 Чтв 23:51:56  667069
>>667064
И что такое обратный вызов? Почему он обратный?
Аноним 25/02/16 Чтв 23:54:01  667072
>>667064
Долго php учишь? Что знаешь, кроме него?
Аноним 25/02/16 Чтв 23:55:22  667075
>>667069

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

Вот пример:

$files = ['file.txt', 'file.jpg'];
$images = array_filter($files, function ($file) {
return preg_match('/\.(jpg|png)$/u', $file);
});

Здесь мы передаем коллбек в функцию фильтрации массива. Она вызывает ее для каждого файла и решает оставить его в массиве или нет. Таким образом, управление передается то функции array_filter, то обратно нашему коду.


Аноним 25/02/16 Чтв 23:58:22  667082
>>667075
Почему он обратный?
Аноним 25/02/16 Чтв 23:59:00  667083
>>667082

Потому что функция array_filter делает обратные вызовы назад в наш код.
Аноним 26/02/16 Птн 00:00:18  667087
>>667083
Вот ведь сука какая. Обратные вызовы она делает, блять..
Простите
Аноним 26/02/16 Птн 00:00:50  667088
>>667066
Практика.
Напиши, например, граббер сообщений с сосача с помощью регэкспов.
Тебе сейчас скажут, что нельзя парсить html регулярками, но все так делают. И еще смеются над теми, у кого DOM-парсеры падают на невалидном html.

>>667069
Ну вот функция preg_replace_callback передает в твою функцию свои находки. Ты их обрабатываешь и возвращаешь preg_replace_callback.

>>667072
Я выше отмечался, я веб-макака без алгебры со стажем 7 лет.
Знаю JS.

>>667075
Модификатор u лишний. Здесь он не имеет значения.
Алсо, есть более элегантное решение

return in_array(pathinfo($file, PATHINFO_EXTENSION), array('jpg', 'png'));
Аноним 26/02/16 Птн 00:00:50  667089
>>667083
#define обратные вызовы
Аноним 26/02/16 Птн 00:01:37  667091
>>667088
>Ну вот функция preg_replace_callback передает в твою функцию свои находки. Ты их обрабатываешь и возвращаешь preg_replace_callback.
Так почему такие вызовы называются обратными?
Аноним 26/02/16 Птн 00:05:30  667098
>>667091
Если ты передаешь одну функцию для исполнения как параметр для другой функции, такая функция называется callback.

Она тебе звонит обратно. В эту функцию.
Аналогия с реальным миром - ты оставляешь просьбу перезвонить по такому-то номеру.
Ты оставляешь функции просьбу вызвать такую функцию.
По-английски call - звонить и вызывать.
Аноним 26/02/16 Птн 00:11:20  667115
>>667098
>Она тебе звонит обратно. В эту функцию
Ну так это стандартная процедура вызовов функций, когда после выполнения со стека снимается адрес возврата. Зачем давать этому процессу название, которое применимо только когда вызов похож на использование лямбд?
Аноним 26/02/16 Птн 00:12:36  667118
>>667115
Она звонит тебе не после выполнения, а во время выполнения, понимаешь?
Аноним 26/02/16 Птн 00:13:54  667120
Кроме того, callback-функция в стеке будет выше вызвавшей ее функции.
Адрес возврата у тебя будет находиться в стеке ниже исполняемой функции.

Ты неправильно понимаешь, что такое callback. Значит, тебе это пока не нужно.
Аноним 26/02/16 Птн 00:14:47  667123
>>667118
>звонит
В смысле просто использует функциональный контекст вызывающей процедуры, и этому дали глупое название?
Аноним 26/02/16 Птн 00:16:10  667126
>>667123
Я вопросов твоих не понимаю. Этот приём должен был остаться безымянным?
Аноним 26/02/16 Птн 00:17:12  667128
>>667115
потому что названия придумывали гуманитарии. им понятия "перезвонить", "фабрика", "наблюдатель" и прочие абстрактные бобы понятней.
Аноним 26/02/16 Птн 00:18:41  667132
>>667123

Что значит "использует функциональный контекст "? Нет, неверно, она вызвает функцию которую ты ей дал.

>>667120

Вы зря переходите к стекам. Стек - это всего лишь одна из возможных реализаций такой вещи, никто вам не гарантировал что интерпретатор PHP будет его использовать (например оптимизирующий компилятор может заменить вызов функции переходом или заинлайнить ее). Да и я не понимаю, какой смысл обсуждать реализацию когда нам важна общая идея как это работает.
Аноним 26/02/16 Птн 00:20:52  667135
>>667132
>Что значит "использует функциональный контекст "?
Переданные аргументы и локальные переменные вызвавшей функции.
Аноним 26/02/16 Птн 00:22:53  667140
>>667135
>Переданные аргументы
Это не функциональный контекст.

>локальные переменные вызвавшей функции
Какие? Из нативного C-кода?
Это не javascript, в PHP у функции только свой скоп.
Аноним 26/02/16 Птн 00:33:41  667148
Походу, обратный вызов это как несущественное состояние в цепи Маркова или канонический подъем в задачах алгебраических кривых. Программистишки не могут объяснить, какой интуитивный посыл несут эти определения и просто кукарекают баззвордами.
Аноним 26/02/16 Птн 00:41:13  667153
>>667148

Тебе объяснили. Однако ты пытаешься (вяло и безрезультатно) раздуть тут пустую дискуссию ни о чем. Это пхп тред, функциональные языки можно обсудить в других тредах, прокрути до 4-5 страницы и обсуждай.
Аноним 26/02/16 Птн 01:10:33  667188
Как лучше делать: писать трудночитаемый, но компактный код или все расписывать, чтобы все поняли?
Аноним 26/02/16 Птн 01:50:31  667236
Сап всем, решил обмазаться и сразу же попал в просак. Не знаю почему, но сегодня у меня появилось желание заняться чем-нибудь интересным. Наткнулся на этот тред и заинтересовало. В общем решил попробовать. Завис на третей задачи W5.2(циклы), нихуя не понял. Как-то всё достаточно резко переменилось, до этого решалось легко. Собственно вопрос, к погромистам, как решить её? И что повторить чтобы не возникало проблем с этой темой? Потому что у меня такое ощущение, будто я вообще ничего не усвоил за предыдущие темы.
test test 26/02/16 Птн 01:52:20  667237
................00000000000
..............00,,,,,,,0,,,,,,00
.............0,,,,,,,,,0,,,,,,,,,0
............0,,,,,,,,,,0,,,,,,,,,,0
...........0,,,,,,,,,,,0,,,,,,,,,,,0
...........0,,,,,,,,,,,,,,,,,,,,,,,,0
...........0,,,,,,,,,,,,,,,,,,,,,,,,0
...........0,,,,,,,,,,,,,,,,,,,,,,,,0
............0,,,,,,,,,,,,,,,,,,,,,0
.............000000000000000
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.............0,,,,,,,,,,,,,,,,,,,0
.........000,,,,,,,,,,,,,,,,,,,,,,000
.......00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,00
......0,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
.....0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
....0,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
...0,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
...0,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
...0,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
....0,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0
.....0,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,0
Аноним 26/02/16 Птн 01:54:16  667238
>>667236

Про айфон в кредит? На ней все спотыкаются.

Попробуй переписать код внутри цикла примерно так:

- прибавляем проценты и комиссию к остатку долга (!не вычитаем ничего пока!)
- если остаток маленький, выплачиваем сколько осталось и уходим
- иначе платим 5000

«Платим» здесь значит уменьшаем долг и увеличиваем общую сумму выплаченного.

Также, ты читал замечания под задачей?

> Подсказка: мало кому удается решить эту задачу с первого раза. Попробуй сделать так: для начала, поменяй сумму кредита на 4000, так как он выплачивается за 2 месяца и его легко посчитать вручную (всего выплачено 6123). Также, добавь в цикл if, выводящий значения всех переменных и попробуй понять, правильно ли они считаются. Разобравшись с этой суммой, можешь поставить назад число 40000.

Аноним 26/02/16 Птн 01:56:07  667241
>>667238
Спасибо анончик, сейчас попробую.
IDE в браузере Аноним 26/02/16 Птн 01:56:41  667242
Аноны, напомню что есть интересная облачная IDE - PHP, Апач, MySQL,отладка - все уже настроено и установлено, код можно править и запускать прямо в браузере или брать с гитхаба, бесплатно, мой обзор: >>667010

Зайдите, попробуйте, кому интересно.
Аноним 26/02/16 Птн 02:01:51  667247
>>667242
Твоя IDE? Я уже зарегистрировался.
Аноним 26/02/16 Птн 02:33:33  667269
В общем, я дописал программу "пиши правильно".
Но мне кажется, что я тут велосипедов нагородил.
Оцените, в общем.
https://ideone.com/AJaH1S
Аноним 26/02/16 Птн 04:50:54  667284
Сап.
Есть дефолтный загрузчик изображений на сервер.
При попытки загрузить изображение с именем:
CuteLittleGirl проблем не возникает , но если написать на русском языке , он сохраняет его с таким именем: сиваятян , при этом , в бд отправляется нормальное имя тобишь КрасиваяТян.jpg , да конечно я понимаю что проблема в кодировке , но , как ее решить?..

https://ideone.com/3aFoEt
Аноним 26/02/16 Птн 05:53:56  667290
>>667284

И еще , не подскажите как можно вытащить уже измененное mt_rand имя, что бы я мог его потом запихнуть в БД? ><
Вот код:
https://ideone.com/AJJ62O
Аноним 26/02/16 Птн 06:43:36  667299
>>667290
разобрался с генерацией случайного имени.
Аноним 26/02/16 Птн 08:36:53  667348
>>667188
Если ты пишешь по стандартам, твой код будет понятен в любом случае.
http://getjump.me/ru-php-the-right-way/
https://github.com/getjump/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md
https://github.com/getjump/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md

>>667284
>copy($_FILES['uploadfile']['tmp_name'], $uploadfile)
Нельзя так, используй move_uploaded_file(). Эта функция проверяет, действительно ли этот файл загружен через POST.

>он сохраняет его с таким именем: сиваятян
Дело происходит под Windows? Придется конвертить имя из utf-8 в win-1251.
$winFilename = iconv('utf-8', 'windows-1251', $filename);
Аноним 26/02/16 Птн 08:39:30  667349
>>667348
Спасибо , но , опять уже со всем успел разобраться :D
Аноним 26/02/16 Птн 09:03:18  667361
Палиндром
не могу понять как это сделать
"проходим от края до середины посимвольно"
http://ideone.com/bpHlPB
Сумма Аноним 26/02/16 Птн 09:07:52  667362
Оп, проверь задачу из прошлого треда, пожалуйста.



> Лучше просто передавать в функцию 3 формы слова через аргументы, а у тебя зачем-то в нее уже заложено несколько вариантов

Не понял этот момент. То есть вместо функции inclineWord сделать тоже самое в функции smallNumberToText?


ОП, проверь, пожалуйста. Может на 3й раз получится.

http://ideone.com/f2IIDk
Аноним 26/02/16 Птн 09:26:02  667369
>>667361
Я бы решил это так, например.

http://ideone.com/cey5pI
Аноним 26/02/16 Птн 09:29:18  667372
>>667369
ну это все конечно круто,но мне бы понять как это работает все
Аноним 26/02/16 Птн 09:31:34  667374
>>667372
Починил твой пример, разбирайся.

http://ideone.com/sNrb6L
Аноним 26/02/16 Птн 10:40:02  667400
Помогайте снова, я тот анон с дебаггером, начальном скрипте норм дебажит, но вот когда программа выполняется по 10ку скриптов, и я где то в глубине ставлю брейкпоинты - оно их просто не видит, но в файле конфига или индекса нормально стопается.
Аноним 26/02/16 Птн 11:35:23  667432
Сорян за оффтоп, не бейте ногами.
Подбираю второй монитор для веб-макакинга.
Первый: 20" квадрат, 1400 х 1050.
Кандидаты во второй:
22" 1980 х 1020
22" 1680 x 1050
20" 1600 x 900
19" 1366 x 768
Больше 22 ставить негде. Зрение так себе, боюсь что фулл хд буду рассматривать через лупу. И ваще как у вас все устроено где на каком мониторе иде, браузер, все дела?
Аноним 26/02/16 Птн 11:37:28  667436
>>667432
>22" 1920 х 1080
конечно же
Аноним 26/02/16 Птн 11:39:16  667437
>>667432
FullHD и шрифты большие ставь и всё.
То что какие-то какеры себе ставят 9pt это их личная проблема, тебе нужно не весь код сразу видеть, а строк 30-40, больше мозгом всё равно не объять.
Аноним 26/02/16 Птн 11:50:50  667449
>>667432

> 1400 х 1050.
А что это за странное разрешение? Оно родное? Если нет то пиксели будут размытые, вредно для зрения.
Аноним 26/02/16 Птн 11:52:58  667452
>>667432
У меня тоже зрение говно, 23 дюйма, 1920 на 1080.
В браузерах и иде шрифт увеличенный.
Аноним 26/02/16 Птн 11:54:11  667454
>>667449
Родное, довольное редкое.
Аноним 26/02/16 Птн 12:03:15  667466
>>667432
Взял себе DELL 24" 1920х1200, вроде норм
Аноним 26/02/16 Птн 13:05:16  667518
14564811169200.png (120Кб, 3840x1080)
>>667400
Дебажишь через расширение? С кукой он должен все видеть в пределах домена.

>>667432
Квадрат 17 1280 на 1024 в треде. Ну я сначала взял 22 TN. Потом поменял на 22 ips. Потом на 24. Теперь 2 по 24, я бы и 3-й взял, но цены в моих пердях и в долларах повырастали. Весь этот путь я прошел за месяц.
Аноним 26/02/16 Птн 13:45:40  667552
Пожалуй, лучший из тредов
Относительно недавно я сделал все задания из шапки (по моему был сайт на народе) но по какой то причине забросил этот чудо язык кажется я ебался с настройками лампа, ксампа и вообще заебался с этими линуксами

Алсо. Хочу сразу сесть на хуй работать с базами MySQL.
Подскажите простейший пример чего нибудь, чтобы я просто начал, а потом уже ебался с остальным.
Там ведь всего лишь - соедениться, записать в базу, удалить базу, выполнить запрос MySQL, верно? Стало быть мне надо учить MySQL или продолжать ебаться с пхп?

Моя цель - написать элементарный сайт и пердолить его. ПРОСТО ДЛЯ ДУШИ. Мне все таки 20 ёбаных лет, а я не умею в пхп и БД. Это меня крайне унижает. Анон, поставь на путь истиный.
Аноним 26/02/16 Птн 13:50:35  667554
мда
Аноним 26/02/16 Птн 14:16:57  667574
>>667552

Мне 23 года, у меня диплом программиста, я не умею в ПХП и БД. Обнимемся?
Аноним 26/02/16 Птн 14:19:53  667576
>>667574
Ну го учить, хули! Я думаю ты знаешь что нибудь другое
Аноним 26/02/16 Птн 15:26:25  667632
>>667574
Мне 23, у меня диплом экономиста, и я только начинаю учить Пхп, чтобы перекатиться в пограминг
Аноним 26/02/16 Птн 15:30:22  667636
>>667518
Покажи пожалуйста все свои настройки в PHPstorm связанные с дебаггом и если не сложно в виртуалке как ты сетевое соединение настраивал (я через мост сделал и на убунте поднял вебмин) Я вот счас ребутнул машину, всё запустил с нуля, и теперь у меня даже в первом скрипте шторм не видит дебаггер
Аноним 26/02/16 Птн 15:42:34  667648
>>667636
в файле пхп.ини пропиши путь к дебаггеру и всё, в шторме не надо настраивать, оно само найдёт
Аноним 26/02/16 Птн 15:53:35  667661
>>667648
[xdebug]
zend_extension="/usr/lib/php5/20121212/xdebug.so"
xdebug.default_enable = On
xdebug.var_display_max_depth=6
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9005
xdebug.remote_handler=dbgp
xdebug.idekey=PHPSTORM
xdebug.remote_mode = req
xdebug.remote_autostart=1
xdebug.remote_log=/tmp/xdebug.log
xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0
xdebug.profiler_output_dir="/var/www/debugger/"
xdebug.profiler_output_name = "callgrind.%u.%H_%R"
xdebug.show_local_vars=1
xdebug.overload_var_dump=1
xdebug.max_nesting_level = 200
Вот настройки пхп.ини
меня смущает строчка xdebug.remote_host=127.0.0.1
что именно здесь должно быть?
Аноним 26/02/16 Птн 15:58:43  667666
>>667661
почему ссылка на файл .so? Хдебаг идёт как .dll
Аноним 26/02/16 Птн 16:01:38  667670
>>667576
Я думаю, он знает такое, что ему твоя пыха обоссаная нахуй не нужна.
Аноним 26/02/16 Птн 16:02:20  667671
14564917410630.png (54Кб, 1457x470)
>>667666
Аноним 26/02/16 Птн 16:18:11  667696
>>667671
откуда это?
Аноним 26/02/16 Птн 16:34:08  667739
>>667696
Sql.
Аноним 26/02/16 Птн 16:45:44  667772
>>667661
Должен быть ip по которому твоя убунта видит виндовс.
>>667666
Потому что dll это виндовс библиотека.
Аноним 26/02/16 Птн 16:46:14  667775
>>667696
>>667739
Webmin на ubuntu
Аноним 26/02/16 Птн 17:06:56  667834
>>667636
Дык выше уже все что где то менял выложил. У убунты нужно 2 сетевых интерфейса что бы ты к ней мог приткнуться и она к тебе. Паста от ОПа:
Алсо, если ты ставишь линукс в виртуалке в Oracle Virtual Box, то наткнешься на проблемку: линукс может лезть в интернет, а ты к нему подсоединиться не можешь. Это по той причине, что Vbox подсоединяет сетевую карту твоей виртуалки к NAT. Чтобы в нее коннектиться, надо будет добавить вторую сетевую карту, выставить ей примерно такие настройки как на пикрелейтед (обрати внимание на слово host-only network).

Ну и потом в самом дебиане перенастроить эту карточку, естественно, сама она себя не настроит. Вот что надо дописать в /etc/network/interfaces:


auto eth1

iface eth1 inet static

address 192.168.56.2

netmask 255.255.255.0

gateway 192.168.56.1

metric 100


Ну надеюсь ты понимаешь, что тут указан Ip-адрес и шлюз.


После этого, перезапусти сеть через sudo service networking restart

Если все ок, то ты сможешь пинговать виртуалку с хоста через ping 192.168.56.2 .Если не ок — читай записи в /var/log/messages

Возможно, твой фаерволл или антивирус может заблокировать пинг или попытку соединиться с виртуалкой. Придется его перенастроить.

Чтобы обращаться к виртуалке через имя, пропиши его в файл hosts.

Работать через консоль виртуалки неудобно, так что включи ssh и коннекться через программу вроде putty. По ssh можно также передавать файлы (например программой WinSCP) так что все это тебе пригодится.

Проблемы? Смотри логи командой tail -30 /var/log/messages (понядобятся права админа).
Аноним 26/02/16 Птн 17:23:44  667864
>>667834
Всем спасибо кто помогал, в общем всё работало ещё вчера, я не учел что у меня vqmod на сайте, и брейкпоинты в оригинальных файлах не влияли на работу сайта, он просто работал с закешированных файлов.
Аноним 26/02/16 Птн 17:26:37  667871
Проблемы со стилями для принтера, делаю отдельный файл css и пишу там следующее:

@media print {

Копирую сюда весь css код

}

При этом ничего не выравнивается по центру, когда выводишь документ на печать, выравнивается только если проставить вручную все выравнивания в самом HTML, но это само собой долго и неудобно.
Аноним 26/02/16 Птн 17:30:52  667876
Пишу
<?foreach($arr as $key=>$val) {?>
<tr>
<td><?=$key?></td>
<td><?=$val?></td>
</tr>
<?}?>
Выдает Undefined variable val и key. Что за дела?
Аноним 26/02/16 Птн 17:42:47  667883
>>667876
Всё понял. Короткая запись <? не работает.
Аноним 26/02/16 Птн 17:44:50  667886
>>667883
Попробуй так.
<?foreach($arr as $key=>$val) {
<tr>
<td><?=$key?></td>
<td><?=$val?></td>
</tr>
}?>
Аноним 26/02/16 Птн 17:45:46  667887
>>667886
<?foreach($arr as $key=>$val) {
<tr>
<td>$key</td>
<td>$val</td>
</tr>
}?>

А лучше так.
Аноним 26/02/16 Птн 17:46:13  667888
>>667883
Так ты сначала определи сами переменные-то, лалка.
Аноним 26/02/16 Птн 17:49:10  667890
>>667888
Так они определены в foreach
Аноним 26/02/16 Птн 17:50:17  667892
>>667890
А ты сам массив $arr разве определил?
Откуда они у тебя возьмутся, из воздуха?
Или ты не весь код показал.
Аноним 26/02/16 Птн 17:51:33  667893
>>667892
Я мимопроходил вообще.
Аноним 26/02/16 Птн 17:52:34  667894
>>667892
Это кусок кода, $arr определен ранее.
Аноним 26/02/16 Птн 17:54:10  667896
>>667894
Вот такое что-то тебе нужно было: http://ideone.com/wigFKJ ?
Или что? Я просто не работал с HTML в PHP пока, стало интересно.
Аноним 26/02/16 Птн 17:57:47  667899
>>667896
Спасибо, но я уже написал, что разобрался.
Аноним 26/02/16 Птн 18:02:36  667902
>>667899
А для чего это было нужно, что-то в задаче ОПа?
Аноним 26/02/16 Птн 18:11:50  667912
>>667902
Нет. Решал задачу на расчет набора монет для суммы сдачи, используя mvc.
Аноним 26/02/16 Птн 18:20:56  667916
14565000565030.png (525Кб, 750x548)
Карач, все ваши калбэки превращаются в банальный call eax. Шах и мат, абстрактные долбоебы. Следующими для унижения будут замыкания и комбинаторы
Аноним 26/02/16 Птн 18:27:57  667921
>>667916
А почему на фоне не члены и членики, большие и маленькие?
Аноним 26/02/16 Птн 19:16:01  667977
14565033618350.png (152Кб, 724x539)
>>667916
>root
Аноним 26/02/16 Птн 19:28:56  667991
>>667916
Кто-то очень не любит php и репостит вам из ньюфаг-треда.
Аноним 26/02/16 Птн 21:13:58  668089
14565104386530.jpg (159Кб, 1024x768)
Короче, делаю манячат, как мне отображать нормально сообщения с тегами типа <div> <script> и тд? Я сделал автозамену на спецсимволы, но думаю что есть какой то более простой вариант, например прописать что то в css или завернуть текст сообщения в какой нибудь текст. Так как сделать?
Аноним 26/02/16 Птн 21:14:51  668091
>>668089
>завернуть текст сообщения в какой нибудь тег
Аноним 26/02/16 Птн 21:45:17  668115
>>668089
В PHP есть функция htmlspecialchars.

И почитай урок про XSS.

https://github.com/codedokode/pasta/blob/master/security/xss.md
Аноним 26/02/16 Птн 21:46:27  668116
14565123871980.jpg (58Кб, 990x619)
Подмогни немножечко :)
как сделать так, чтобы депозит перевалил за лям?
Аноним 26/02/16 Птн 21:46:49  668117
ссылку потерял
https://ideone.com/klAllR
Аноним 26/02/16 Птн 21:56:49  668122
>>668116
Поставь $deposit *= 1.1 в тело цикла.
После каждой итерации проверяется условие в цикле, поэтому как только становится больше миллиона - всё обрывается, не срабатывает echo.
Аноним 27/02/16 Суб 00:50:08  668254
>>667916

Ты дурак? Это пхп тред, ты постишь скомпилированный неизвестно каким компилятором код на Си и пытаешься что-то доказать.

Алсо чтобы увидеть ассемблерный листинг скопилированной функции, незачем запускать отладчик. Можно попросить компилятор сгенерировать ассесблер. Иди мануалы читай, а не демонстрируй свое невежество.
Аноним 27/02/16 Суб 01:15:14  668273
>>665473
Ну главным плюсом считал скорость развертывания, имхо подразумевая то что на винде вообще не удобно работать.
Установить что либо на него можно.
Вагрант ставится из экзешника и ни с чем не конфликтует.

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

Аноним 27/02/16 Суб 01:35:31  668284
Вечер в хату, помогите с задачей про айфоны. Я только начал осваиваться в погромирование. Но вроде туповат. Я не совсем пойму условие задания. Мне нужно, чтобы в конце этой задачи не было отрицательного значения? Но тогда у меня остаётся долг в банке и я не пойму что писать в теле цикла.
Аноним 27/02/16 Суб 01:38:00  668285
>>668284
Запости что уже осилил.
Аноним 27/02/16 Суб 01:40:15  668287
>>668285
http://ideone.com/P8593d
Аноним 27/02/16 Суб 02:18:46  668296
>>668287
Алгоритм. Считаем сколько сейчас васян должен банку.

Если васян должен больше чем 5000 то платим 5000. Иначе платим сколько нужно.

Проверяем. Кредит баланс = 0 ? тогда выходим из цикла.

Обрати внимание: сначала считаем долг за текущий месяц. А потом платим сколько нужно/можем. А не в одну строчку как в исходном алгоритме.
Аноним 27/02/16 Суб 02:42:15  668308
>>668296
Спасибо, я решил её. Не знаю, такое решение принимается? Или это не верно?
http://ideone.com/P8593d
Аноним 27/02/16 Суб 02:54:31  668311
>>668308
Не принимается.
Если, конечно, ты не захотел профинансировать банк лишними тремя тысячами.
Аноним 27/02/16 Суб 03:18:15  668312
>>668311
Вроде исправилсяили всё же нет?
http://ideone.com/P8593d
Аноним 27/02/16 Суб 05:05:18  668331
Когда я читаю этот тред, у меня чаще всего появляется ощущение вроде BOMBANOOLO, потому что я понимаю, насколько я мало знаю и насколько я тупой в принципе. Но когда читаю ньюфагов, я понимаю, что я уже далеко продвинулся. Но все же нагоняет уныние то, что эти ньюфаги после пары задачек сливаются, а я так и остаюсь самым последним.
Аноним 27/02/16 Суб 08:28:11  668372
Не получается сделать отладку в NetBeans. Вроде настройку xdebug сделал, phpinfo его показывает. При запуске отладки в строке адреса к адресу добавляется ?XDEBUG_SESSION_START=netbeans-xdebug. Пишет
Object not found!

The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.
В чём может быть дело?
Аноним 27/02/16 Суб 08:30:56  668375
>>668372
Да ты заебал со своей отладкой! Хуярь как есть, блять!
Аноним 27/02/16 Суб 08:32:08  668376
>>668331
Держи нас в курсе.
Аноним 27/02/16 Суб 08:50:55  668383
>>668372

Проверь URL в адресной строке браузера - он скорее всего неправильный.
Аноним 27/02/16 Суб 10:57:53  668434
>>668376
Для человека достаточно важно формулировать свои проблемы в словах, а также быть услышанным, пусть это и мимокрокодилы в интернете.
Аноним 27/02/16 Суб 11:22:29  668446
Не спал сутки. Помогите, пожалуйста, с говнокодом.
Почему в этом http://ideone.com/xpUiVh случае в форыче строка склеивается как положено, а тут http://ideone.com/xpUiVh она дублирует сама себя, и получается 3 строки, вместо одной? Код один и тот же ведь. Ну как мне кажется.
Аноним 27/02/16 Суб 11:23:16  668447
>>668446
Вот тут https://ideone.com/bCxecz дублирует.
cамофикс
Аноним 27/02/16 Суб 11:53:18  668477
По тестированию есть уроки или самому искать надо?
Аноним 27/02/16 Суб 12:25:16  668497

Аноним 27/02/16 Суб 12:25:59  668498
Знатоки вордпресса есть? Мне нужно добавить несколько фильтров (add_filter, изменение заголовков, метатегов и контента) только на конкретной странице. Или зная ID страницы, или когда срабатывает шорткод. Так вот, есть ли варианты это сделать, не запуская сам фильтр и не проверяя ID внутри него?

К примеру, грубо говоря
function edit_the_title($title){
If (get_the_ID()=="69"){
return $title." Edited title";
}
return $title;
}
add_filter('wp_head','edit_the_title');

Работает, но в этом случае проверка происходит на каждой странице вообще, а это не есть хорошо, как по мне - так как этих проверок у меня несколько а вопдпресс и так лагает.

If (get_the_ID()=="69"){
add_filter('wp_head','edit_the_title');
}
И тому подобное не работает, я полагаю что станица еще не успевает получить ID на момент обработки основного уровня плагина. Вообще не могу найти в гугле примеров работы add_filter внутри других функций и хуков.
Аноним 27/02/16 Суб 12:51:41  668530
>>668331
я это ты, братюня, ты это я
Аноним 27/02/16 Суб 13:01:21  668547
Анон, поясни, нахуя кодить сайты если уже полно CMS и конструкторов? Не кажется ли тебе, что это умирающая тема уже?
Аноним 27/02/16 Суб 13:06:09  668555
А кто сказал, что мы сайты кодим? Мы веб-приложения пилим.
Аноним 27/02/16 Суб 13:08:03  668557
>>668555
Какие ты веб приложение на пыхе пилишь? На жсе можно расширение браузерное сделать, игру, да что угодно. А на пыхе только сайтики.
Аноним 27/02/16 Суб 13:11:47  668560
>>668557
Веб-приложения, где нужна связка php+mysql.
Аноним 27/02/16 Суб 13:16:00  668564
>>668560
Пример веб-приложения приведешь?
Аноним 27/02/16 Суб 13:23:54  668568
>>668564
Яндекс.толока.
Аноним 27/02/16 Суб 13:28:08  668577
>>668477

Есть такое https://gist.github.com/codedokode/a455bde7d0748c0a351a

>>668547

Изучай CMS и конструкторы. Но они ориентированы на тех кто хочет делать сайты через админку мышкой или слегка доработать существующий код.

Аноним 27/02/16 Суб 13:33:04  668582
>>668446
>>668447
Умоляю, помогите мне.
Аноним 27/02/16 Суб 13:54:53  668597
>>668582
Так у тебя var_dump внутри foreach, вот он на каждой итерации тебе и показывает содержимое строки.
https://ideone.com/8unvtR
Аноним 27/02/16 Суб 13:59:00  668599
>>668597
Ещё у тебя $yoda не инициализирован был.
https://ideone.com/nSzDeW
Аноним 27/02/16 Суб 14:04:37  668605
>>668599
>>668597
Пиздец, мозги совсем атрофировались за ночь. Спасибо огромное. Пойду спать.
Аноним 27/02/16 Суб 14:13:04  668613
Чего-то веб оказывается сложнааа. И сервера какие-то, и апачи, и мускулы, и фронт надо знать. Я даже не знаю за что браться прямо сейчас. Я нуфаг, хочу вкатиться в программирование. Скажите за что браться сейчас и посоветуйте лит-ру где хотя бы будут объяснять что это за серверы и как вообще сам веб работает.
Аноним 27/02/16 Суб 14:15:26  668620
>>668613
Чтобы не отбить желание кодить можешь пока писать на http://ideone.com/ и делать задачки из оп-поста.
Аноним 27/02/16 Суб 14:23:19  668628
>>668620

Или в онлайн-IDE с уже настроенным Апачом, MySQL и PHP, про которую я писал выше: >>667010
Аноним 27/02/16 Суб 14:36:33  668642
>>668312
Нет, там должна сумма выплат быть 61270.
Конкретно в этом твоём варианте вот что неверно: когда $creditBalance у тебя становится меньше $monthlyPayment, то у тебя следует вот это выражение: $creditBalance = ( $creditBalance х $percent ) + $servicePayment - $monthlyPayment;. И в какой-то момент это уходит в минус, от чего дальше всё идёт неверно.
Подсказка: попробуй ввести отдельную переменную для подсчёта $creditBalance = ( $creditBalance х $percent ) + $servicePayment, ведь именно когда этот момент становится меньше $monthlyPayment, нам и надо просто его выплатить и приплюсовать к $paymentTotal.

>>668331
Не всё сразу, бро.
Я вот уже третий месяц постепенно иду.
Есть братишки, которые одну за одной решали задачи, а потом слились на подступе к ООП.
У меня так-то тоже ПРИГОРАЕТ постоянно. Смотрю на "Кошки-мышки", "Сапёра" на JS, на "Вектор" - просто ПОЛЫХАЕТ, потому что пока ни черта не могу понять. Вот со следующей недели к ООП подступаю, только начал читать Зандстру и ОПа.
Аноним 27/02/16 Суб 15:03:37  668666
>>668498
Вордпресс не станет больше тупить из-за одного-единственного if.

>>668547
Без базара, братиш.
Разрабатывай сайты на CMS, греби бабло лопатой.

>>668613
Купи себе хостинг за 12 рублей в месяц и забудь про все это. http://host-food.ru
Аноним 27/02/16 Суб 15:05:18  668669
>>668547
Есть сайты, а есть веб-приложения
Сайты наполняются текстом и jquery при помощи мышки, веб-приложения — нет

Все зависит от задач
Аноним 27/02/16 Суб 15:40:10  668723
Правильно я понимаю, что в задаче "Числа прописью" нельзя обработать число больше PHP_INT_MAX?
Если я большое число буду обрабатывать как строку т.е. для разбиения использовать substr, а уже выделенные сотни, тысячные обрабатывать как числа это нормально или так делают только быдлокодеры?
Аноним 27/02/16 Суб 15:45:44  668730
>>668723
Лучше использовать вот такие конструкции:
if ($number >= 999 || $number <= 999999) {
}
if ($number > 999999 || $number <= 999999999) {
}
Это всё облегчит нахождение чисел для переработки "троек" (сотен, сотен тысяч и сотен миллионов).
Аноним 27/02/16 Суб 15:47:28  668733
>>668730
Ой, то есть в первом варианте:
if ($number > 999 || $number <= 999999) {
}
А до этого нужен вариант:
if ($number <= 999) {
}
Там будет просто сама функция, которая раскладывает минимальное число, тройное.
Аноним 27/02/16 Суб 15:56:37  668743
>>668733
>>668730
А если я хочу обрабатывать числа больше 999999999?
На моём комплюхтере с шиндовс echo PHP_INT_MAX выдаёт 2147483647 все что больше преобразуются в float.
Аноним 27/02/16 Суб 16:05:06  668751
>>668723

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

В задаче не требуется обрабатывать суммы больше миллиарда, однако, если тебе хочется чуть усложнить задачу, то есть специальные библиотеки для работы с числами неограниченной разрядности:

http://php.net/manual/ru/book.gmp.php
http://php.net/manual/ru/book.bc.php

Аноним 27/02/16 Суб 16:07:14  668753
>>668723

Тип float нельзя использовать для денег так как он имеет ограниченную точность http://php.net/manual/ru/language.types.float.php

(около 16 знаков)
Аноним 27/02/16 Суб 16:08:47  668757
сап, не могу настроить апач 2.2 в опенсервере.

http://pastebin.com/z2JZFxxz конфиг апача. В настройках в опенсервере слушает все ip, в hosts алиасы на оба(127.0.0.1 и 192.168.1.8) ведут на localhost. С локального компа могу зайти на сайт только через локалхост, тогда как по обоим ип выдает ошибку пикрил
Аноним 27/02/16 Суб 16:09:07  668758
14565785472530.png (10Кб, 822x276)
>>668757
отвалился
Аноним 27/02/16 Суб 16:13:54  668768
>>668723
Конверти в строку, используй substr.
(Здесь можно, цифры занимают 1 байт.)

Проверить, что на вход тебе пришли сугубо цифры, можно при помощи ctype_digit(string $string);
Аноним 27/02/16 Суб 16:18:33  668779
>>668723
Ты задания с регулярками пропускаешь априори?
Аноним 27/02/16 Суб 16:23:56  668789
>>664839

> Типа такого: require_once(__DIR__ . '../src/init.php') ?
Да

>> По моему тут может быть ситуация когда переменная не определена. Как можно писать надежный код если неизвестно существует переменная или нет?
> Поясни, пожалуйста. isset($_GET['registered']) недостаточно?

Речь по $msg. Она у тебя создается внутри 2 ифов выше этой строки:
https://github.com/disbeliever/php_training/blob/master/students/src/ControllerStudent.php#L23

Следовательно если ифы не сработают, переменная не будет существовать.

Если ты создаешь переменную внутри ифа - ты должен только внутри его ее и использовать. То есть переменную надо использовать только в пределах того блока (области), в которой она создана.

> В UrlHelper есть смысл параметры ($sort, $dir и прочее) сделать членами класса и передавать в конструктор?
Это нелогично. Конструктор для тех параметров которые обязательны для создания объекта. С какой это стати нам нужно указывать сортировку чтобы создать класс генерации URL?

>> Однако тогда надо обеспечить инкапусуляцию, то есть чтобы никто другой напрямую к этой куке не обращался.
> Не очень понял, как это можно сделать.
В данном случае надо просто убрать обращения к этой куке (токену) из других мест кода если они там есть.

> unset($_COOKIE);
// используем функции хелперов, которые работают с $myCookie
> $_COOKIE = $myCookie;
Это вообще что-то странное, зачем уничтожать стандартный массив PHP?

>>> public static function fromRow($row)
>> Маппингом студента на строчку базы данных должен заниматься класс для работы с базой данных.
> Но это же по сути конструктор. В языке с перегрузкой методов, я бы их и использовал, а тут приходится так извращаться.
Перегрузка придумана не для того чтобы нарушать принципы разделения кода. Ты невнимательно прочел, то, чт я написал, давай я еще раз повторю:

- каждый класс должен заниматься своим делом. Взаимодействием с базой данных должен заниматься предназначеннный для этого класс. Модель студента не должна знать ничего о базе данных. Очевидно что статический конструктор нарушает это так как выносит знание о структуре базы данных из гейтвея в модель студента. Очевидно это неправильно.

> Я понимаю, но зачем нам здесь поддержка кириллицы?
Поддержка не нужна, но проще везде поступать единообразно и использовать mb-функции. Давай посмотрим с другой стороны. А какая выгода использовать здесь strlen? Чтобы сложнее было понять правильный код или нет?

strlen это не функция подсчета числа символов. Это функция подсчета числа байт, а в твоем коде очевидно считается число символов - следовательно ее использование тут не очень логично.

Аноним 27/02/16 Суб 16:34:51  668802
>>664870

> https://ideone.com/lqLSPc
Все верно

> https://ideone.com/ccwxQH
Тут тоже все правильно.

> https://ideone.com/ZuRDo8

> echo $string = "Я {$wor
Присваивание (=) и echo это 2 отдельных команды и они должны быть на 2 отдельных строках. Но в данном случае вообще непонятно зачем тут переменная и что мешает сразу вывести строку.

в остальном верно

> https://ideone.com/7g3WwD
все правильно.

>>665126

Попробуй прикинуть какие фичи тебе понадобятся, а какие нет. Например если ты не используешь "хлебные крошки" (breadcrumbs) то можно их не включать.

Вообще я думаю, тебе не понадобится большинство фич.
Аноним 27/02/16 Суб 16:35:56  668806
>>665163

В PHP для этого есть SplObjectStorage.

Аноним 27/02/16 Суб 16:37:11  668808
>>668757

Я не разбираюсь в опенсервере, так как он накручивает там что-то свое для конфигурирования Апача.
Аноним 27/02/16 Суб 16:40:14  668810
>>668808
Ну, напрямую я не мог конфиги править, после перезапуска он их стирал. Нужно править только через настройки самого опенсервера, но а сами параметры доступа вроде верны. Я везде поставил Allow All, в чем проблема?
Аноним 27/02/16 Суб 16:52:16  668831
>>668810

Обычно в Апаче в блоке VirtualHost указывается основное имя и алиасы, для которых применим данный блок, и иногда IP (но это не требуется указывать)

https://httpd.apache.org/docs/2.4/ru/mod/core.html#virtualhost

Соответственно если он иногда работает а иногда нет, что-то не так настроено. Надо смотреть какой там конфиш и сравнивать с докуентацией.

Не понимаю какая выгода мучаться с настройками опенсервера и разбираться что он делает с конфигами когда можно не ставить сборки, а ставить чистый Апач который работает как описано в документации.
Аноним 27/02/16 Суб 16:52:44  668832
>>668779
Нет, всё сделал. Только причем тут эти задачи? Разбивать регулярками? Так суть вопроса не в том, как разбивать, а можно ли с числом в данной задаче работать на этапе разбиения как с строкой.
Аноним 27/02/16 Суб 17:03:29  668844
14565818098190.jpg (36Кб, 500x475)
>>664784 (OP)
http://ideone.com/jwSIEZ
Ничего не понимаю. В туториале команда ucfirst, кажется, не упоминалась, но почему она не работает? Если вставляю простую строку - делает первую букву заглавной, если строка из массива - игнорирует.
Аноним 27/02/16 Суб 17:08:12  668847
>>668832
Да ни при чем. Просто я думал, что я тут один такой тупой сижу и не могу решить задачу с регуляркой, а вы все их тупо пропускаете.
Аноним 27/02/16 Суб 17:08:30  668848
Хочу сделать сайт-визитку. Мне для этого cms какую брать или самому писать?
Аноним 27/02/16 Суб 17:17:27  668855
>>668848
Wordpress/drupal/joomla
Аноним 27/02/16 Суб 18:00:57  668884
Не пойму, в слиме нельзя что-ли заголовки через header указывать, только через $app->response()->header?
Аноним 27/02/16 Суб 18:09:19  668894
Надо написать счётчик для вордпресс, есть определённая кнопка на записях одной категории, по которой вызывается определённое действие (без перезагрузки страницы и без аякса, обыкновенный яваскрипт), мне надо подсчитать сколько раз нажималась эта кнопка на каждой записи. Судя по всему, следует использовать аякс. Первое что приходит в голову это использовать шорткод (в котором будет скрипт счётчика), но в таком случае шорткод надо будет проставлять на каждой записи, а это я думаю не очень удобно, хотя на каждой записи уже есть шорткоды, которые подключают скрипт. Как можно сделать так, чтобы шорткод или функцию можно было бы подключить только для этой категории записи? Данные счётчика мне надо хранить в формате:

id - название страницы - количество нажатий

Стоит ли создавать для этого новую таблицу в вордпресс или постараться как-то обойтись существующими?
Аноним 27/02/16 Суб 19:05:41  668943
Есть два стула
$a = -12;
$b = 1;
$c = 1;
$discr=$b$b-4$a$c;

$dva_a = $a
2;
$x1=(-$b+sqrt($discr))/$dva_a; //ответ -0.25(правильный)


$x1=(-$b+sqrt($discr))/$a * 2; //ответ -1(неправильно)

ЧЯДНТ?
Аноним 27/02/16 Суб 19:07:31  668949
>>668943
> $dva_a = $a 2;
$dva_a = $a*2;

быстрофикс
Аноним 27/02/16 Суб 19:09:13  668952
>>668943
там должно быть /($a2) а не /$a2 это разные выражения
Аноним 27/02/16 Суб 19:14:34  668956
>>668666
>Вордпресс не станет больше тупить из-за одного-единственного if.
Бля, точняк, протер глаза - это у меня ORDER BY RAND() в таблицах по несколько десятков тыщ записей отжирает время.

>>668894
Шорткод со скриптом счетчика - так себе решение, лучше подключи JS файл со скриптом (через wp_enqueue_script() или как его там), который будет смотреть, та ли категория у страницы (я давно не делал ничего с JS на WP, но кажется там есть JS объект какой-то с информацией о посте) и навешивать действия на твои кнопки со счетчиком.
Хранить данные лучше в таблице вордпресса - кажется, wp_postmeta тебе должна подойти идейно.
Аноним 27/02/16 Суб 20:03:16  669015
<div class="main">
.main{
Background: url(images/1.jpg);
Height: 300px;
Weight: 100%;
Background-size: cover ;
}
</div>
Не получается вставить фон в css.
Далее вставляю его в html
<link rel="stylesheet" type="text/css" href="style3.css">
Что я делаю не так?
Аноним 27/02/16 Суб 20:04:31  669018
>>669015
Background-image, а не background
Нуфаг 27/02/16 Суб 20:10:07  669029
Сап, как посоветуете начать изучать PHР?
Аноним 27/02/16 Суб 20:11:45  669034
>>669029
Шапка для кого написана?
Аноним 27/02/16 Суб 20:29:02  669054
>>669018
Изменил.

Все равно фон не менятся, где еще может быть ошибка?
Аноним 27/02/16 Суб 20:29:17  669055
сап, аноны! я прочел несколько книг по пхп от орайли и теперь решил сесть и попробовать написать какое-нибудь тестовое задание шоб опыта набраться. сделал задание на базу студентов от опа, но больше ничего не лезет в голову. накидайте мне средних заданий, чтобы реально можно было попрактиковаться
Аноним 27/02/16 Суб 20:38:36  669065
>>669055
Файлообменник смотри, это следующая задача от ОПа. Так же можешь попробовать написать свою борду или блог, но это уже посложнее будет.
Аноним 27/02/16 Суб 20:41:42  669069
>>669065
кстати, интересно, неужели все треды в борде хранятся в бд? или есть какой-нибудь механизм автоочищения таблиц? как думаете?
Аноним 27/02/16 Суб 20:44:00  669071
>>669069
Конечно есть механизм автоочищения. То же самое происходит и с файлами в этих тредах, если тред тонет, то все картинки которые были туда загружены будут доступны на сервере какое-то время (в /b/ это обычно пару часов, за тематику не знаю).
Аноним 27/02/16 Суб 21:08:45  669098
>>669054
Ты уверен, что путь правильно прописал? Судя по картинке, у тебя в папке с файлом .css есть папка, где лежит искомый фон, так?
Аноним 27/02/16 Суб 21:09:02  669099
>>669098
Ой, судя по коду, то есть.
Аноним 27/02/16 Суб 21:14:41  669103
>>669098
Не-а, фон (картинка) в другом месте. В этом фейл?
Аноним 27/02/16 Суб 21:16:27  669107
>>669054
Открой код страницы в хроме (я надеюсь у тебя хром) выбери body в колонке стилей справа смотри на ссылку со стилем, где прописан background-image и пройди по ссылке.
Аноним 27/02/16 Суб 21:18:03  669109
>>669107
По изображению? не переходит
Аноним 27/02/16 Суб 21:20:24  669115
>>669109
Почему не переходит? Полную ссылку в студию и местоположение картинки относительно корня сайта.
Числа прописью Аноним 27/02/16 Суб 21:23:55  669120
Посмотрите доработанный вариант. Нормально?

http://ideone.com/gckE38
Аноним 27/02/16 Суб 21:38:18  669141
>>669103
Ну вообще-то, да. Гугли пути в css.
Аноним 27/02/16 Суб 21:45:12  669149
>>668743
Да хоть 9999999999999999999999999999999.
Просто соответствующее количество if'ов для этого будет нужно.
Ты же будешь в строку переводить, а не математически.
Про математически анон тебе подсказал уже.
Аноним 27/02/16 Суб 21:51:54  669157
>>669141
Все равно не выходит, перенес в папку css со стилями, в папку images.
Аноним 27/02/16 Суб 21:52:20  669158
>>669157
Алсо, тут вроде бы тоже все чисто
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="stylesheet" type="text/css" href="style3.css">
<meta charset="utf-8"/>
Аноним 27/02/16 Суб 21:53:45  669161
>>669103
>>669141
https://github.com/codedokode/pasta/blob/master/network/urls.md

У ОПа есть урок про абсолютные и относительные ссылки, рекомендую почитать.
Аноним 27/02/16 Суб 22:28:18  669198
Лол.

Решал задачку по генератору имён. Ну скопировал код, а про название ф-ции что берёт рандомный индекс массива и не увидел. Решил всё способом, когда был
$random = rand(count($letters)-count($letters),count($letters));
Аноним 27/02/16 Суб 22:36:55  669208
>>669198
Де код?
Аноним 27/02/16 Суб 22:37:06  669210
Чувак, который решал проблему про пути в css, решил уже?
Проверьте задачки Аноним 27/02/16 Суб 22:42:21  669219

http://ideone.com/gvUha4 -5.3(оценки)
http://ideone.com/P526Ry -5.4(рост)
http://ideone.com/6F7GME -5.5(ответ на вопрос)
http://ideone.com/gU18qG -5.6(генератор имени)
Аноним 27/02/16 Суб 22:42:54  669221
>>669208
Вот - >>669219.
Только там небольшая ошибка с этим способом была и я всё же поставил нормальную ф-цию.
Аноним 27/02/16 Суб 23:27:13  669271
Поясните за задание "Шифровка" http://archive-ipq-co.narod.ru/l1/strings.html

Что-то не пойму, в чём стоит задача - нужно допилить для всех букв шифрующие символы или как?
Аноним 27/02/16 Суб 23:29:23  669272
>>669271
>Что-то не пойму, в чём стоит задача - нужно допилить для всех букв шифрующие символы или как?
Да.
Аноним 28/02/16 Вск 01:52:39  669382
Почаны, только начал.
Как в echo складывать две переменные?
echo "$a+$b" выводит 1+1, а не 2. Нужно создавать третью переменную для результата?
Аноним 28/02/16 Вск 01:57:58  669384
>>669382
http://ideone.com/MxIlKo
Аноним 28/02/16 Вск 01:59:03  669385
>>669384
Оу, извиняюсь
Спасибо
Аноним 28/02/16 Вск 03:49:25  669426
>>668894
>>668956

Я думаю, проще всего в шаблоне вывода записи сделать условие:

если (категория == нужной категории):
<скрипт>запуститьСчетчик()</скрипт>
endif

>>668943

/ $a * 2 значит поделить на a и умножить на 2, надо скобки ставить

>>668956

> Хранить данные лучше в таблице вордпресса - кажется, wp_postmeta тебе должна подойти идейно.
Да, если надо только хранить число нажатий и не надо хранить каждое нажатие отдельно

>>669015

<div class="main">
.main{
Это вообще что? Смесь CSS и HTML в одном файле?

>>669158

Залей свой HTMl и CSS код на jsfiddle.net

>>669198

> count($letters)-count($letters)
Это такой хитрый способ записать число 0?

Алсо, используй mt_rand - она надежнее и случайнее. Алсо тут ошибка, в массиве нет элемента с индексом равным count(...)

Аноним 28/02/16 Вск 05:09:24  669451
я идиот и нихуя не понимаю
<div class="form-group required">
<label class="control-label" for="input-payment-lastname"><?php echo $entry_lastname; ?></label>
<input type="text" name="lastname" value="<?php echo $lastname; ?>" placeholder="<?php echo $entry_lastname; ?>" id="input-payment-lastname" class="form-control" />
</div>

есть форма, как отправить в ластнейм готовое значени и скрыть элемент формы удалить? json жалуется
Аноним 28/02/16 Вск 05:18:55  669457
>>669451

Изучить HTML, в частности скрытые поля форм. Если ты не знаешь HTML то надо читать учебники, а не копипастить куски кода из интернета.
Аноним 28/02/16 Вск 05:26:28  669460
>>669457
спс за совет, сделал костыль гореть мне в аду
Аноним 28/02/16 Вск 08:23:32  669532
хелп
Есть скрипт входа на сайт с сессиями , все вроде бы ОК , но , при попытки извлечь из БД что-то кроме поля username я получаю..нихуя. просто пустое поле , можете пожалуйста ткнуть на ошибку? Там немного , всего 5 файлов.
https://dropmefiles.com/p7XUK
Аноним 28/02/16 Вск 14:05:07  669712
>>668789
>Это нелогично. Конструктор для тех параметров которые обязательны для создания объекта. С какой это стати нам нужно указывать сортировку чтобы создать класс генерации URL?
ОК. У нас есть класс, в котором нет данных, и методы которого зависят только от своих аргументов. Почему я не могу сделать эти методы статическими?
Аноним 28/02/16 Вск 14:26:58  669731
Никак не пойму как писать грамотно тесты. Ну вот допустим у программа считает сумму двух чисел и реализован паттерн мвц. То есть у меня есть класс модели в котором содержится метод sum($a, $b), класс контроллера который передает пользовательские данные из представления в модель и класс представления, который подключает шаблоны страниц, выводит данные которые были получены из модели. Если речь идет о модульном тестировании, то мне нужно тестировать все методы всех классов, а не только метод суммы в котором содержится основная логика приложения? А как их можно тестировать?
Аноним 28/02/16 Вск 14:33:24  669735
>>669731
У тебя модель active record? Ну хуево тебе значит.
Если выделить слой сервисов то будет намного проще и тестить и мокать.
В правильных контроллерах логики быть не может поэтому и тестить там нечего.
Хотя конечно можно написать интеграционные тесты чтобы проверить те же роуты и что все заводится в продакшен-конфигурации.
Аноним 28/02/16 Вск 14:45:01  669741
Посоны, нужно выбрать 20 случайных уникальных строк из таблицы размером около 30 000 строк. Сейчас у меня тупо
SELECT `ID`, `NAME`, `CITY` FROM `TABLE` ORDER BY RAND() LIMIT 20
ID- авто инкремент праймери ки.
Поковырял это чуть-чуть, понял что это дохуя медленный запрос.
В качестве промежуточного варианта решил следующее:
1. Отдельным запросом узнать минимальный и максимальный ID
2. Нагенерить с mt_rand 20 случайных чисел между мин и макс ID
3. SELECT `ID`, `NAME`, `CITY` FROM `TABLE` WHERE `ID` IN ($random_range_string)

Эта ебота получилась у меня, ясен хрен, быстрее первой раз в 8.
Но существует вероятность что некоторые ID будут удалены, что делает эту конструкцию какой-то ненадежной. Подумал, что в качестве костыля можно добавить еще один автоинкремент столбец в таблицу, который будет пересчитываться при каждой вставке/изменении/удалении значений. Происходят эти операции довольно редко, поэтому производительность этих запросов не так важна.

Короче, это разумный подход? Или существует какой-нибудь простой чудо-запрос, который сделает все красиво без этой еботы?
Аноним 28/02/16 Вск 14:46:58  669743
>>669741

Сделать индексированную колонку с цифрами от 1 до N и выбирать по условие x > R LIMIT y
Аноним 28/02/16 Вск 14:52:52  669744
>>669741
Написать хранимку которая будет дергать N раз

SELECT FROM table WHERE key >= FLOOR(RAND()MAX(id)) LIMIT 1
Аноним 28/02/16 Вск 15:00:44  669753
Ребятки, такая ситуация: допустим, я хочу начать разрабатывать некую йобу. Но создание гуёв хочу отложить на потом.
Вопрос: есть инструменты, которые помогут мне в тестировании функционала без пользовательского интерфейса?
Аноним 28/02/16 Вск 15:06:51  669756
>>669753
Десктопную на пхп? Мсье знает толк.
Во-первых оформляешь свою либу в пакет, пишешь юнит-тесты.
Потом можешь написать CLI как отдельный проект из которого дергаешь либу.
Потом делаешь свою гуйню, опять подтягиваешь либу, ибо нехуй держать яйца в одной корзине.
Аноним 28/02/16 Вск 15:10:46  669760
>>669756
>Десктопную на пхп?
Нет, это будет веб-приложение. Гуями я назвал html-шаблоны и js, и там тоже будет потом достаточно работы. Не хочу распыляться, хочу сначала сервер сделать, потом клиент.
Аноним 28/02/16 Вск 15:23:41  669774
>>669760
Т.е. SPA но сервер на пхп?
Но зачем если есть более приспособленные под это языки?
Ну в любом случае начинать надо со спецификаций, см. BDD или TDD что тебе больше вкатит.
Аноним 28/02/16 Вск 16:54:45  669927
>>669774
>Т.е. SPA но сервер на пхп?
Да, наверное SPA. Гуи буду пилить на этом: https://www.sencha.com/products/extjs/

>Но зачем если есть более приспособленные под это языки?
Потому что я изучаю пхп.
Аноним 28/02/16 Вск 16:57:40  669935
>>660204
Снова вбрасываю исправленную версию Grammar Nazi
вот из этого поста >>653722
Поправил некоторые моменты, как вывести только часть строки с ошибкой я так и не уловил.
http://ideone.com/SHG6hF
Аноним 28/02/16 Вск 17:02:36  669940
>>669935
Всё плохо.
Ты собери свой текст, сделай его без абзацев - увидишь, что именно там плохо.
http://ideone.com/yAVftj
Объясняли же ведь уже этот момент тебе.
И да, надо выводить не с помощью var_damp, а с помощью переменной. Для этого надо доставать из массива $match соответствующие значения (ошибки, которые туда набиваются).
Хелп Аноним 28/02/16 Вск 17:06:06  669943
Как научиться понимать чужой код? Может есть какие-нибудь книги или практические советы?
Аноним 28/02/16 Вск 17:06:28  669944
>>669935
>как вывести только часть строки с ошибкой я так и не уловил.
Надо захватывать соседние слова, только и всего.
Регулярка вида: "слово, пробел есть или нет, ошибка, пробел есть или нет, слово".
Ты не понял, как найти слово? Там же объясняется это несколько раз: [а-яё] - а дальше знак, который при следующем пробеле оборвёт это вырезание. В итоге регулярка захватит только соседнее слово.
Аноним 28/02/16 Вск 17:07:12  669946
>>669943
С опытом должно прийти.
Пока проверяй все задачи анонов, которые сам уже решал, пытайся исправить и помочь.
Числа прописью Аноним 28/02/16 Вск 17:13:17  669950
>>669120
Что-то все игнорируют. Все неправильно что ли?

http://ideone.com/gckE38
Аноним 28/02/16 Вск 18:15:44  670012
>>669950
Мне лень проверять.
Аноним 28/02/16 Вск 18:20:24  670017
>>669950
Я ещё прежде работу проверял, всё переводило правильно. Толкового посоветовать ничего не могу.
Жди ОПа и его разбора.
Аноним 28/02/16 Вск 19:27:24  670144
Задачи из раздела "Функции".
http://ideone.com/fVLFtB
Аноним 28/02/16 Вск 19:37:54  670161
>>670144
1. В функцию можно подставлять непосредственное значение переменной: countMoney($creditSum,7777, $percent, 0, 0, $payout); - все те переменные, которые одинаковые, вставляются переменными. А те, которые отличаются, - вставляются числами.
2. В СофтоБанке должно получиться 61270 с копейками - как в задаче про Айфон. Здесь ошибка в расчётах. В последнем банке должно получиться 53 тысячи с чем-то. Ну это и естественно, что ошибки будут, раз контрольный средний банк считает неверно.
3. $creditSum х $percent / 100 + $comission - повторяется несколько раз. Лучше заведи отдельную переменную для этого.
4. $payment = $i х $payout; - неожиданное выражение, впервые в этих задачах встречаю такое. Вроде бы всё нормально в этом случае. Обычно просто плюсуют $payout к $payment.
Аноним 28/02/16 Вск 20:00:48  670193
Парни, накидайте мотивации. Я вот делаю-делаю задания, я желания нету никакого. Хоть умом я понимаю, что программирование для такого как я - это выгодный путь. Я просто не знаю для чего я всё это делаю? Что я смогу дальше, для чего мне эти задания, для чего вообще нужен пхп, как я потом деньги буду зарабатывать? Оп этого всего не объясняет.
Вот например - на гитаре когда учился, то я точно знал, что щас задрачу эту мелодию, а потом покажу друзьям/семье и они меня похвалят. Тут же, непонятно. Можете расписать, примерно, что будет происходить с моей жизнью, через месяц-три-полгода етц, если я продолжу обучение? В планах php->html,css->js->mysql.
Заставлю то я себя в любом случае, но если вы меня поддержите, то будет легче :3
Аноним 28/02/16 Вск 20:17:55  670215
Проясните за gulp, bower, grunt, вы пользуетесь этой дичью?
Аноним 28/02/16 Вск 20:20:28  670219
14566800282650.jpg (314Кб, 1600x754)
>>670193
>Можете расписать, примерно, что будет происходить с моей жизнью, через месяц-три-полгода етц, если я продолжу обучение
Ты инфантил и надеешься, что программирование преобразит твою жалкую жизнь. Но это не так, и ты просто будешь сосать хуй, не понимая, что происходит.
Аноним 28/02/16 Вск 20:28:51  670226
>>670161
Спасибо. Исправил расчет, а 3-й пункт не получилось, к сожалению.
http://ideone.com/bxYnHn
Аноним 28/02/16 Вск 20:44:12  670237
>>670219
да хули ее преображать? она и так прекрасна. Просто скоро придется деньги зарабатывать, а я не хочу утром вставать и идти выполнять приказы левых людей. Просто пример приведи.
Гитара: первую неделю пытаешься попасть пальцами в струны, постоянно сбиваешься с ритма, не можешь играть больше получаса изза болей в пальцах; месяц - умеешь играть одну песню, сыграл ее уже - 1000 раз, но все равно стесняешься показать людям, пытаешься что-то напевать при игре; 3месяца - умеешь играть несколько песен, готов тренироваться днями на пролет, горланишь на всю хату пока никого нету дома, аноны с сосача обоссали за кривой вокал; пол года - играешь 10+ песен, ни слушаешь никаких советов и уверен в том, что сам все знаешь, аноны пару раз похвалили пение, показал пацанам со двора - разцеловали; год - начинаешь изучать супер сложные композиции сам незная зачем ИТД.
Вот так нельзя?
Аноним 28/02/16 Вск 20:56:21  670254
14566821819550.jpg (143Кб, 850x505)
>>670237
>Вот так нельзя?
Один раз можно.
Извэни тора гой но йА не готов засирать своим нытьём ещё и этот тред.
Аноним 28/02/16 Вск 21:00:32  670261
>>670254
чат же все таки
Аноним 28/02/16 Вск 21:37:55  670312
Пытаюсь в древовидные комментарии. Не могу найти или придумать такое решение, в котором можно было бы обойтись без вывода хтмл кода прямо в функции(методе).
Аноним 28/02/16 Вск 21:40:39  670317
>>670312
Урок ОПа читал?

https://github.com/codedokode/pasta/blob/master/db/trees.md
Аноним 28/02/16 Вск 21:41:23  670320
>>670193
Научившись всему из гайдов в оп посте ты сможешь устроиться джуниором за почти нихуя в неприхотливую веб контору. Потусовавшись там с годик сможешь перекатиться во фриланс и работать из старбакса, попивая тыквенный латте и бугуртя на индусов.
Аноним 28/02/16 Вск 21:44:50  670325
>>670317
Нет. Пробежался по статье, там написано как хранить древовидные структуры в бд, у меня по сути в таком же виде организована таблица (кроме глубины). Мне нужно именно отображение этих данных.
Аноним 28/02/16 Вск 21:48:03  670328
>>670237
Всё можно. Сначала разберись во всех задачах ОПа, никуда не торопись, помогай новичкам, которые появляются и пропадают. Месяца за 3-4 натренируешься в задачах до высокого уровня, сможешь не глядя их решать, будешь читать чужой код и предчувствовать даже по описанию задачи, в чём человек ошибся.
Дальше - переходишь дальше.
Всё возможно, если изучаешь для удовольствия.
Ты же гитарой зарабатывать не собирался, наверное.
Аноним 28/02/16 Вск 21:56:29  670333
>>670226
Хм, в какой-то момент у тебя $creditSum уходит в минус.
Например, в какой-то момент $creditSum становится равен 260 рублей. Тут же происходит следующее: $creditSum = $creditSum х $percent / 100 + $comission - $payout;. Это всё становится отрицательным значением.
А далее у тебя if ($creditSum х $percent / 100 + $comission < 5000), то есть эта отрицательная $creditSum в этом условии даёт положительное и нужное число.
Это не вполне верно. Поэтому и не получится выделить отдельную переменную выражению $creditSum х $percent / 100 + $comission.
ОП не будет доволен, он всё это видит насквозь.
Расчёты не должны нырять в минус в этой задаче.
Аноним 28/02/16 Вск 21:56:55  670334
>>670333
*равен 260-ти рублям
Аноним 28/02/16 Вск 22:06:57  670347
>>670320
Это твой личный опыт или влажные мечты?
Аноним 28/02/16 Вск 22:08:42  670351
>>670347
Человек попросил накидать мотивации, ему и накидали.
какая разница правда это или нет, главное замотивировать
Аноним 28/02/16 Вск 22:16:22  670361
Допустим, есть чат. Нужно реализовать сохранение его логов для пользователей в виде картинки, как это сделать?
Аноним 28/02/16 Вск 22:17:45  670364
>>670193
Если начнешь хуярить, то через 4-8 месяцев найдешь работу (если ты не из пердей каких-нибудь).
Если не найдешь, значит плохо хуярил.
Аноним 28/02/16 Вск 22:19:10  670366
>>670193
Сколько тебе лет?
Аноним 28/02/16 Вск 22:34:29  670409
>>665709
>Знаком с OOP
Бери тогда Symfony. Без проблем должно зайти, коли не врешь.
Аноним 28/02/16 Вск 22:39:10  670422
>>666504
>перевернуть бинарное дерево
Это же совсем не трудно.
Аноним 28/02/16 Вск 22:43:40  670427
>>670328
Ты просто опыта набрался или книжки какие-то читал?
Аноним 28/02/16 Вск 22:46:17  670432
>>670366
20, а что?
Аноним 28/02/16 Вск 22:56:32  670457
>>670432
Короче, просто хуярь, и будет тебе счастье.
Отныне день, когда ты не напишешь ни строчки кода, не прочитаешь ни одной статьи про теме, будет прожит для тебя зря.
Уделять обучению надо не менее четырех часов в день.
Помни: главное - хуярить. Ты же не работаешь, верно? Значит времени и возможностей до хера.
Аноним 28/02/16 Вск 22:59:56  670462
>>670422
Многие в этом треде даже не знают что это такое.
Аноним 28/02/16 Вск 23:01:39  670466
>>670457
ок, спс.
Аноним 28/02/16 Вск 23:02:44  670467
Всем доброго вечера!
Проверьте задачку на правильные мобильные номера, пожалуста.
https://ideone.com/8fJqR0
Аноним 28/02/16 Вск 23:04:50  670472
>>670462
Многие в этом тебе много чего не знают. Новички же совсем.
Зато многие претенденты на позицию джуна знают.
Аноним 28/02/16 Вск 23:06:30  670475
>>670466
>ок, спс.
Правильно писать: "Ок, спс, ушел хуярить".
Аноним 28/02/16 Вск 23:07:19  670476
>>670472
>Многие в этом тебе
Многие в этом треде
Аноним 28/02/16 Вск 23:25:37  670503
>>670467
Вот это несколько раз скопировано: "\ ?".
Попробуй использовать квадратные скобки, которые означают "любой указанные символ в любом порядке", а также кое-какой символ после них - чтобы дать понять, что скобок, минусов и пробелов там может быть неограниченное количество.
Аноним 28/02/16 Вск 23:35:46  670514
>>670503
Сделал.
Аноним 28/02/16 Вск 23:42:18  670527
>>670514
https://ideone.com/2c6hDp - такого номера нет у ОПа (первый в правильных), но он вполне реален. Сможешь ли ты совладать с ним, не разрушив правильности проверки других номеров?
Аноним 28/02/16 Вск 23:44:35  670533
>>670514
Также к чему обратные слэши ставишь перед любым символом в квадратных скобках? Они там не выполняют свои функции, меняют своё значение. Символ пробела надо указывать символом.
Аноним 29/02/16 Пнд 00:11:04  670575
>>670533
>>670527
Сделал, правда с квардратными скобками не работало чомусь, вида: ([ (-]+)?
Аноним 29/02/16 Пнд 00:25:33  670603
>>670575
А теперь смотри, какие интересные номера у тебя верные.

https://ideone.com/mgkIba
Аноним 29/02/16 Пнд 00:51:01  670652
>>670475
Воистину так, сука мля, ебаныврот.
Аноним 29/02/16 Пнд 00:52:11  670655
>>670603
Согласен, но если мы принимаем что
>'8 ( 495 ) 1 - 2 - 3 - 4 - 5 - 6 - 7'
правильный, то почему
>'8 911 415 (16) (13)'
нет? Да и я на подсказку ОПа ориентировался
>сначала идет +7 или 8, за ними ровно 10 цифр, между которыми может быть любое число скобок, минусов, пробелов.
Но тем не менее я пофиксил(старая ссылка - актуальна) и сразу в догонку то-же только с заменой проверь, пожалуйста.
https://ideone.com/AG9xvk
Аноним 29/02/16 Пнд 01:11:52  670686
>>670655
И ещё про замену слова "дурак"
https://ideone.com/jh6Jiq
Аноним 29/02/16 Пнд 01:36:11  670725
>>670655
Одно пофиксил, другое сломал.
У тебя там два некорректных номера прошло проверку.

Вот мое решение, а то я сам не решал еще.
http://ideone.com/b2tQKa

checkPhoneNumber - это с выебонами, скобки могут быть только у кода города (код 3-5 цифр), дефисы не могут соседствовать со скобками (кроме дефиса после закрывающей скобки, чтобы пройти тест ОПа)
checkPhoneNumberIRL - как будет в настоящем проекте, тесты ОПа тоже проходит. Разница в первой строке массива incorrectNumbers, добавленной мной.

Алсо, кто сможет прочитать мою регулярку - тот герой.
Аноним 29/02/16 Пнд 01:39:31  670728
>>670725
>+7-(812)-567-55-67 неверный кафир
>+7-(812)1234567 неверный кафир
С какого такого перепугу? Это верные номера.
Аноним 29/02/16 Пнд 01:42:53  670734
>>670686
Забыл четвертую букву к.
Не экранируй пробелы.

Алсо, вместо пробела можно использовать символьный класс \s - любой пробельный символ (почти любой).
Алсо-2. Здесь тебе не нужна группировка в скобках - [дД] идентично (д|Д) для одного символа. Но здесь уже обязательно надо поставить модификатор u - utf-8.
Алсо-3. Если ты группируешь что-то в скобках, но запоминать результат тебе не нужно - пиши так: (?:раз|два). ?: - не делать ссылку, не запоминать эту группировку.

>>670728
А для меня - нет.
Аноним 29/02/16 Пнд 01:44:50  670740
>>670734
>А для меня - нет.
Пааапрошу пояснить.
ОП как раз и предлагал эти номера как правильные.
Аноним 29/02/16 Пнд 01:48:46  670746
>>670740
Это я их туда добавил. У ОПа в тестах их не было.

Энивей, базара нет - http://ideone.com/7xEGiD
Аноним 29/02/16 Пнд 01:51:44  670751
>>666493
>>666493
мне кажется, лучше будет не просто сравнивать окончания, а учитывать транскрипции и исключения
ударения конечно маст хэв
Аноним 29/02/16 Пнд 02:36:23  670781
>>670734
>4ая к
Нет, англ к выглядит по другому поэтому я её и не писал, наказал так сказать.
>Алсо-3
Не понил если честно.
Аноним 29/02/16 Пнд 02:54:09  670784
>>670781
Все, что группируется в круглых скобках, автомат регулярных выражений запоминает. Ты можешь потом использовать ссылку на этот результат в этой же регулярке или в строке для замены.

Например, /<(div|span)>.*?</\1>/ найдет только <div></div> или <span></span>, но не <div></span>. \1 - ссылка на первую сохраненную группу.

Если тебе не надо ничего сохранять - ты ставишь ?: после скобки. Так экономится память, а также не засирается итоговый массив с результатами, например.
Аноним 29/02/16 Пнд 03:05:52  670788
>>670784
Спасибо
Аноним 29/02/16 Пнд 03:20:17  670793
Так.
Посоны, каким-то блядь расчудесным образом надо вникнуть в jquery и научиться хуярить в бутстрапе за месяц.
Есть где-нибудь такая хуйня, чтоб я прочитал и охуел от пиздатости материала?
Аноним 29/02/16 Пнд 03:25:07  670794
>>670793
На codeacademy пробани для начала, вдруг охуеешь. Не от пиздатости, так от чего другого.
Аноним 29/02/16 Пнд 03:41:29  670796
Зашёл в список сообщений в контакте, посмотрел его разметку, а он таблицей сделан, это нормально?
Malikov 29/02/16 Пнд 04:46:40  670816
>>670794
Да, нормально. Учитывая гомоеблю с разной поддержкой стандарта в разных браузерах
Аноним 29/02/16 Пнд 09:04:29  670853
>>670237

Точно так же все и будет, твои навыки будут развиваться если ты будешь прикладывать усилия. Только вот работа и хобби это разные вещи, представь например что тебе надо каждый день по 8 часов играть одни и те же песни. Ну, никто и не обещал что будет легко.

> а я не хочу утром вставать и идти выполнять приказы левых людей.
Это никого не волнует. Не хочешь выполнять приказы - сиди дома гордый и свободный, питайся дошираком. Впрочем, мир на программировании клином не сошелся - есть и другие коммерчески востребованные навыки, но в любом случае быстро ты их не освоишь. А работа не требующая особых навыков, обычно плохо оплачивается и еще менее интересна чем программирование. Хочешь залезть повыше - докажи, что ты лучше других.

Ну и на гитаре каждый может научиться играть, а попробуй теперь клавиши освой.

Ну и вообще это тред про программирование, давайте ближе к теме держаться.

>>670312

Метод в классе TableGateway возвращает отсортированный массив комментариев. Шаблон приходится по ним циклом и выводит.

Вообще тут есть 2 варианта прелставления:

- плоский список: верстка такого списка будет представлять собой просто список дивов, у которых отступ слева пропорционален глубине комментария. При этом древовидная структура не отражена в HTML коде - в коде это просто идущий последовательно список дивов

- дерево: каждый комментарий содержит список своих детей, те содержат списки своих детей и тд. Вывод дерева делается рекурсивной функцией, а верстка отражает структуру дерева: дочерние комментарии в HTML находятся внутри родительских.

Второй способ семантичнее и имеет некоторые преимущества (скрыв один див можно скрыть комментарий со всеми потомками), но первый намного проще в реализации и предпочтительнее тут.

Я думаю, тебе надо больше изучать и практиковаться со структурами данных и рекурсией, ты их плохо знаешь. Для этого можно попросить у меня задачи, и одну я придумаю сразу.

Для решения этой задачи надо изучить что такое деревья. Почитай про них в википедии или где-то еще, изучи термины (корень, ребенок, потомок, предок, родитель, брат), изучи алгоритмы обхода дерева (в ширину, в глубину), оценки их сложности. Реши задачу:

Есть некое дерево. Реализуй это дерево средствами ООП. Узел дерева должен быть представлен объектом, поддерживающим такие методы:

- определение числа непосредственных детей
- определение общего числа потомков
- определение является ли узел корнем дерева
- определение глубины узла от корня дерева
- получение списка детей
- получение родителя
- добавление, удаление ребенка
- проверка, является ли данный узел потомком другого, проверка, является ли он его предком
- получение следующего и предыдущего брата (брат = узел имеющий того же родителя)
- перенос узла, чтобы он был N-м по очереди среди братьев
- перенос узла со всем содержимым к другому родителю

Сделав это дерево, реализуй на нем дерево кателога товаров. Сделай его вывод в таком виде, указывая в скобках число категорий-потомков:

Бытовая техника (5)
....утюги
....пылесосы
....телевизоры (3)
........LCD телевизоры

И еще там выше пишут про задачу "перевернуть бинарное дерево". Реши ее, сделав класс для бинарного дерева. "перевернуть бинарное дерево" значит поменять местами всех левых и правых детей. Также, ответь, можно ли наследовать бинарное дерево от обычного? Обычное от бинарного? Почему?

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

Вот кстати я помню, тут кто-то ныл что алгоритмы и структуры данных не нужно знать, задачки из раздела "повторим" не надо решать. Вот видишь, без этого у тебя сложности с выводом комментариев - вполне практической задачей. Так что давай изучать деревья.

>>670320

Повеселил. Вообще, аноны, подумайте чуть чуть своей головой. Если какая-то работа простая и любой может ее делать, на такую вакансию выстраивается очередь кандидатов, и работодатель может устроить среди них обратный аукцион (кто меньше попросит). Подумайте сами, какая будет зарплата и условия труда на работе не требующей никаких навыков. Вы точно хотите участвовать в таком аукционе?

>>670361

Сохранить логи и вывести на картинку с помощью какой-нибудь графической библиотеки.

Аноним 29/02/16 Пнд 09:16:32  670855
>>666504

Вот ты тут пытаешься намекнуть что знание "теории" (алгоритмов и структур данных) не нужно в реальной работе и требуется только на собеседовании. Но вот выше анон не может разобраться с вполне реальной задаче - выводом комментариев. Значит, все-таки это знание нужно? Видимо нужно.

>>670467

Посмотри что пишет твоя программа:

> + 849512345678
Это неправильный номер - тут 12 цифр

> - 8 911 415 (16) (13)
А это правильный.

Надо исправить ошибки в регулярке. Сейчас там у тебя она состоит из 2 частей (в первой 3-4 цифры, во второй 6-7). Это неправильно так как ты не можешь гарантировать что после 8 будет ровно 10 цифр - у тебя их может быть от 9 до 11.

>>670655

> 8 911 415 (16) (13)
Это правильный номер.

>>670725

> Алсо, кто сможет прочитать мою регулярку - тот герой.
Это как раз неправильно. Вот смотри, твою регулярку не разобрать - а как проверить что она правильная? Тесты ведь не покрывают все возможные варианты (да и не должны). А если окажется что у тебя там баг - как его исправить, не сломав регулярку?

Код должен быть понятен без необходимости разбирать твою регулярку на кусочки и анализировать все возможные сочетания символов. Код в фукнции checkPhoneNumber потому надо переделать.

Если ты хочешь добавить дополнительные ограничения (например разрешить ставить скобки только в коде города и соблдать их баланс) - ты должен сделать это не переусложняя регулярку, а каким-то понятным кодом. Ну например как-то разбить номер на части (со скобками и без) и анализировать их.

Потому твой вариант регулярки - не годится.

Код в checkPhoneNumberIRL в общем годится после улучшения оформеления кода. str_replace я бы заменил на preg_match ради краткости, и вынес бы ее на отдельную строку.

Вывод результатов по моему сделан не очень удачно - трудно понять пройдены тесты или нет. Я бы сделал так:

(крестик или галочка показывающие правильно ли определен ответ) (номер) (текст результата проверки)

Тогда бросив взгляд на левый край можно увидеть все ли ок.
Аноним 29/02/16 Пнд 09:33:35  670860
>>670734

Модификатор u надо ставить всегда (конечно еще лучше было бы если PHP это делал сам - в PHP6 это должно было быть, но не осилили). А то потом люди приходят в тред и спрашивают почему у них регулярка не работает.

>>666493

Там ударения надо знать и учитывать произношение: например чёлен-волн или "и горний ангелов полет, и гад земных подземный ход" (я мог пару слов перепутать конечно, вряд ли в оригинале было земных и подземных рядом). У Маяковского по моему есть рифма "блюда" - "буду". А если брать более поздние произведения - там еще более сложные рифмы могут быть. Также, в стихах по моему допускается переставлять ударение ради рифмы. Если тут есть гуманитарий-куны, они наверно лучше знают.

>>670784

> ты ставишь ?: после скобки. Так экономится память, а также не засирается итоговый массив с результатами, например.
Но удлиняется и зашумляется регулярка, так что лучше все же не ставить без надобности.

>>670793

Бутстрап какое отношение имеет к jQuery? Это разные вещи. Алсо, то что тебе нужно выучить это JS/DOM, HTMl/CSS. В ОП посте есть задачи, но за месяц ты вряд ли справишься. Но это потому что верстка и яваскрипт не такие простые вещи как некоторым кажется.

>>670794

Кодеакадеми это ознакомительный уровень. Годится чтоб понять, хочешь ты это изучать или нет, но верстальщиком ты вряд ли хорошим станешь с их курсов.

>>670796

Возможно разработчики вконтакте не очень сильны в верстке. Возможно, там есть практические соображения - display: table и многие вещи из CSS2.1 и CSS3 не работают IE6, 7, 8, а они долгое время поддерживались.

В современных браузерах дивы можно заставить вести себя как таблицу с помощью display table, если требуется такая раскладка блоков.

Я могу сказать что старая страница гугла, которую он показывает не новым браузерам тоже сделана на таблицах.

Однако является ли факт использования таблиц гуглом и вконтакте причиной не изучать современные семантичные методы верстки? Наверно лучше всего знать и новые и старые подходы и уметь выбирать оптимальный.

Ну и помни что таблицы очень плохо дружат с адаптивностью. Таблицу из 3 колонок нельзя превратить в высокую тонкую ленту.

Аноним 29/02/16 Пнд 12:23:01  670937
>>670860
> Бутстрап какое отношение имеет к jQuery? Это разные вещи.
Библиотека js и фреймворк разные вещи? Серьёзно? Не ожидал.
> Алсо, то что тебе нужно выучить это JS/DOM, HTMl/CSS.
хтмл/ксс уже более-менее, нативный JS придется осиливать по пути.
В оп-посте дохуя задач на пхп, а мне кроме того, что это такое в общих чертах и как оно работает знать пока что не особенно нужно, ибо я тупо не успею выучить пхп за месяц.

Пока что думаю пройти курсы кодакадеми js, jqeury, потом с помощью аллаха связывать всю эту хуйню пока что где-нибудь в иде, далее уже конкретно изучать бутстрап, чтоб иметь общее представление и оттуда уже комплексно углубляться в less, js и дрочить ксс сколько успею.

Аноним 29/02/16 Пнд 12:30:18  670945
ОП, как работают днс-записи для случая: домен куплен у оффициального селлера, перенаправлен на сторонний днс, а оттуда уже на нужный сайт? На офф-селлере NS запись, на стороннем - А?
Зачем нужна CNAME запись, если итак дохуя способов редиректа?
Аноним 29/02/16 Пнд 12:36:26  670948
14567385863370.png (59Кб, 826x1300)
>>670855
>твою регулярку не разобрать
Не разобрать регулярку e-mail из RFC.
Есть волшебный модификатор /x, который позволит записать это весьма удобно и понятно.
Например, так:
http://ideone.com/7xEGiD

>str_replace я бы заменил на preg_match
Вредные советы поехали. PCRE всегда медленнее любой строковой функции.

>>670860
>Модификатор u надо ставить всегда
Григорий Остер, вам пора залогиниться.
Пикрелейтед, специально для вас.

Совет: если вы понимаете, что вы делаете (только если понимаете), - не используйте модификатор u. Грубо говоря, он нужен лишь тогда, когда:
- в символьном классе вы используете не-ASCII символы,
- когда вам важно заматчить именно символ, который выходит за рамки ASCII.
Проще говоря, в выражении типа #<title>(.+?)</title># модификатор u не нужен. Вам не важны символы внутри title, вам важен сам текст, набор байтов.
А вот в выражении #<title>[^>]+</title>#u модификатор нужен, так как [^>] может наткнуться на байт, который является частью другого символа, но сам по себе равен >.

Нововкатившийся, если тебе непонятно, что тут написано - забей. Это немного запутанная магия.
Аноним 29/02/16 Пнд 13:07:44  670963
Зачем было делать, чтоб надо было try\catch прописывать в PDO, почему исключения нельзя переделать по умолчанию чтоб включались? Намного красивей код стал бы, нет, хотим лепить эти {} } { { { }
Аноним 29/02/16 Пнд 13:08:52  670964
>>670945

> домен куплен у оффициального селлера, перенаправлен на сторонний днс, а оттуда уже на нужный сайт? На офф-селлере NS запись, на стороннем - А?
Да. "Покупка домена" если я не путаю, значит что ты получаешь право указать NS для него. Покупка домена не подразумевает DNS-хостинг, хотя реселлеры могут предлагать такую услугу.

> Зачем нужна CNAME запись
Погугли:

> https://en.wikipedia.org/wiki/CNAME_record
> A Canonical Name record (abbreviated as CNAME record) is a type of resource record in the Domain Name System (DNS) used to specify that a domain name is an alias for another domain, the "canonical" domain. All information, including subdomains, IP addresses, etc., are defined by the canonical domain.

> This can prove convenient when running multiple services (like an FTP server and a webserver; each running on different ports) from a single IP address. One can, for example, point ftp.example.com and www.example.com to the DNS A record for example.com, which in turn points to the IP-address. Then, if the IP-address ever changes, one only has to record the change in one place within the network: in the DNS A record.

> CNAME records must always point to another domain name, never directly to an IP-address.

Чтобы упростить конфигурирование когда у сервера много имен, как я понял. Если меняется IP достаточно поменять одну запись. Плюс, ты фиксируешь что этот домен является синонимом другого.

> если итак дохуя способов редиректа?
Интернет не ограничивается протоколом HTTP, а в других протоколах редиректов нет. Правда, можно прописать дляобоих доменов один и тот же IP.

Также, редирект и алиасы - разная вещь. В первом случае у тебя один сервер редиректит на другой, во втором у тебя один и тот же контент доступен на 2 доменах (что обычно плохо).

Ну и такие вещи лучше проверять на практике. Бери линукс и утилиту dig (если нет то поищи онлайн утилиты), и делай например такой запрос:

....
продолжение поста: http://pastebin.ru/gLpkVrdP

И еще про точку в конце адреса. Она значит что имя домена окончательное. Без нее в случае неудачи клиент будет приписывать к нему "суффикс DNS" который задается в настройках сетевого интерфейса. То есть если в настройках прописан домен example.com и ты пытаешься разрешить имя server то сначала он будет искать домен server., а при неудаче - server.example.com.

Точка позволяет отключить этот механизм.

Аноним 29/02/16 Пнд 13:26:25  670972
где можно почитать про exception? У ОПа есть где-нибудь инфа про это?
Аноним 29/02/16 Пнд 13:31:08  670974
>>670948

> PCRE всегда медленнее любой строковой функции.
как насчет пруфов? как работает pcre внутри?

> Пикрелейтед, специально для вас.
разница с/без u = 20 микросекунд против 14? То есть ради 6 микросекунд ты предлагаешь исплоьзовать не-юникодный режим в котором сам черт ногу сломит и с которым разработчик будет тратить часы на поиски ответа "почему регулярка странно работает"? А вредные советы даю я?

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

Что касается 206 микросекунд при добавлении флага i - я думаю, такую проблему надо решать оптимизацией этого случая в pcre. А не превращением кода в нечитаемое месиво из скобочек.

А как насчет такого выражения:

/кот+собака/

Оно сработает без модификатора u? А такое:

/кот\b/

А как насчет такого?

/кот/i

Твои советы это закладывание мин в код, ждущих новичка. Может это хорошая идея если ты увольняешься и хочешь насолить злодеям не признающим гения.

> Есть волшебный модификатор /x, который позволит записать это весьма удобно и понятно.
> Например, так:
Комментарии это хорошо, но понятный без них код лучше. Ну и поддерживать выражение будет не очень удобно. Вот например это:

> (?(1)
Имеет тот недостаток что при добавлении новых скобок нумерация меняется.

В данном случае правильнее вынести часть проверки из регулярки в код. А такие регулярки пишут те, кто хочет похвастаться что они прочитали мануал по pcre. Но подумай сам:
а что если в команде с тобой окажется такой умник, который прочел мануал по какой-то другой библиотеке которую ты плохо знаешь, тебе понравится разбирать то что он там зашифровал? Я думаю, гораздо приятнее работать с человеком который пишет простой код, а рабочее время тратит на решение рабочих задач а не чтение мануалов.

Ну и я регулярки и посложнее видел: https://habrahabr.ru/post/171667/

Вдохновленный этой статьей, я тоже пытался сделать парсер чего-то, не помню уже чего, помню только что потратил много времени, скачал отдельно утилиту из pcre для отладки регулярки, но она в итоге так и не заработала - н езнаю, из-за моей ошибки или бага в pcre.

>>670963

Их и не надо писать. Их пишут только неграмотные авторы не понимающие как работают исключения. Исключения автоматически сами вылетают наверх. Они как раз и придуманы чтобы не надо было результат каждой функции проверять на ошибку.
Аноним 29/02/16 Пнд 13:32:31  670978
>>670948

Насчет замены str_replace на регулярку - я исходил из того что она будет компактнее и позволяет писать более сложное выражение. Разумеется, это не обязательно, и str_replace тут тоже годится. Насчет производительности - не уверен так как не помню как именно работает pcre, а лезть в документацию лень.

Аноним 29/02/16 Пнд 13:48:11  670988
>>670972

https://gist.github.com/codedokode/65d43ca5ac95c762bc1a
Аноним 29/02/16 Пнд 13:56:03  670995
>>670988
tusend tak
Аноним 29/02/16 Пнд 14:01:19  671000
14567436798440.png (28Кб, 529x807)
>>670974
>как насчет пруфов?
Пикрелейтед.
preg_replace в 5,5 раз медленнее str_replace.
>как работает pcre внутри?
Например, хотя бы парсит шаблон, чего не делает str_replace.

>разница с/без u = 20 микросекунд против 14? То есть ради 6 микросекунд
В программировании нет микросекунд, есть производительность, возрастающая или падающая в разы. Если производительность падает в 1,5 раза, это значит, тебе нужно 4 сервера, а не 3. На те же объемы работы.
Действительно, мне стоит почитать про экономику и менеджмент.

> /кот+собака/
> /кот\b/
> /кот/i
Не сработает ни одно.

>Твои советы это закладывание мин в код, ждущих новичка.
>новичка
>если вы понимаете, что вы делаете (только если понимаете), - не используйте модификатор u

Тем не менее, новичку это тоже полезно узнать. В школе никто не учит, что зыбиться и зиждиться - глаголы первого спряжения, однако, узнать об этом как минимум интересно, думаю, ты со мной согласишься.
Я не призываю ньюфага использовать столь хардкорные оптимизации. Просто неплохо бы знать - u может в разы замедлить регулярное выражение, что и есть ответ на твой вопрос, почему же php не ставит этот модификатор автоматически.
Аноним 29/02/16 Пнд 14:06:00  671003
>>670853
http://ideone.com/iX1g2y сделал дерево с каталогом
Аноним 29/02/16 Пнд 14:20:51  671010
>>670948
>А вот в выражении #<title>[^>]+</title>#u модификатор нужен, так как [^>] может наткнуться на байт, который является частью другого символа, но сам по себе равен >.

Кстати, я обосрался, в чем спешу признаться. utf-8 устроен так, что у любого байта не-ASCII символа старший бит - 1. У ASCII - 0.
Приведенная мной ситуация невозможна.
Аноним 29/02/16 Пнд 14:39:45  671027
>>671003
>public function getNextSibling(){
>$parent = $this->parentNode;
>$previous = NULL;
>foreach ($parent->getChildNodes() as $child) {

>getPreviousSibling

Что будет, если $this->parentNode = null?

> public function __construct($nodeName,$parent = NULL){
> $this->nodeName = $nodeName;
> $this->parentNode = $parent;
> }

> public function moveNode($parent){
> $this->parentNode->removeChild($this->nodeName);
> $this->parentNode = $parent;
> $this->parentNode->addChild($this);
> }

Не кажется ли тебе, что назнание родителя - неотъемлемое действие для метода addChild?
Не кажется ли тебе, что свойство parent в конструкторе - лишнее, а его должен задавать родитель в методе addChild?
Аноним 29/02/16 Пнд 14:40:28  671029
>>671000

> Если производительность падает в 1,5 раза, это значит, тебе нужно 4 сервера, а не 3. На те же объемы работы.
Только если основная функция твоего приложения это обработка текста регуляркой.

> Просто неплохо бы знать - u может в разы замедлить регулярное выражение, что и есть ответ на твой вопрос, почему же php не ставит этот модификатор автоматически.
Не поэтому, а потому что PHP "агностичен" по отношению к кодировкам, что в итоге приводит к куче неудобств и сложностей для новичков. Потому что для человека строка это цепочка символов, а не байт, и потому что когда человек хочет найти букву а с двумя точками, он хочет найти ее как бы она не была закодирована.

Ну и если подумать, в большинстве случаев нам нужны не только ascii. Мы ведь не в США живем.
Аноним 29/02/16 Пнд 14:41:35  671031
>>671027

У него parent сделан опциональным, его можно не указывать, но мне тоже больше нравится идея разделить создание узла и прикрепление его к родителю.
Аноним 29/02/16 Пнд 14:45:38  671037
>>671029
>Потому что для человека строка это цепочка символов, а не байт
А для программиста это должны быть байты.

>когда человек хочет найти букву а с двумя точками, он хочет найти ее как бы она не была закодирована
Это извечная борьба высокоуровневости с низкоуровневостью.
Хочешь меньше думать? Готовься выложить больше процессорного времени и памяти.

Я согласен с тем, что для такого простого языка, как PHP, мудрености с модификаторами - это лишнее. Но в то же время, не давай PHP спуститься на уровень ниже, это был бы громоздкий фреймворк для лоу-лоада (имплаинг, что php может в хайлоад).
Аноним 29/02/16 Пнд 14:46:58  671038
>>671031
Так ведь когда мы создаем объект, он так и так не имеет родителя.
Корректно добавлять объекту родителя лишь через метод addChild родителя.
Аноним 29/02/16 Пнд 14:49:22  671040
Алсо, меня смущает, что addChild происходит по объекту, а removeChild - по его имени. Все ООП по пизде.
Аноним 29/02/16 Пнд 14:53:37  671042
>>671038
http://ideone.com/01vujw исправил
>>671040
Согласен, глупо получилось.
Аноним 29/02/16 Пнд 15:04:48  671059
>>671042

А нужно ли имя? Если делать абстрактное дерево то оно должно быть просто абстрактным деревом, от которого наследуется уже например класс "дерево категорий"

С другой стороны, с именем проще отлаживать код конечно.

> public function addChild(TreeElement $child){
Нет проверки не является ли добавляемый элемент частью этого или другого дерева

> public function removeChild($node){
> if($child == $node){

Почитай про разницу == и === для объектов. == не ищет тот же самый объект, а лишь похожий на него.

> public function setChildNodes($newNodes){
Не выставляются корректные значения parent для старых и новых детей

> public function isDescendant($node){
> if($node->findDescendant($this->nodeName)){
Ты опираешься на предположение что у узлов есть имена и они уникальны. Это не так. Идентичностью объекта является сам объект.

> public function getNextSibling(){
> $parent = $this->parentNode;
А если там null?

> for($i = 0; $i<count($parent->getChildNodes()); $i++){
> if($n===$i){
> $newArray[] = $this;
Сложновато.А нельзя ли использовать array_splice? Аналогично, в удалении можно использовать array_search.

> public function moveNode($parent){
> $this->parentNode->removeChild($this->nodeName);
А если parentNode = NULL?

> public function displayAsCatalog(){
Это не должно быть в классе дерева. Дерево лишь хранит информацию, а не выводит.

Аноним 29/02/16 Пнд 15:14:01  671079
>>671059
>Не выставляются корректные значения parent для старых и новых детей
Не понял. Свойства у детей не меняются, они только меняют свой порядок в массиве.
>Сложновато.А нельзя ли использовать array_splice?
Хотел сначала так сделать, но потом перестал понимать что вообще происходит и переписал без него. В пхп не хватает джаваскриптовского сплайса, чтобы просто засунуть нужный элемент в середину массива.
Аноним 29/02/16 Пнд 15:28:57  671096
>>671079

Функция setChildNodes позволяет ведь в нее любые объекты передать, не обязательно детей того же родителя. И она публичная, а из названия следует что она позволяет заменить всех детей на узлы из переданного массива.

> Хотел сначала так сделать, но потом перестал понимать что вообще происходит и переписал без него. В пхп не хватает джаваскриптовского сплайса, чтобы просто засунуть нужный элемент в середину массива.
Вообще-то есть. Надо разобраться в этой функции, почитай мануал.

Аноним 29/02/16 Пнд 15:35:45  671100
какой же благородный дон станет писать на досуге на Scala или Clojure? Ведь всякие Scala, Clojure, F#, OCaml и прочие эрзацы нормальных языков програмирования нужны благородным донам только для того, чтобы использовать их работе, где им приходится считаться с мещанскими вкусами остальных работяг-програмистов. поэтому на досуге благородный дон будет пописывать на Хаскелле, Агде или Эпиграмме, и почитывать алгебраическую топологию или теорию категорий. А на Scala и Clojure на досуге пишут только некоторые представители люмпен-пролетариата, котрые подсмотрели это занятие за благородными донами на работе, и думают, что ритуальное копирование поведения благородного класса делает их самих благороднее.
Аноним 29/02/16 Пнд 16:04:06  671133
Решая задачки из ОП-поста, можно придти к мысли, что mysql с её слоупочными table locks и transactional safety и с её возможностью масштабирования только при помощи анальных расширителей не очень-то, собственно, и нужна в большинстве задач.
Аноним 29/02/16 Пнд 16:04:51  671135
Когда делал задачку про генерируемый стишок, не смог придумать ничего, кроме как этого нагромождения лишнего кода. Но я чувствую, что тут можно проще и быстрее все сделать.
http://ideone.com/Nt2kce
Аноним 29/02/16 Пнд 16:10:59  671151
self this parent
Чем они отличаются и когда что применяется?
Аноним 29/02/16 Пнд 16:11:57  671153
>>671135
Можно использовать одну переменную, а не 8.
Аноним 29/02/16 Пнд 16:16:26  671162
>>671153
Ага, переменные можно вообще не инициализировать, а объявлять непосредственно по ходу кода, но за такую хуйню тебе твои коллеги голову оторвут.
Аноним 29/02/16 Пнд 16:16:47  671163
>>671135
Копипаста много.
И должно быть так:
> слово1 слово2 слово3
> слово1 слово2 слово3
> Я слово4 слово5
А не так, как у тебя - под каждое слово своя переменная..
Чтобы добиться верного решения, можно пропустить всё через цикл.
Первые два раза выводится строка "слово1 слово2 слово3", а во время третьего прохождения цикла выводится строка "Я слово4 слово5" и цикл обрывается.
Цикл с $i, делает три круга. В первом и втором круге изменяются randomText1, $randomText2, $randomText3 и выводится echo "$randomText1 $randomText2 $randomText3\n";. А в третьем круге выводится echo "Я $randomText4 $randomText5.\n"; (а изменяться они могли и раньше, допустим).
Аноним 29/02/16 Пнд 16:22:43  671173
>>671151
$this указывает на текущий объект, а self на текущий класс.
Аноним 29/02/16 Пнд 16:24:13  671177
>>670974
>Их и не надо писать. Их пишут только неграмотные авторы не понимающие как работают исключения. Исключения автоматически сами вылетают наверх. Они как раз и придуманы чтобы не надо было результат каждой функции проверять на ошибку.
У ОПа приведены две ссылки на изучение PDO - официальный мануал и статья на хабре. В обоих сказано, что необходимо писать всегда трай-кеч.
Аноним 29/02/16 Пнд 17:11:03  671204
Что-то вдруг стало жалко времени, потраченного на выполнение заданий на HTML и CSS.
Почти две недели постепенно делаю задачи ОПа, осталось две штуки, а ещё вот отсюда: https://dash.generalassemb.ly - сделал три больших урока (все эти шаблоны и робота на CSS+jQuery, который чому-то не заработал).
Так-то интересно, вникаю, но как-то жалко времени именно на это, чувствую, что не так это всё важно лично для меня.
Скорее бы уже к ООП перейти, шаловливые ручонки трясутся и так и чешутся.
Аноним 29/02/16 Пнд 17:34:25  671223
>>671096
http://ideone.com/8lr92l теперь нормально?
Аноним 29/02/16 Пнд 19:08:16  671341
14567620961320.jpg (19Кб, 529x249)
Посмотрите, вот я запилил задачку йода-спик.
https://ideone.com/qTl9u2
ОП хотел, чтобы я запилил функцию, которая будет висеть в коде отдельно. Я понимаю, что в каком-то более серьезном коде нужно будет такие часто используемые функции выводить в одну отдельную, но в такой чисто академической задачке не считается ли моветоном мой метод решения? Или все же нужно именно с пеленок себя приучать к такому стилю?
Аноним 29/02/16 Пнд 19:10:09  671344
>>671341
Имею ввиду функцию, которая делает первую букву большой, заглавной.
Аноним 29/02/16 Пнд 19:11:47  671348
Я вот не пойму, в materialized path чтобы добавить запись в таблицу, мне придется делать еще один запрос просто для того, чтобы узнать номер пути последней записи? Я ведь не могу использовать авто инкремент для строки.
Аноним 29/02/16 Пнд 19:16:43  671351
>в этом задании нельзя использовать свойство overflow и position
Да едрить же твою мать...........
Аноним 29/02/16 Пнд 19:18:48  671354
>>671351
display: inline-block - сразу нахожу ответ, стоит только гряяяязно выругаться.
Аноним 29/02/16 Пнд 19:20:11  671356
>>671348
>materialized path
Сколько времени ты потратил, что перенести огромную смердящую кучу наваленных друг на друга небольших пакетиков с говном из mysql на mongodb?
Аноним 29/02/16 Пнд 19:24:03  671364
14567630439470.jpg (21Кб, 632x158)
Анон, я может что - то пропустил, но зачем эти скобки
Аноним 29/02/16 Пнд 19:27:20  671369
>>671364
Ccылка на переменную (как и сама переменная) не читается в двойных кавычках. Чтобы ее прочитал эхо, переменную нужно взять в фигурные скобки.
Аноним 29/02/16 Пнд 19:31:29  671375
14567634899570.jpg (7Кб, 303x90)
14567634899571.jpg (3Кб, 136x48)
>>671369
Аноним 29/02/16 Пнд 19:38:01  671387
>>671375
Ой, что-то я попутал. Естественно, в одинарных кавычках не читаются переменные. Просто некоторые люди любят писать в одинарных, и для этого придумали фигурные скобки в эхе.
Аноним 29/02/16 Пнд 19:38:41  671388
>>671364
Здесь они не обязательны.
Вот здесь есть про разные варианты подстановки переменных в строки:
http://php.net/manual/ru/language.types.string.php#language.types.string.parsing
Аноним 29/02/16 Пнд 19:40:39  671389
>>671387
>>671388
Понял, спасибо
Аноним 29/02/16 Пнд 19:45:06  671402
Аноны, серьезный вопрос. Как думаете, в пыху когда-нибудь завезут поддержку юникода? Так, примерно, можете почувствовать?
Аноним 29/02/16 Пнд 19:46:30  671405
>>671387
Нет. В одинарных не происходит подстановки переменных (и escape-последовательности выводятся как есть)

php > $a = "test";
php > echo '$a';
$a
php > echo '{$a}';
{$a}
Аноним 29/02/16 Пнд 19:50:30  671414
>>671405
Ну тогда я понятия не имею.
Аноним 29/02/16 Пнд 19:59:42  671431
Такой вопрос по Mysql (список студентов). У меня есть уникальное поле (unique) email. Когда студент редактирует свои существующие уже в базе данные(имя, фамилия, номер группы, баллы etc), я через оператор UPDATE пытаюсь их занести в базу данных вместо старой записи, но если он не редактирует свой емэйл, а только имя, фамилию, например - ничего не происходит, потому что данный емэйл существует, я так понял. Что делать?
Аноним 29/02/16 Пнд 21:16:24  671569
>>669753
Ребятки, бамп.
Аноним 29/02/16 Пнд 21:18:50  671573
>>671569
Тебе вроде бы уже ответили, нет? Десктоп на пыхе писать - долбоебизм, имхо.
Аноним 29/02/16 Пнд 21:22:16  671579
>>671573
Может он других не знает, а написать что-то очень хочется.
Аноним 29/02/16 Пнд 21:24:54  671587
>>671579
Если тебе что-то очень хочется написать, то учи что-нибудь другое. У тебя времени нет что-то новое учить? Или ты просто неосилятор?
Аноним 29/02/16 Пнд 22:18:20  671685
>>671573
>Десктоп на пыхе писать - долбоебизм
А почему, знаешь?
Аноним 29/02/16 Пнд 22:19:20  671686
>>671685
Потому что нет интерпретатора.
Аноним 29/02/16 Пнд 22:32:40  671707
>>671686
Чому не запилят? Такой распространённый язык - и нет интерпретатора.
Аноним 29/02/16 Пнд 22:55:57  671736
>>671431
Тебе же сказали в прошлом треде - вбей несколько известных значений и интерполируй линией.
Аноним 01/03/16 Втр 01:12:21  671881
>>671736

Путаешь меня с другим аноном. Не я тут один решаю список студентов. Можешь подробней объяснить?
Аноним 01/03/16 Втр 01:14:53  671883
>>671881
Алсо я конечно могу покопаться в том треде, но боюсь заспойлерю себе многие моменты из правильного решения.
Аноним 01/03/16 Втр 01:17:40  671886
>>671431

При проверке надо исключать редактируемого студента из числа записей по которым идет поиск.
Аноним 01/03/16 Втр 01:18:35  671887
>>671431

> например - ничего не происходит, потому что данный емэйл существует, я так понял.
У тебя не выводятся причины ошибок? Тогда тебе надо разобраться с этим.
Аноним 01/03/16 Втр 12:01:35  672137
Анончик выручай, решил, что пришло время изучить YII2 (до этого вообще не имел дело с подобными фреймворками) Читаю книгу Разработка веб-приложений в Yii 2 Марка Сафронова. Не понимаю почему там предлагают вместо создания приложений первым делом идет тестирование. В общем нужен совет. С чего начать. Книгу-то добью, но вкрадывается сомнение что пойму не многое
Аноним 01/03/16 Втр 12:07:56  672143
Добрый день, может не совсем по теме треда но всё же, я знаю тут есть шарящие люди: есть 3 поля с автокомплитом, суть в том, что при автокомплите мне запрос возвращает помимо лейбла (текста который выводится в поле после выбора) ещё и уникальный код этого лейбла, который я использую в инпуте с автокомплитом который под ним. Так вот, насколько я понял отключить браузерный автокомплит уже нельзя, это делается только в настройках браузера и повлиять я на него не могу: поверх моего автокомплита вылезает автокомплит юзера с его вариантами, так вот соответственно если юзер не выбрал из моих вариантов, а выбрал свой - айдшишник лейбла соответственно не появился и в автокомплите снизу я уже его использовать не могу то же самое случается и когда юзвер вводит весь текст города руками и соответственно при поиске улицы я уже не могу использовать айдишник города, а только текст. Как выходить из такой ситуации и есть ли какой то алгоритм построений автокомплитов, или если кто-то делал решения такого - поделитесь опытом. Алсо, извините за неровный почек и скудный слог.
Аноним 01/03/16 Втр 12:12:13  672147
>>672137
https://www.youtube.com/watch?v=R-yQux1S63w
Вроде даже новичкам понятно.
Фоном послушай, специально не трать время.
Для начала должно быть нормально.
Аноним 01/03/16 Втр 13:04:43  672180
>>672143

Отключить можно - гугли атрибут autocomplete. А что если юзер не будет ничего выбирать, а руками введет вариант? Ты бы мог просто использовать не кривую самоделку, а специально написанный виджет вроде chosen или select2. Если
Аноним 01/03/16 Втр 13:07:04  672183
>>672143

Не дописал. То что тебе нужно - не инпут с автокомплитом (как у тебя), а селект с фильтром. Выкинь свою кривую поделку и прикрути нормальный виджет.
Аноним 01/03/16 Втр 14:56:01  672314
>>672183
Спасибо, я предложил заказчку перепилить всё в селекты с фильтрацией но сказали что и так норм и нет объективных причин якобы, хотя я вижу что селект бы решил объективно все частные моменты для которых я изобретал и ещё буду изобретать велосипеды.
Аноним 01/03/16 Втр 15:07:54  672319
>>672314

как костыль можно попробовать сделать дополнительные проверки вроде того, что если юзер ввел текст и покинул инпут не выбрав вариант то искать этот текст в имеющемся списке - но это может работать не очень надежно. Ну и тогда надо сделать индикацию, того что город успешно выбран или что такого города в базе нет.
Аноним 01/03/16 Втр 15:10:39  672322
>>672314

Главная проблема которая у тебя сейчас - как я понимаю, отствие обратной связи, то есть пользователь не видит скрытое поле с id, и не понимает реальное состояние программы - какой город там выбран. И то что написанный в инпуте текст может отличаться от выбранного города в скрытом поле.
Аноним 01/03/16 Втр 15:43:50  672359
>>672322
>>672319
Главная проблема в том, что события типа отображение двух других инпутов с автокомплитом которые скрыты по умолчанию, привязаны к автокомплиту: при селекте показывает следующее окно, записывает в сессию выбор и тл, просто тупой юзвер может ввести руками до конца и сидеть тупить, или ввести с ошибками - если не будет лень допишу потом валидацию поля при нажатии enter/tab и отображении следующего поля,
Аноним 01/03/16 Втр 15:45:48  672360
>>672359

> что события типа отображение двух других инпутов с автокомплитом которые скрыты по умолчанию, привязаны к автокомплиту:
значит это была не лучшая идея

> просто тупой юзвер может ввести руками до конца и сидеть тупить
Это не пользователь тупой, а программист тупой

> потом валидацию поля при нажатии enter/tab
Там есть событие потери фокуса. Лучше изучить теорию прежде чем браться за практику.
Алфавит по кругу 01/03/16 Втр 17:46:21  672465
Прочел все подсказки ОПа, но я вместо уроков геометрии ходил с почонами в комплюхтерный клуб за углом. Подскажите где я обосралсяна лекции https://ideone.com/2vEntq .
Аноним 01/03/16 Втр 17:49:23  672467
>>671348
Бамп вопросу. Я вот-вот напишу самый уродливый велосипед в своей жизни, если не узнаю ответ.
Аноним 01/03/16 Втр 17:54:19  672471
>>671348
>>672467

Не можешь, да, придется делать. Хорошо бы еще и блокировки на нужные строки сделать чтобы невозможно было из 2 параллельных потоков создать запись с одним и тем же path
Аноним 01/03/16 Втр 19:04:41  672519
Анончики привет. Вкатывается мамкин прохрамист из шаражки , второкурсник. В этом семестре первый раз буду писать курсач. Все выбрали преподов, у которых полегче. А я выбрал которые дает задание приближенные к реалиям. Так вот, он спросил чего я хочу. И сказал, что хочу веб-приложение (т.к. копал в эту сторону и написал, что-то вроде задачи про студентов с ОП-поста), он сказал, что принеси покажи, что у тебя есть. Я принес, показал. И он сказал, что бы я сделал такое же, только на джаве... А я просто не знаю в какую сторону копать. Помоги, анончик.
Аноним 01/03/16 Втр 20:06:00  672559
bump
Аноним 01/03/16 Втр 20:06:50  672561
14568520103820.jpg (12Кб, 151x200)
>>672559
>543
>bump
Аноним 01/03/16 Втр 20:10:35  672564
14568522353450.jpg (76Кб, 544x766)
ОП нас покинул и больше не проверяет задачки.
Аноним 01/03/16 Втр 20:12:23  672566
>>672564
У ОПа пинг иногда и 5 дней может быть.
Аноним 01/03/16 Втр 20:19:51  672567
>>672561
пох, а друг тут бамплимит в косарь.
Аноним 01/03/16 Втр 21:59:11  672671
14568587511350.jpg (75Кб, 618x545)
>>664784 (OP)
slack, jabber, skype конфа изучающих есть какая нибудь?

на канале пхп в 2chpr.slack.com тухло
Аноним 01/03/16 Втр 22:05:36  672679
>>672671
Нет, мы нормальные люди а не пидорасы какие-нибудь.
Ответы за 24 февраля Аноним 01/03/16 Втр 22:06:51  672684
>>664858

В общем верно, но если ввести число больше чем число городов, вылетает с ошибкой Uncaught TypeError: Cannot read property 'country' of undefined

>>665327

> $answers["$random"]
Хотя ошибки тут нет, но писать кавычки тут не надо так как они лишние.

>>665338

> почему random лишь один раз рандомит и остаётся таким навсегда,
Потому что ты сохраняешь в переменную значение, а не превращаешь ее в генератор случайных чисел. Чтобы получить новое случайное число надо вызвать функцию mt_rand() еще раз.

> {$randomText1 = $word1[$randomWord1];
Скобка тут лишняя. Она ничего не делает, значит ее тут не должно быть.

Также, в массиве не обязательно писать все индексы, достаточно первого:

1 => ...,
....,
....

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

Ну и да, код можно было бы чуть сократить, использовав цикл для первых 2 строк, так как они генерируются по одному и тому же принципу.

>>665358

> ведь нельзя было делать такие штуки
> 1 => 'блабла',

Делать-то можно, но наверно проще не указывть индексы, а использовать автоматически проставленные с нуля.
Ответы за 24-25 февраля Аноним 01/03/16 Втр 22:07:14  672687
>>666028

> W1. https://ideone.com/r93YE8
Верно

> W2. https://ideone.com/8BIRn7
Верно

> W3. https://ideone.com/yqbFo1
правильно

> W4.1 https://ideone.com/Yikc7R
Не учтен случай когда число очков одинаковое, а числа на кубиках разные, должна быть ничья: https://ideone.com/N9JmkW

> W4.2 https://ideone.com/gipbSX
Тут все верно

> W5.1 https://ideone.com/MwfLmz
Ответ неправильный, должно получиться 61270. Код также запутанный, например код в ифе зачем-то повторяет код который написан перед ифом.

> W5.2 https://ideone.com/cVgjxu
Ответ вроде будет 49 лет, а не 50. Также, зачем там второй раз $y++? Также, зачем делать переменную $y если у нас уже есть счетчик в цикле $i?

> if ($sum > 1000000) {
А если ровно миллион?

> W5.3 https://ideone.com/iFv71d
Верно

> W5.4 https://ideone.com/jMJLFM
тут тоже верно

> W5.5 https://ideone.com/kVp3j3
Правильно

> W5.6 https://ideone.com/QcFU0m
> $random = mt_rand(1, count($letters));
> $randomText = $letters[$random];
Ошибка, в массиве индексы начинаются с нуля, а не единицы

> W5.7 https://ideone.com/Eh48abC
Ссылка не открывается

>>666128

> if ($creditSum < $payout) {
Это кстати можно заменить на min/max

А так, верно

>>666473

Оп тоже виноват, забыл что в школе абсолютное значение числа называют "модуль".

>>666479

Он прав, возьмешь кредит и не сможешь понять сколько ты переплатишь.
Ответы за 24-25 февраля Аноним 01/03/16 Втр 22:07:37  672688
>>666562

Чтобы понять почему медленно работает, изучай индексы в базе данных, ну и вообще разберись как выполняется запрос. EXPLAIN сделай. Из твоего кода понять как выглядит SQL запрос невозможно. Вот ты дал кусок кода от какого-то велосипеда, а как понять какой запрос он генерирует? Ты думаешь тут телепаты сидят?

> В sql не особо понимаю.
Это значит что ты не квалифицирован для той работы которой занимаешься. Изучай SQL пока тебя не выгнали.

И еще. Это не имеет отношения к сути вопроса, но вот этот вот код - это ад, и от него надо избавляться. Почитай что ли про Query Builder, посмотри фреймворки Юи 2 и Симфони 2. Увы, в нашей сфере многие не хотят учиться, а хотят сразу бежать что-то делать при том, что у них нет достаточноых знаний. Алсо, набор условий для поиска надо делать не массивом, а объектом-моделью.
> Общий запрос:
> $args['meta_query'][] = array(
> 'relation' => 'OR',
> array(
> 'key' => 'building_area_min',


>>666576

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

Ты всегда должен стараться ставить минимальную область доступности переменной. Может в некоторых случаях тебе вообще поле не нужно, а хватит обычной локальной переменной.

Ну и паста:

----

Инкапсуляция. У этого слова есть разные определения, в том числе такие что ничего не понять, потому объясню простыми словами.

Суть инкапсуляции в том, что класс скрывает (инкапслирует) в себе логику работы с данными и сами данные, а наружу выставляет методы. Пользователю этих методов не важно, как класс устроен внутри, как он хранит данные, ему достаточно вызвать нужный метод чтобы получить результат.

Это упрощает понимание кода: тебе не надо читать и разбирать код класса, достаточно прочитать название метода (и может быть комментарий к нему). Также, это упрощает изменение кода: если какое-то свойство имеет уровень private то доступ к нему возможен только из того же класса и тебе не надо бегать по всему коду и смотреть что там с этим свойством делается, тебе достаточно просмотреть один файл с этим классом.

Инкапсуляция это хорошо. Так как весь код, который занимается одной задачей, оказывается заключен внутри одного класса. Противоположный случай это когда код (или знание о его внутреннем устройстве) вылезает из класса и размазывается по всей программе.

Если проводить аналогии, то можно представить кофе-машину. Ты нажимаешь кнопку (=вызываешь публичный метод) и получаешь кофе (=результат вызова этого метода), при этом ты не видишь что происходит внутри нее и тебе не надо в этом разбираться.

----
Ответы за 24-25 февраля Аноним 01/03/16 Втр 22:07:56  672689
>>666584

У тебя в коде тоже есть ошибки, смотри:

> if (!$this->no_u_cant)
> return $age;
А если нельзя, то что вернется? В чем смысл функции которая иногда вернет правильный результат, а иногда неправильный? Это получился неудачный пример. Лучше было бы сделать пример, где у нас сначала было поле $age и метод getAge() { return $this->age; }, а после мы решили вместо хранения возраста сделать поле $birthday и вычислять возраст из текущей даты и дня рождения. Благодаря инкапсуляции нам было достаточно лишь один класс, не трогая весь остальной код. А что если бы инкапсуляции не было? То-то.

> public function set_age($age) {
> if ($age >= 18 && $age <= 99 && !$this->no_u_cant)
> $this->age = $age;
Это тоже плохой пример. У тебя на вход функции дается неправильное значение и ты ничего не делаешь, а молча его игнорируешь. Отлично, а как программист узнает о том что он сделал ошибку? Если функции дают неправильные параметры, надо не молчать а выбрасывать исключение, иначе ошибку придется искать намного дольше.

>>666619

Магических методов лучше избегать. Они для всяких фреймворков и библиотек, а в обычном коде их использовать не надо. Явное лучше неявного - с магическими методами код разбирать гораздо дольше.

>>666625

Вряд ли бы я стал так специально делать. Может опечатался.

>>666655

Неудачный пример кода. strip_tags зачем-то внутри модели (зачем он вообще нужен? почему я не могу в тексте новости угловые скобки использовать?), какие-то сеттеры-геттеры. В твоем случае нужны нормальные сеттеры вместо switch.

Вообще не логично, ставишь в новость один текст, а там оказывается другой. Отлично, долго придется искать почему так происходит.

Я тут подумал и так и не смог вспомнить нормальные примеры с методами get/set. Может в каких-то очень абстрактных штуках, когда мы не знаем заранее какие поля у нас будут в объекте- ну например в базовом классе формы, от которого наследуются конкретные классы, мы можем сделать с помощью get доступными элементы формы:

$form = new LoginForm;
$form->login->setValue('Ivan');
....

И то я не уверен что это такой уж хороший пример - что мешает просто нормальные поля тут использовать?

То есть они нужны только для создания абстракций, когда мы заранее не знаем список полей. В обычном коде они почти никогда не нужны.
Ответы за 25 февраля Аноним 01/03/16 Втр 22:08:20  672690
>>666733

Неправда.

>>666744

Попросил бы у нас задачи. Алгоритмы и структуры данных надо изучать начиная с простых вещей, а не браться сразу за сложное.

>>666755

> W5.1 https://ideone.com/94782z
Хотя ответ верный, код дублируется. Одни и те же вещи написаны 2 раза. Почему бы не упростить его?

> W5.2 https://ideone.com/MCoNPH
> if ($sum > 1000000) {
А если равно? Алсо можно перенести условие в шапку цикла.

> W5.6 https://ideone.com/qhdVJ8
> $random = mt_rand(1, $massiveCount);
Неверно, нумерация с нуля начинается а не с единицы

> W5.7 https://ideone.com/Eh48ab
Хорошо сделано

> W5.8 https://ideone.com/WNN6jp
Хотя программа работает верно, ее можно было бы упростиь за счет цикла, убрав повторы

> W5.9 https://ideone.com/QNB4l9
> $length--;
Название неудачное. Если это длина строки, почему она уменьшается? Ну попробуй сам это прости: "уменьшить длину на один". Можно вообще убрать переменную и выислять позицию из значения $i

> if ($palindrome = false) {
Ты перепутал = и ==. У тебя всегда будет срабатывать else.

>>666779

Вот видишь какая у нас хорошая в стране система образования!
Ответы за 25 февраля Аноним 01/03/16 Втр 22:08:38  672691
>>666771

> function inclineWord($number) {
> function declensionMillion($millions) {
Это однотипная копипаста. Копипаста - зло. Надо сделать универсальную функцию склонения любых слов, работающую например так:

echo declense(4, '%d кот', '%d кота', 'аж %d котов', 'ни одного кота')

Универсальные функции почти всегда лучше и дают более чистый код. Так как мы разделяем сущности и отделяем выбор формы слова от списка самих слов.

Более того, ты при копипасте забыл дописать проверку на 11-19 для тысяч и миллионов, я же говорю что копипаст зло и ведет к ошибкам.

> if($number%100 <= 20){
Это условие проще переписать как "если число заканчивается на 11-19 то вернуть нужную форму слова"

> if(isset($spelling[$number])){
А стоит ли это выносить как особый случай?

> fmod(floor($number/1000), 1000);
Можно использовать знак процента для получения остатка

> trim(preg_replace('/\s{2,}/u',
Чтобы не мучаться с пробелами, лучше сделать массив в который складвать слова, а в конце объединить его в строку.

>>666855

Да, при условии что это utf-8 (то есть только с ней, а не с UTF-16 например).

>>666860

Ты никуда не сохранил результат функции trim. Она не меняет переданную ей переменную.
Ответы за 25 февраля Аноним 01/03/16 Втр 22:08:58  672692
>>667001

> \b(.)
Короче будет написать \w

> \)?
А что за странное условие? Разве можно предложение с точкой на конце в скобки прятать?

> echo preg_replace_callback('#((?:^|[.?!])\)?)\s*\b(.)#su', function ($matches) {
Тут хватило бы preg_replace с $1 и $2

>>667066

Например решая задачи на регулярки из учебника в Оп посте, а потом еще дополнительных попросить.

>>667045

Гугли что нового - там много интересного.

>>667088

> что нельзя парсить html регулярками, но все так делают.
> но все так делают
А если все с крыши прыгать будут - ты тоже прыгнешь?

> И еще смеются над теми, у кого DOM-парсеры падают на невалидном html.
Потому что надо использовать HTML-совместимый парсер а не XML. Потому что то что там матчится простым Xpath или CSS выражением, ты на регулярках вообще не реализуешь (ну или замучаешься реализовывать, я подзабыл теорию, могут ли регулярки распарсить HTML).

>>667088

> Модификатор u лишний. Здесь он не имеет значения.
Он имеет значение и позволяет не бескопоиться о юникоде. Потому что другим программистам надо работать а не шарады в твоем коде решать.

> Алсо, есть более элегантное решение
> return in_array(pathinfo($file, PATHINFO_EXTENSION), array('jpg', 'png'));
Согласен, так наверно даже лучше, но ради этой функции надо было лезть в мануал, чтобы вспомнить название константы. Алсо строка длинная, я бы разбил на 2 действия.
Ответы за 25 февраля + немного пропиарим Cloud IDE Аноним 01/03/16 Втр 22:09:41  672693
>>667128

"боб" же вполне хорошее слово - этакий кирпичик, хранящий какие-то данные, моделька. AbstractFactoryBean = базовый класс для создания фабрик по произодству бобов. Если кто-то спотыкается на таких названиях, это значит что у них маловато знаний ООП и всяких там SOLID и паттернов. Отличный тест.

>>667188

Погугли "самодокументируемый код". Это код который понятен даже без комментариев: хорошие имена функций и переменных, аккуратное оформление, никаких подвохов и неожиданных вещей вроде пропущенного флага u у регулярки.


Cloud IDE

Пропиарю хороший проект еще раз: бесплатная IDE в браузере >>667010 - не требует установки, просто регистрируешься и получаешь уже настроенную систему с линуксом, PHP, Апачом, MySQL. Никаких SSH, все работает из коробки включая HTTPS. У меня вот тут есть ссылка - можете туда зайти, там уже настроен и развернут проект файлообменника >>667019

>>667247

Нет, ко мне никакого отношения, я просто зашел и удивлся до чего прогресс дошел.
Аноним 01/03/16 Втр 22:13:00  672697
>>672690
Почему неправда? Ты же писал выше что без знания "теории" будут возникать проблемы, как у того анона с древовидными комментариями.
Аноним 01/03/16 Втр 22:15:02  672701
>>672697

Знание алгоритмов и структур данных, хотя бы минимальное - полезно. Вузовская "математика" (линейный анализ и прочая ерунда) мало где нужна, разве что немного геометрии в 3D графике. Ну и может еще нахождение минимумов/максимумов, но это уже в машинном обучении наверно нужно.
Аноним 01/03/16 Втр 22:17:14  672705
>>672701
Ну все равно я замечал что люди без знаний алгоритмов затрудняются решить задачи на собеседованиях, из-за этого им часто не перезванивают.
Аноним 01/03/16 Втр 22:20:14  672712
>>672705

Смотря какие задачи.
Аноним 01/03/16 Втр 23:36:20  672854
Друзья, кто может пояснить за разделение php и html, если проект в силу того, что он совсем небольшой, не требует никаких шаблонизаторов. Я просто тот еще говнокодер и делаю так — есть один .php файл с классом, в котором описаны все методы, и в этих методах есть вывод по типу echo "код html", и есть index.php, где каркас html, всякие условия/проверки на php и вызов этих самых методов. Но мне стыдно за свой код, потому что кажется, что так он получается слишком грязным и непонятным. Как делать правильно и чистенько?
Аноним 01/03/16 Втр 23:40:15  672865
>>672854
Делай по шаблону на каждую страницу. Потом в контроллере эти шаблоны подключай через include.

>index.php
$a = 1;
$b = 2;
include("index.html");

>index.html
a is: <?= $a ?><br> <!-- Выведет 1 -->
b is: <?= $b ?><br> <!-- Выведет 2 -->

Если не хочешь строить таких велосипедов в приложениях покрупнее, посмотри на шаблонизатор Twig, он небольшой, бесплатный и позволяет удобно создавать простые и не очень простые шаблоны.
Аноним 01/03/16 Втр 23:44:34  672873
>>672854

http://www.phpinfo.su/articles/practice/shablony_v_php.html
Аноним 01/03/16 Втр 23:45:12  672876
>>672854

Также прочти https://github.com/codedokode/pasta/blob/master/security/xss.md
Аноним 01/03/16 Втр 23:56:11  672895
>>672865
>>672873
>>672876
Спасибо, почитаю!
Аноним 02/03/16 Срд 00:50:29  672943
http://ideone.com/w464xH
Аноним 02/03/16 Срд 00:52:29  672945
>>672943
Неправильно считает, должно быть 61270 с копейками.
Аноним 02/03/16 Срд 02:29:27  673006
>>672943
Конкретно в этом твоём варианте вот что неверно: когда $creditBalance у тебя становится меньше $monthlyPayment, то у тебя следует вот это выражение: $creditBalance = ( $creditBalance х $percent ) + $servicePayment - $monthlyPayment;. И в какой-то момент это уходит в минус, от чего дальше всё идёт неверно.
Подсказка: попробуй ввести отдельную переменную для подсчёта $creditBalance = ( $creditBalance х $percent ) + $servicePayment, ведь именно когда этот момент становится меньше $monthlyPayment, нам и надо просто его выплатить и приплюсовать к $paymentTotal.
Стата вакансий и цен от ХХ Аноним 02/03/16 Срд 08:22:23  673109
Собрал инфу с hh по кол-ву вакансий и указанных зп.
Почему в вакансиях PHP зп указана в 58%, а в других вакансиях строго < 50% ? Что бы это могло значить?
Может быть рынок перенасыщен спецами PHP? Или наоборот?

Алсо кресты sosnooley.

Ruby Найдено 190 вакансий

Указана 72
от 80 000 руб. 60
от 115 000 руб. 34
от 155 000 руб. 12
от 195 000 руб. 5
от 230 000 руб. 4


Php Найдено 1 314 вакансий

Указана 762
от 45 000 руб. 641
от 75 000 руб. 418
от 105 000 руб. 192
от 140 000 руб. 96
от 170 000 руб. 54


Java Найдено 1 393 вакансии

Указана 353
от 65 000 руб. 303
от 130 000 руб. 145
от 195 000 руб. 70
от 260 000 руб. 39
от 325 000 руб. 19


Javascript Найдено 497 вакансий

Указана 206
от 55 000 руб. 181
от 100 000 руб. 119
от 145 000 руб. 34
от 185 000 руб. 17
от 230 000 руб. 12


Python Найдено 362 вакансии

Указана 109
от 85 000 руб. 76
от 140 000 руб. 37
от 190 000 руб. 27
от 245 000 руб. 21
от 300 000 руб. 20


C# Найдено 684 вакансии

Указана 279
от 30 000 руб. 277
от 65 000 руб. 218
от 95 000 руб. 128
от 130 000 руб. 58
от 160 000 руб. 21


.net Найдена 1 021 вакансия

Указана 388
от 45 000 руб. 361
от 80 000 руб. 306
от 120 000 руб. 206
от 155 000 руб. 53
от 195 000 руб. 18


c++ Найдено 729 вакансий

Указана 331
от 70 000 руб. 269
от 140 000 руб. 151
от 205 000 руб. 113
от 270 000 руб. 27
от 340 000 руб. 25
Аноним 02/03/16 Срд 08:30:32  673113
>>673109
>Может быть рынок перенасыщен спецами PHP?
Спецов PHP как раз не хватает, как и в других областях. На PHP много джуниоров или просто девелоперов-макак, из-за того что пхп как продукт доступнее и порог вхождения в него ниже чем в джаву или кресты.
Аноним 02/03/16 Срд 09:03:01  673123
>>673113

Чем отличается "спец" от "макаки"? Есть ли жесткие критерии? А что если таких критериев просто не существует, как и прослойки спецов среди php-программистов, а работодатели сами не знают чего хотят?
Аноним 02/03/16 Срд 11:36:26  673190
>>673109
Чому Пистон столь ценен?
Он же вроде как проще РНР?
Обычно его советуют новичкам.
Аноним 02/03/16 Срд 11:59:05  673196
>>673109

А ты еще посмотри для интереса, что именно за вакансии на Питон (к примеру) с макс. з/п

http://hh.ru/search/vacancy?text=python&clusters=true&enable_snippets=true&salary=310000&only_with_salary=true&from=cluster_compensation

http://hh.ru/vacancy/16016299?query=python
> Big Data Engineer/ Python&Hadoop (Tokyo, Japan)
> Experience with at least three of the following technologies: Hadoop, Hive, Pig, Zookeeper, Cassandra, Spark, Kafka
> Good understanding of software and hardware performance as well as familiarity with the Linux kernel
> Java programming experience
Это не совсем Питон вакансия

http://hh.ru/vacancy/15969455?query=python
> от 1 500 до 5 000 USD
> In an interesting project (New application for an active lifestyle) required Engineering Manager.
> Ruby-on-rails is the most important skill,
> Exceptional coding skills in two or more general purpose programming languages including but not limited to: Java, C/C++, C#, Objective C, Python, JavaScript, .Net skills in Go, Swift - interest and ability to learn other coding languages as needed
Это не Питон вакансия. Причем диапазон з/п подозрительно широкий.

http://hh.ru/vacancy/16162999?query=python
> Java&Python Software Engineer
> Strong mathematical background;
> Expertise in Machine Learning;
> Advanced knowledge of Java.
Это не совсем ПИтон вакансия

Далее
> C++ & Scala Software Engineer (Apache Mesos project)
> от 250 000 руб.

> C/C++ developer
> 2 000-5 000 USD
(вакансия продублирована 14 раз)

Ну и так далее. По моему данные изначально неправильные, там просто попадаются все вакансии где упомянуто слово, а не вгде язык является основным. Ну и ты ленив, даже не глянул результаты.

> Алсо кресты sosnooley.
Только в списке высокооплачиваемых вакансий на Питоне 14 вакансий Си++ программиста.

И что с рынком случилось? До кризиса вроде з/п в 300к для программистов не было даже у аутсорсеров.
Аноним 02/03/16 Срд 12:00:10  673198
>>673123

Ты описания вакансий не пробовал читать?

>>673190

Потому что данные собраны неправильно - высокооплачиваемые вакансии найднные по слову Питон - это не Питон разработчики. Он там как вспомогательный язык.
Аноним 02/03/16 Срд 12:00:22  673199
>>673196
>Kafka
Хоть что-то знакомое.
Аноним 02/03/16 Срд 12:24:43  673220
<script>if('673179' != '673179') {if($.cookie('makabadmin')) {$('a[name=673179]').html('673179')} }</script>
lol

Алсо, попалось интересное задание на апворке, не хотите совместно сделать? Короче делаются скриншоты с гугл мапс, а потом сортиурются по категориям.
Аноним 02/03/16 Срд 12:36:04  673227
>>673220

А что в нем интересного? Слили на апворк то с чем сами возиться не хотят.
Я снова выхожу на связь Аноним 02/03/16 Срд 12:42:48  673237
Доделываю макет на HTML+CSS из задач ОПа.
Согласен с той заменой последовательности уроков, когда ОП вперёд пустил ООП, а HTML+CSS поместил после.
Потому что ужасно жалко потраченного на это всё времени, что ты будешь делать. Понимаю, что потом что-то в шаблонах править будет удобнее, потому что понимание многого пришло. При этом многое, чувствую, там не вполне верно решил.
Макет отличный, мне нравится, потом сам смогу сверстать подобную landing page для своего проекта, это неплохо.
Но сколь далече уже продвинулись те, кто не стал решать бонусные задачи, кто не стал решать вот эти задачи на HTML+CSS.
Жалко времени, душа требует ООП уже, БД и фреймворков.
Постараюсь держать вас в курсе.
Аноним 02/03/16 Срд 13:22:57  673263
аноны, дошел до сессий и кук, наткнулся на такое "javasсript:document.write(document.сооkiе);" что после ввода в адресную строку должно показать все куки с сайта. В силу своей рукожопости я несколько раз загуглил это ибо обработчик джаваскрипта не хотел подхватывать код после копипасты, потом я стер "javascript" перед "javasсript:document.write(document.сооkiе);" и написал обратно, тогда я увидел куки с вк, но они отличались от описания кук на самом сайте вк , но после проведения подобной процедуры на другой странице вк я получаю "undefined". Что произошло?
Аноним 02/03/16 Срд 14:01:55  673286
>>673263
зашел в консоль ctrl+shift+j, там выполнил код. Не понятно, почему в первый раз у меня из строки выполнилось, а потом перестало. Алсо, котаны, кто по специалисту учил джаваскрипт. Саму контору эту тут не очень любят, но мб кто-нибудь даст рецензию на их работу? Сам курс пхп у них просматриваю, ставя скорость видео х1,5, а то это же пиздец 4 часа аутировать и пытаться все запомнить
Аноним 02/03/16 Срд 14:02:33  673287
Робин Никсон - Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5. 3-е изд - 2015
Норм книга для новичка?
Хочу перейти к мускулю как-нибудь плавно.
Аноним 02/03/16 Срд 14:10:04  673294
>>673287
Не очень. Старьё.
Аноним 02/03/16 Срд 14:10:43  673296
>>673286
Какой смысл в таких курсах без обратной связи?
Сужу по учебнику ОПа и новичкам, который на 2-3 элементарной задаче начинают спотыкаться.
Аноним 02/03/16 Срд 14:11:19  673297
>>673294
>2015 год
>старьё
В плане подхода, методов и прочего?
Аноним 02/03/16 Срд 14:17:22  673301
>>673296
Не знаю, как тебе, но там есть неплохие истории от самого автора. Вроде как первых байтов в кодировки УТФ-8, которые только в пхп не работаю и прочих историй. ты взлольнешь, но мне страшно вообще что-то писать, а простота и юмор автора расслабляют и страх уходит
Аноним 02/03/16 Срд 14:22:56  673304
>>673301
>мне страшно вообще что-то писать
Ты - это я.
Мне иногда не по себе от того, что я уже достаточно далеко продвинулся, а иногда смотрю на чужие решения предыдущих задач - и не могу ничего понять. Потом разбираюсь, конечно, когда всматриваюсь или изменяю код.
Надеюсь, с опытом пройдёт, когда багаж знаний пополнится. Как с задачами про Айфон, Айпад и многими другими: сначала рвал и метал, а сейчас не глядя могу записать решение.
670184 причин бросить айти Аноним 02/03/16 Срд 14:27:25  673310
Язык Вакансии Резюме Вак/Рез

Ruby 190 6638 2,86
Php 1314 149182 0,88
Java 1393 75690 1,84
Javascript 497 95235 0,52
Front-end 1654 12301 13,44
Python 362 24 074 1,50 //анон сказал, что данные не корректы
C# 684 62 147 1,10
.net 1 021 128 502 0,79
c++ 729 124 259 0,58

678028 резюме - 7844 вакансий = 670184 причин бросить айти
Аноним 02/03/16 Срд 14:28:06  673312
>>673304
Это патологическое неосиляторство, которое наблюдается у 95%двощеров в той или иной степени. В сфере погромистов есть отдельное название ХЕЛЛОУВОРЛДЩИКИ Вкатился в ваш ламповый чат под ником NEOSEELYATOR228 Странно, почему тут не неймфажат. Наверняка меня обоссут мамкины ононимы
670184 причин бросить айти Аноним 02/03/16 Срд 14:30:13  673314
14569182135300.png (24Кб, 805x311)
>>673310
Пофиксил

678028 резюме - 7844 вакансий = 670184 причин бросить айти
Аноним 02/03/16 Срд 14:31:16  673317
>>673314
>считал ручками в блокноте и на калькуляторе
>причины бросать айти
Аноним 02/03/16 Срд 14:49:38  673329
Пхпач-помогач. У меня в таблице хранятся значения, они могут быть с двойными и одинарными кавычками, при этом мне нужно сделать валидацию - идет запрос есть ли такая запись в базе: в тексте запроса у меня после real_escape_string - "почтомат "приватбанк" " и соответственно не находит, как можно решить проблему?
Аноним 02/03/16 Срд 15:01:33  673337
>>673329
вставляет вместо двойных кавычек &quot ;
Аноним 02/03/16 Срд 15:16:11  673352
>>673337
сделал htmlspecialchars_decode, результат есть, но я думаю это неправильно
Аноним 02/03/16 Срд 15:19:37  673355
Посоны, подскажите.
Почему не меняется переменная currentPosition?
Как её вывести из области видимости функции?
Перепробовал через return и так далее, но почему-то не прокатило.
Читал в учебнике, что должно работать так:
a = 1
function go() {
a = 6
}

go()
alert(a) // => 6

но бля, почему не работает?

http://ideone.com/6S1BI7
NEOSEELYATOR228 02/03/16 Срд 15:59:20  673379
14569235604610.png (15Кб, 1371x130)
14569235604611.png (33Кб, 1349x256)
14569235604622.png (9Кб, 1351x122)
14569235604623.png (16Кб, 632x166)
Гайс, вк что-то поменял? Вот мои кукис, вот то(4-я пикча), что по мнению вк должно у меня быть. ЧЯДНТ?
Аноним 02/03/16 Срд 16:06:36  673384
14569239966820.jpg (209Кб, 850x914)
Анон, проверь пожалуйста.
W1 - http://ideone.com/PaOLUG
W2 - http://ideone.com/sAZs0A
W3 - http://ideone.com/7FUXeB
W4.1 - http://ideone.com/xN81k7
W4.2 - http://ideone.com/hDB9f4
W5.2 - http://ideone.com/b46oYS
W5.1 - http://ideone.com/isOeeQ
Аноним 02/03/16 Срд 16:23:43  673398
>>673317
ты меня раскусил
Аноним 02/03/16 Срд 16:25:42  673401
>>673355
Используй всё-таки возврат значения:

function getCurrentPosition() {
var currentPosition;
// тут твой код
return currentPosition;
}

var currentPosition = getCurrentPosition();
console.log(currentPosition);

Так не работает?
Аноним 02/03/16 Срд 16:26:02  673402
>>673384
Всё отлично, но W5.1 решена неправильно:
>if ($creditBalance < 0)
Такого никогда не должно быть в правильном решении, чтобы $creditBalance был меньше нуля. Ведь так ты допускаешь, что в какой-то момент банк становится должен Анончику, чего быть не должно.
>$creditBalance = 0;
А вот тут надо просто отнимать от $creditBalance оставшуюся выплату. Имей в виду, что $creditBalance к этому моменту уже должен быть помножен на процент и с прибавленной комиссией за кредит.
Аноним 02/03/16 Срд 16:26:34  673403
Пыханы, есть вопрос.
Сам буду студентом 4 курса, предлагает мне местная контора перекатиться в РНР, хотя я сам занимаюсь явой.
Стоит ли бежать учить этот ваш РНР, при условии что живу в мухосранске 100к, и при этом везде нужны пхпшники, а заводить трактор в ДС я поку не буду?
Аноним 02/03/16 Срд 16:37:00  673407
14569258207560.jpg (214Кб, 850x1212)
>>673402
>W5.1 решена неправильно
Готов с тобой поспорить.
>Такого никогда не должно быть в правильном решении
Ты неправ. И смотри почему: школьник пришёл в последний месяц отдавать 5000р. Он их отдал банку. Банк смотрит на купюру и даёт школьнику сдачу.
Аноним 02/03/16 Срд 17:19:38  673450
>>673407
Это самая изощрённая отмазка, чтобы не переделывать задачу, из тех, что бывали! Браво!
Аноним 02/03/16 Срд 17:25:45  673456
>>673450
Зачем переделывать то, что и так правильно?
Аноним 02/03/16 Срд 17:27:12  673458
>>673456
То, что правильно переделывать не надо. У тебя неправильно.
Аноним 02/03/16 Срд 17:32:12  673467
>>673458
Предоставь пример, когда программа работает неправильно.
Аноним 02/03/16 Срд 17:41:53  673485
>>670333
Так ведь там есть условие, если оставшаяся сумма кредита следующего месяца меньше 5000. Прости, если я чего-то не понимаю и за задержку с ответом.
Аноним 02/03/16 Срд 17:43:08  673488
>>673467
У тебя $creditBalance в последнем действии механически приводится к нулю, что тоже можно посчитать дурным тоном.
Вот ОП приедет, он тебе всё скажет. Хотя к этому времени ты уже уйдёшь дальше и не захочешь возвращаться к этой задаче.
Так или иначе, ты сейчас заложил мину в своё обучение программированию, которая однажды сработает.
Аноним 02/03/16 Срд 17:48:31  673491
>>673488
То есть предоставить контрпример ты не можешь.
Аноним 02/03/16 Срд 17:56:29  673500
>>673491
Что сделать, я недопонял?
Изменить твой код, чтобы выдало ошибку?
Аноним 02/03/16 Срд 17:58:41  673504
Ты с двумя людьми говоришь, кстати.
Аноним 02/03/16 Срд 18:00:54  673506
>>673504
С одним. Я по ошибке сказал, что в коде ошибка. На самом деле ничего такого я там не увидел. Я подумал там действительно в минус уходит долг и так и остаётся до следующего месяца: распространенная ошибка для этой задачи, но тут такого нет.
Аноним 02/03/16 Срд 18:08:20  673517
Посоны, нужен учебник по PHP. Чтоб с задачами блять в конце каждой главы например. Чтоб я не просто прочел, гы прикольно, а делал согласно навыкам, которые я получил в процессе чтения конкретной главы.
Аноним 02/03/16 Срд 18:09:25  673519
>>673517
http://archive-ipq-co.narod.ru/ не благодари
Аноним 02/03/16 Срд 18:11:40  673520
>>673500
>Что сделать, я недопонял?
Предоставить начальные условия, при которых моя программа неправильно рассчитывает то, что она должна рассчитывать.

Из постановки задачи есть ограничения на начальные условия:
$creditBalance > 0
$monthlyPayment > 0
$rate > 1
$servicePayment >= 0
$payed total = 0

К тому же, исходя из постановки задачи(небольшой кредит с быстрой выплатой), эти переменные точно не выйдут из допустимого для данного типа переменных диапазона значений.
Если на перечисленных выше начальных условиях программа выдаёт правильный ответ - она работает правильно.
А теперь предоставь такие начальные условия, при которых она работает неправильно.

>Так или иначе, ты сейчас заложил мину в своё обучение программированию, которая однажды сработает.
Не понимаю, о какой мине идёт речь. Выражайся яснее, пожалуйста.
Аноним 02/03/16 Срд 18:19:46  673526
>>673519
дай бог здоровья
Аноним 02/03/16 Срд 18:30:20  673532
>>673520
>$payed total
$payedTotal
селффикс
Виртуалхосты, хтассесы, хостсы, ксамп, вертриго...Я ЗАЕБАЛСЯ Аноним 02/03/16 Срд 18:37:25  673542
Анон, я чего-то, кажется, напердолил, кажется, сильно. Создал три папки, в каждой сайт. В одной из папок вместе с сайтом лежит его .htaccess, который рулит всякой хуйней.
Для каждого сайта запись в hosts и виртуалхост в хттпд.конф.
Пытаюсь зайти на один сайт - заходит нормально (на него же заходит при попытке зайти просто на 127.0.0.1, а не по имени)
Пытаюсь зайти на другие - хтассес этого первого сайта перехватывает запросы и отправляет меня нахуй.
Удаляю этот файл хтассесс, пытаюсь зайти на эти вот другие сайты - нот фаунд (даже при попытке открыть конкретную html страницу, хотя она-то уж точно "фаунд"). Все это пытаюсь пердолить на сборочке вертриго сервер. До этого говно вертелось на ксампе, там не было никаких хтассесов и вирт хостов и все работало (например, 127.0.0.1/макаба - заходило на www/макаба/индекс.пхп). Что я сделал не так, где перепердолил, как исправить и можно ли, на будущее, как-то попроще? А то я уже заебался - удалять хтассесы при переходе с реального сервера на локалхост, иметь две разные версии хтассесов, записывать каждый новый проект в хостс и httpd.conf... Можно все это попроще как-то? Инбифо, написать скрипт Сорян за сумбурность, уже руки трясутся.
Аноним 02/03/16 Срд 18:49:02  673558
>>673542
Ах да, при всем при этом, например, 127.0.0.1/phpmyadmin вполне себе работает, а вот сайты - нихуя. И раз уж я такой мудак, посоветуй, мб, годную книжку (рашн) по админству, ну, все эти хттпд.конфы, хтассесы, май.ини, настройки-настроечки...
Аноним 02/03/16 Срд 19:16:14  673600
>>673520
Судя по всему, ты что-то изучал и раньше.
Но если ты сейчас взялся за изучение РНР, то, скорее всего, прежде не всё у тебя было гладко в программировании. Либо в нём ты не продвинулся далеко, раз сейчас начал с лёгких задач из учебника ОПа.
Ничего личного, просто обозначаю своё вИдение ситуации.
Ты не задавался вопросом, почему именно всё не было гладко?
>Если на перечисленных выше начальных условиях программа выдаёт правильный ответ - она работает правильно.
Вот именно, что уверенность в этом закладывает мины в твоё обучение программированию. Представь, что реальная программа по расчёту кредита в реальном банке сделает допущение, что банк в какой-то момент оказывается должен что-то заёмщику, - думаешь, кто-то на такое согласится?
У нас есть чёткая формулировка задачи: прибавлять к сумме кредита процент и комиссию, отнимать месячную выплату и прибавлять результат к общим выплатам. Когда сумма кредита с прибавленными процентами и комиссией становится меньше месячной выплаты - выплачиваем её и заканчиваем цикл выплат.
Из недочётов в твоём решении:
1. $creditBalance в последнем условии механически приводится к нулю, желательно по-иному всё сделать. И без излишнего копирования.
2. Не выводится в конце "С меня хватит!". Таково было условие.
3. Нельзя будет в любой момент работы скрипта утверждать, что все переменные можно с одинаковым успехом вывести в echo. Например, попробуй сделать вывод реального $creditBalance до прибавления процентов и комиссии - не будет верного решения в этой ситуации, в какой-то момент будет отрицательное число в суме кредита, это нонсенс.
Можно жутким говнокодом решить эту задачу, с кучей копирования и прочим - и программа тоже работала бы правильно. Только не к такому надо стремиться.

>>673506
Ну ты и есть второй.
Долг уходит в минус, а потом отрицательное число умножается на положительное число, а к этому прибавляется ещё одно положительное число (умножается на 1.03 с прибавлением процентов к долгу и затем прибавляется 1000 комиссии). Это неправильный подход.
Аноним 02/03/16 Срд 19:17:52  673606
>>673600
* в сумме кредита
Аноним 02/03/16 Срд 19:25:01  673616
>>673600
>потом отрицательное число умножается на положительное число, а к этому прибавляется ещё одно положительное число (умножается на 1.03 с прибавлением процентов к долгу и затем прибавляется 1000 комиссии).
Нет, у тебя там другое.
У тебя в какой-то момент Анон платит больше, чем должен, банк становится должен Анону:
$payedTotal += $monthlyPayment; Если вывести в этом месте $payedTotal, то там будет тысяч 65.
А далее уже отрицательный $creditBalance отнимается от этих 65 заплаченных Аноном тысяч, получается верная цифра.
Вот это всё лишнее и вообще представляет собой нонсенс. Неверный подход.
Аноним 02/03/16 Срд 19:37:35  673633
14569366560130.png (771Кб, 800x1131)
Новая партия.
W5.3 - http://ideone.com/jWpMfH
W5.4 - https://ideone.com/hZNNWf
W5.5 - https://ideone.com/kwBJKl НИКОГДА

>>673600
>Судя по всему, ты что-то изучал и раньше.
Математику и физику изучал и продолжаю изучать. Захотелось научиться программировать в вебе. Всё-таки в России не самые лучшие времена, а в случае чего хочу, чтобы на хлеб с маслом хватало. Уезжать не хочу.

>в какой-то момент
Отрицательный баланс там виртуальный и нужен для удобства расчёта и чтения кода.

>Представь, что реальная программа по расчёту кредита в реальном банке сделает допущение, что банк в какой-то момент оказывается должен что-то заёмщику, - думаешь, кто-то на такое согласится?
Про black box ни разу не слышал?

>У нас есть чёткая формулировка задачи: прибавлять к сумме кредита процент и комиссию, отнимать месячную выплату и прибавлять результат к общим выплатам. Когда сумма кредита с прибавленными процентами и комиссией становится меньше месячной выплаты - выплачиваем её и заканчиваем цикл выплат.
Ничто не мешает смоделировать этот процесс так, как я сделал выше. На данных начальных условиях(которые гарантируются условиями задачи) модель соответствует действительности.

>>673616
>Вот это всё лишнее и вообще представляет собой нонсенс. Неверный подход.
Ну охуеть теперь.
Аноним 02/03/16 Срд 19:49:39  673644
>>673633
>Отрицательный баланс там виртуальный и нужен для удобства расчёта и чтения кода.
Стремиться надо к такому, чтобы в любой момент можно было вывести правильное значение переменной, которое соответствует действительности - как минимум. Твой скрипт не позволит этого.
>Про black box ни разу не слышал?
Слышал, конечно, сам практикую.
Но и довольно часто встречались фрилансеры с таким же, как у тебя, упорством в оправдании своего желания работать меньше, не переделывать детали в соответствии с элементарным ТЗ - и прочее. Всегда не особо приятные ощущения от такого.
Аноним 02/03/16 Срд 19:56:38  673650
>>673644
>в любой момент
У меня момент времени - месяц. Внутри него никаких делений на нуль и подобного непотребства не происходит. Все вычисления корректны. На выходе из месяца все переменные содержат то, что и должны содержать.

>с элементарным ТЗ
В задании ни слова не сказано про то, какими должны быть переменные во время выполнения.

>упорством в оправдании своего желания работать меньше
Краткость - сестра таланта.
Аноним 02/03/16 Срд 20:03:07  673657
Хочу попрактиковаться в написании плагинов для вордпресс, пока только повторяю чужие плагины, слегка их изменяя, хочу написать полностью свой, но не могу придумать, что он должен делать. Может кто подскажет?
Аноним 02/03/16 Срд 20:09:09  673663
>>673650
Важно не только "что", но и "как".
>В задании ни слова не сказано про то, какими должны быть переменные во время выполнения.
ОП об этом говорил неоднократно просто так.
Поскольку неправильное решение у многих сразу получается, а с правильным приходится сидеть дольше.
>Краткость - сестра таланта.
Тот самый случай, когда с точки зрения грамматики или культуры речи всё абсолютно правильно. А впечатление производит не самое приятное, согласен. Вот так и в твоём варианте той задачи: за вроде бы правильным решением скрывается нечто такое, чего допускать ни в коем случае нельзя.
Аноним 02/03/16 Срд 20:11:12  673665
>>673663
Да там нет ничего неправильного, нету такой ситуации после которой функция вернет ложный результат.
Аноним 02/03/16 Срд 20:11:13  673666
>>673663
> нечто такое, чего допускать ни в коем случае нельзя.
Что конкретно? Мне уже надоело это хождение вокруг и около.
>вроде бы правильным решением
Дай определение правильного решения. Мы с тобой говорим на разных языках, походу.
Аноним 02/03/16 Срд 20:27:09  673678
>>673665
>>673666
Так надо стремиться к универсальности. Чтобы не было таких отмазок и условий: когда месяц закрывается, то переменная правильная, а когда он ещё не закрылся, то она становится неправильной. Несмотря на то, что конкретно в этом решении этого и не произойдёт.
Стремиться-то надо к правильному пути, когда переменные в любой момент не противоречат логике и реальности.
>Что конкретно? Мне уже надоело это хождение вокруг и около.
Требования к себе не вполне верны в этой ситуации. Подобные решения не приветствуются, у задачи может быть несколько правильных решений без ухода в минус. И лучше попробовать именно их отыскать, чем тратить время.
>Дай определение правильного решения.
Ну вот, например:
>прибавлять к сумме кредита процент и комиссию, отнимать месячную выплату и прибавлять результат к общим выплатам. Когда сумма кредита с прибавленными процентами и комиссией становится меньше месячной выплаты - выплачиваем её и заканчиваем цикл выплат.
Это самой прямой и логичный алгоритм решения задачи.
Аноним 02/03/16 Срд 20:27:53  673679
*самый прямой
Аноним 02/03/16 Срд 20:29:37  673681
>>673678
По твоему определению получается, что все решения, которые отличаюстя от твоего - неверные. Извини, но тут уж ты неправ.
Аноним 02/03/16 Срд 20:31:34  673685
>>673678
Да ты поехавший какой-то. Вот тебе задача: написать функцию, которая переворачивает строку. Ты берешь аргумент-строку разбиваешь на массив символов, делаешь array_reverse и склеиваешь обратно в строку и возвращаешь. Задача решена. И тут я такой "НЕ УНИВИРСАЛЬНА, А ВОТ НА ЭТОЙ СТРОЧКЕ ПЕРЕМЕННАЯ СТАНОВИТСЯ МАССИВОМ А ДООЛЖНА БЫТЬ ВСЕГДА СТРОКОЙ ТУТ ОНА ПРАВИЛЬНАЯ А ЗДЕСЬ НИПРАВИЛЬНАЯ", хотя по факту нужно смотреть лишь результат функции, то, что она возвращает, а какие метаморфозы она претерпевает на пути к этому результату не так важно.
Аноним 02/03/16 Срд 20:32:33  673687
>>673685
Вот этого двачую.
Аноним 02/03/16 Срд 20:45:43  673697
>>673681
Чому? Все решения, в которых логика выплат сохраняется, - правильные. А когда в какой-то момент анон выплачивает банку ~65к, а потом банк ему возвращает около 4к, - не вполне правильные. Мне кажется это естественным.
>>673685
>Да ты поехавший какой-то.
Yep, и уже довольно давно.
>по факту нужно смотреть лишь результат функции, то, что она возвращает, а какие метаморфозы она претерпевает на пути к этому результату не так важно.
Если логике не противоречит - всё нормально.
Есть обязательные шаги, а есть такие, которые неверны либо не обязательны.
Представь, что кассир или менеджер в банке ручками всё рассчитывает для Анона. Логика в этом случае обязательно будет нормальной, а не такой, при которой менеджер скажет или укажет что-то такое: "Вот тут проценты и коммиссия на каждый месяц и твои выплаты. А вот тут в последний месяц ты нам платишь свои прежние 5к рублей, банк становится должен тебе, а потом отдаёт тебе часть долга". Это-то и неверно.
Послушаем, что скажет ОП через пару дней.
Аноним 02/03/16 Срд 20:51:15  673704
>>673697
>Все решения, в которых логика выплат сохраняется
Смоделируй мне большие(миллиарды) частицы из первых принципов. Ой, а ты не можешь.
Аноним 02/03/16 Срд 21:02:48  673711
>>673704
>большие количества частиц
Фикс.
Аноним 02/03/16 Срд 21:08:07  673715
>>673697
Да этот поехавший про сдачу не слышал.
Аноним 02/03/16 Срд 21:11:15  673722
>>673704
Хочу оставить свой отзыв о фрилансере под ником >>673704
>>673704 обещал сделать работу в срок и по ТЗ, сдал всё довольно быстро, но результат, мягко говоря, не соответствовал ожиданиям.
Что неприятно поразило: не хотел признавать свою неправоту, пытался оправдать свою работу, которая не выдерживает никакой критики.
Работали по Безопасной сделке, в итоге по решению арбитража мне вернули сумму полностью.
Но есть и положительные стороны у >>673704: берётся за работу с воодушевлением, делает всё достаточно быстро, код на выходе вполне аккуратный.
В общем, если вам нужны какие-то несложные вещи типа натягивания шаблона на вротперс или поправить вёрстку, то >>673704 вполне подойдёт. Только перед началом работы убедитесь, что он понял важные пункты из ТЗ.
Если же нужно чёткое следование логике и техническому заданию, то не советую вам связываться с ним. Потратите только зря деньги, нервы и силы, а в результате получите не то, на что рассчитывали.
Работайте с ним только по Безопасной сделке на коротких сроках, если не найдёте других вариантов.
Для себя я выводы сделал: работать с >>673704 больше не буду.
Почти копипаст с одной биржи фриланса

>>673715
Тогда там надо предусмотреть такие переменные, а пока там такого нет.
Аноним 02/03/16 Срд 21:13:09  673724
14569423894890.jpg (35Кб, 199x200)
>>673722
Аноним 02/03/16 Срд 21:15:06  673726
>>673722
Я не твой работник, поехавший.
Аноним 02/03/16 Срд 21:16:25  673728
>>673722
Мань, я не фрилансер, а ты не работодатель. Ты просто идёшь нахуй.
Аноним 02/03/16 Срд 21:17:50  673729
>>673724
"Почти" там только номер поста, поставленный на место ника.

>>673726
Как так? А кому я только что оставил отрицательный отзыв?
Ситуация узнаваемая, вполне.

>>673728
Бугурт приобретает отчётливые очертания.
Аноним 02/03/16 Срд 21:23:23  673734
>>673729
>Как так? А кому я только что оставил отрицательный отзыв?
Анониму, который учится программировать и не собирается делать вещи так, как хочешь ты, но так, как правильно. Не выдержав критики этого анонима, ты придумал какие-то отношения фрилансер-работодатель, коих между вами нет, для перехода в другую плоскость спора, где ты уже был прав.
Но он не фрилансер. А ты не работодатель.
Аноним 02/03/16 Срд 21:34:02  673746
>>673734
Да вы, батенька, ещё более поехавший, чем я, если всё это всерьёз.
>не собирается делать вещи так, как хочешь ты, но так, как правильно.
ОП рассудит, я гарантирую, подскажет, как правильнее.
>Но он не фрилансер. А ты не работодатель.
Просто знакомая ситуация, характерная для фриланса. Когда исполнитель находит кучу нелепых отмазок, чтобы просто от него отстали и приняли работу. Специально для подобных случаев есть БС и арбитраж.
Аноним 02/03/16 Срд 21:54:52  673765
>>669753
Ребятки, двойной(!) бамп.
Аноним 02/03/16 Срд 21:56:40  673769
В моем городе ДС-2 главная плеяда программирования ИТМО устраивает различные курсы погроммистов, в которых изучают различные языки с упором на трудоустройство. Также есть курс html/css/js/php/sql в одном флаконе за три месяца или полгода по-моему, не помню. Хочу пойти после того, как решу задачки из ОП-поста, все правильно сделаю?
Аноним 02/03/16 Срд 22:09:57  673785
14569457971370.png (1347Кб, 866x2934)
>>673769
Для разнообразия можно.
Аноним 02/03/16 Срд 22:16:12  673791
14569461728630.png (791Кб, 850x621)
W5.6 - http://ideone.com/NWkl7P
Аноним 02/03/16 Срд 22:19:03  673793
>>673791
Шикарное решение, респект.
Аноним 02/03/16 Срд 22:20:32  673795
>>673793
Это ещё не всё сделано, кстати.
Аноним 02/03/16 Срд 22:24:50  673799
>>673791
Хорошая задумка с количеством слогов.
Аноним 02/03/16 Срд 22:52:07  673827
Ананасы, дайте подсказку тупому анонимусу, что делать дальше.
Числа прописью:
https://ideone.com/UMDGcw
Аноним 02/03/16 Срд 23:05:54  673843
14569491541990.jpg (116Кб, 850x565)
>>673791
http://ideone.com/sR4Qhz
Немного допиленная версия.
Не впилил правило с маленькой っ, как-нибудь потом доделаю.
Аноним 02/03/16 Срд 23:19:53  673862
Можно как-то передавать между php файлами значения переменных по типу POST, не хуяря их в куках/сессии/адресной строке? Например, результат работы одного файла возвращается в другой.
Аноним 02/03/16 Срд 23:27:04  673873
Аночик выручай. Задали написать курсач. Веб приложение с использование МВС на джавке. Есть опыт такого рода только на пыхе. Я как понимаю надо копать в сторону сервелетов и jsp. Но инфы очень мало, посоветуйте литературу,пожалуйста.
Аноним 02/03/16 Срд 23:30:41  673879
>>673542
Да, вот еще что: скажем, на http://сайт заходит (это пака www/сайт), а вот на http://localhost/сайт - нет. Или так и должно быть?
Аноним 02/03/16 Срд 23:47:45  673905
>>673862
//main.php
$a = include('kek.php');
echo "Hello, {$a}!"; //output: Hello, Yoba!

//kek.php
/.../
return 'Yoba';
Аноним 02/03/16 Срд 23:47:49  673906
>>673384
>>673402

По поводу решения задачи про кредит. Вот анон говорит что программа всегда выдает правильный результат. Но ведь мало чтобы программа давала правильный результат, надо чтобы еще ее легко было прочесть и понять как она работает. Потому что если код не понятен, то нужно больше времени чтобы в нем разобраться и проще сделать ошибку.

Вот попробуем прочитать алгоритм, который заложен в коде:

Каждый месяц пока долг больше нуля:
- прибавить к долгу проценты и комиссию и вычесть 5000 (макс. ежемесячную выплату)
- прибавить к общей сумме выплаченного 5000
- если долг стал меньше нуля, то прибавить к общей сумме выплат остаток долга (?) и сделать долг равным нулю

Вот этот вот последний кусочек - он по моему не очень логичный. Причем в коде никаких пояснений, почему сделано так хитро и запутанно, нету. Непонятно - то ли автор тут закладывает какую-то логику, то ли он ошибся и что-то перепутал.

Если бы код просто не переплачивал и не уходил ниже нуля, то алгоритм выглядел бы так:

- прибавляем проценты и комиссию к остатку долга
- если остаток маленький, выплачиваем сколько осталось и уходим
- иначе платим 5000

Кстати, если использовать min/max, то задача решается без использования if, решение получается простое и короткое.

Это конечно простая задача и тут разобраться можно в любом случае. Но реальные задачи - они все намного сложнее и там запутаться в коде очень просто. Потому важно уметь писать код наиболее прямолинейно, пусть даже это учебная задача на 5 строк.

Ну и собственно хотелось бы узнать у автора кода, а какие преимущества дает изменение алгоритма, когда мы сначала платим больше чем надо, а потом компенсируем уход долга в минус?

И аноны, давайте обсуждать исключительно код и способ решения и не добавлять эмоций в спор, только аргументы почему один способ лучше или хуже. И уж тем более давайте не будем никого ни в чем обвинять.

>>673681

Конечно, такого нет, что есть какой-то стандартный ответ и надо написать код с точностью до запятой так же. Но с другой стороны, в данном случае для начала хочется понимать почему тут написано так, а не иначе.

>>673685

> Ты берешь аргумент-строку разбиваешь на массив символов, делаешь array_reverse и склеиваешь обратно в строку и возвращаешь.
По моему ты перегибаешь палку. Я никогда не говорил что нельзя так решать, и были люди которые делали такие решения. Но если ты решил как-то все усложнить, ну к примеру, разбил слово на массив символов, пересортировал его хитрым образом и берешь каждый второй символ, то конечно возникает вопрос, а с какой это целью это сделано?

>>673722

Вот ты тоже перегибаешь палку. Один анон решает задачи, другой помогает найти ошибки, не надо пытаться тут искать виноватых. Даже если кто-то сделал ошибку в задаче (или сделал ошибку при проверке задачи), в этом нет ничего плохого. Давайте спокойно и без лишних эмоций приведем свои аргументы.

Я в принципе настаивать на той или иной точке зрения не буду. Я привел свои аргументы по поводу решения, а возражать или нет, исправлять или нет, или это уже личное дело анона. Мы тут только даем советы, а воспользуются ими или нет, это уже не наше дело.
Аноним 02/03/16 Срд 23:51:51  673912
>>673715

Если ты хочешь добавить в программу моделирование процесса выдачи сдачи (говоря по-умному), то хорошо бы пояснить, какие это преимущества добавит программе.

>>673746

Фриланс наверно не лучший ориентир. Там много профессионализма присутствует с обоих сторон. Не особо советую в этом участвовать.

>>669753

Это называется юнит-тесты. Почитай урок https://gist.github.com/codedokode/a455bde7d0748c0a351a

Преимущество юнит-тестов в том, что их можно использовать многократно. Вот сделал ты год назад какой-то класс, предоставляющий какието полезные методы, написал тесты для этих методов - и эти тесты защищают полезный функционал. Если ты при правке кода что-то сломаешь, тесты тебе скажут хотя может к тому времени ты уже сам забудешь что такой функионал был.

Аноним 03/03/16 Чтв 00:11:23  673940
14569530838690.png (703Кб, 600x800)
>>673906
Спасибо за пояснения.
>Вот этот вот последний кусочек - он по моему не очень логичный. Причем в коде никаких пояснений, почему сделано так хитро и запутанно, нету. Непонятно - то ли автор тут закладывает какую-то логику, то ли он ошибся и что-то перепутал.
Я как-то даже и не задумался, что этот момент будет неясен. Спасибо, в следующий раз оставлю комментарии к возможно неясным местам.

>Ну и собственно хотелось бы узнать у автора кода, а какие преимущества дает изменение алгоритма, когда мы сначала платим больше чем надо, а потом компенсируем уход долга в минус?
А я не менял алгоритм. Немного подумал и написал то, что написал.

>если использовать min/max
Что-то типа такого? http://ideone.com/rfef0Q

>давайте обсуждать исключительно код и способ решения и не добавлять эмоций в спор, только аргументы почему один способ лучше или хуже. И уж тем более давайте не будем никого ни в чем обвинять.
Извиняюсь.
Аноним 03/03/16 Чтв 00:12:25  673941
>>673905
А если массив хочу вернуть?
Аноним 03/03/16 Чтв 00:12:42  673942
>>673791

> $letters = array(
> 1 => 'а',
> 2 => 'и',
> 3 => 'у',
Не стоит проставлять нумерацию вручную - неудобно будет править список (и неудобно проверять что у тебя все номера стоят правильно). Достаточно поставить только первый индекс

1 => '...',
'...',
'...'

А еще можно вообще не ставить индексы - PHP их сам расставит начиная с нуля.

>>673843

Тот же совет про индексы.

> правило с маленькой っ
Там придется учесть что она перед некоторыми буквами не ставится (ну то есть поставить то можно но выглядеть будет странно).

И еще составные символы вроде ぎゃ можно конечно было оптимизировать как-то, чтобы при выпадении ぎ с определенной вероятностью добавлялась бы маленькая буква.

И ゞ тоже не после каждого символа логично ставить.

Вот это вот не очень хорошая идея:

> ($random >= 46)&&($random <= 101))
Представь мы захотим поменять символы в массиве - все эти цифры придется пересчитывать. Поддерживать такой код неудобно. Проверить его тоже не очень легко.

Более того, сокуон っ например не должен идти в конце слова (ну то есть иногда там его пишут, но для того чтобы указать на особенности произношения слова). У тебя вроде нет такой проверки.

Мне кажется, надо как-то написать код так, чтобы потребности пересчитывать вручную индексы не было. Ну например, можно сделать несколько массивов: массив гласных, массив составных слогов, массив слогов с звонкими согласными, массив специальных символов. Имея их, мы всегда можем с помощью in_array проверить к какой категории относится символ, не мучаясь с номерами.

Также, можно сделать переменные, показывающие может ли сейчас выпасть специальный символ или нет, и написать их в таком виде, чтобы условия были легко понятны:

// сокуон разрешен только если текущий символ начинется с согласной
$isSokuonAllowed = !in_array($character, $specialCharacters);
$isDuplicatorAllowed = ....;

Это облегчит написание условий:

if ($isSokuonAllowed && $random < $sokuonProbability) {
$text .= $sokuon;
}

Возможно, что спецсимволы имеет смысл генерировать не отдельно сами по себе, а в добавление к обычному символу.

В общем, давай, подумай сам, как сделать код более простым, чтобы правила было легко читать и легко менять.
Аноним 03/03/16 Чтв 00:12:59  673943
>>673941
Не знаю как в PHP, но обычно возвращается указатель на первый элемент массива.
Аноним 03/03/16 Чтв 00:14:09  673944
>>673940

> Что-то типа такого? http://ideone.com/rfef0Q
Да. Использование min тут имеет то преимущество что код чуть компактнее получается и мы обходимся без ветвлений.
Аноним 03/03/16 Чтв 00:14:20  673945
Как сделать, чтобы функция могла юзать переменные всякие там, массивы и прочее из другой функции (из мейна)? А то вот делаю войдовую функцию по рисовке тайлов из массива, хочу её отдельно вынести чтоб использовать когда хочу как собстна функцию, а там чтоб нарисовать что-то нужно делать команду окнонейм.draw(спрайт), которая работает только в мейне (потому что там определено окно, спрайт, вот это всё).
Аноним 03/03/16 Чтв 00:14:27  673946
>>673943
>>673941
>>673905
Бля, не, нихуя не то. Наоборот, файл завершает работу и передает некоторую инфу в другой, вызывая его (или переадресуя), а не наоборот, тот первый подключает второй.
Аноним 03/03/16 Чтв 00:16:09  673947
>>673943

В PHP переменные могут хранить массивы. Если ты хочешь намекнуть на Си то там такое решение - большая проблема, так как в 99% случаев нам нужен не указатель на массив в памяти, а еще и длина (чтобы избежать переполнения). Удивительно, что хотя проблема с переполнениями буфера известна уже 30 лет, программисты на Си все езе их допускают. Это происходит из-за нежелания борьбы с проблемой системно - например, используя определенные правила или абстракции.
Аноним 03/03/16 Чтв 00:16:30  673948
>>673946

Хватит изобретать велосипеды. Тебе нужны функции.
Аноним 03/03/16 Чтв 00:19:03  673949
>>673942
>Тот же совет про индексы.
Индексы я оставил для того, чтобы было удобнее смотреть, где начинаются "звонкие" символы, символы, с которыми маленькая цу не работает и всё в этом духе. Не думаю, что это что-то криминальное.

За советы по программе с хираганой - большое спасибо, допилю.
Аноним 03/03/16 Чтв 00:20:15  673950
>>673942

> // сокуон разрешен только если текущий символ начинется с согласной
> $isSokuonAllowed = !in_array($character, $specialCharacters);
Ой, тут комментарий не соответствует коду, но надеюсь мысль понятна. Условия лучше писать в таком виде, потому что условие вида

if ($random > 46)

читается хуже- надо лезть в список и пытаться понять что хотел сказать автор.

Аноним 03/03/16 Чтв 00:21:44  673952
>>673949

Индексы имеют тот недостаток что их надо поддерживать при изменениях. Это лишняя ручная работа. Лучше будет сделать несколько отдельных массивов для разных категорий символов. А в коде ты потом можешь объединить их в один общий массив если надо.

То есть простановку индексов все же лучше оставить компьютеру - у него это получается лучше.
Аноним 03/03/16 Чтв 00:24:30  673953
>>673952
А вот что подскажи - как объединить несколько массивов в один?
Аноним 03/03/16 Чтв 00:33:04  673960
>>673953
Создаешь текстовый файл и записываешь туда двумерный массив, тебе необходимо поменять минимальный и максимальный элемент в этом массиве В ФАЙЛЕ!
Аноним 03/03/16 Чтв 00:39:17  673965
>>673948
Нет же!
Файл, например, обрабатывает данные формы, после чего редиректит на главную админки с определенным месседжем и статусом.
Аноним 03/03/16 Чтв 00:41:03  673966
>>673965
Тащемта, месседж можно выполнить с помощью обычного аллерта.
Аноним 03/03/16 Чтв 00:43:31  673968
>>673966
Опять же, если инициатор - главная - да. Смотри
Форма использует обработчик.пхп. По завершению своей работы обработчик.пхп должен редиректить на главная.пхп и передавать последней некоторые параметры.
Аноним 03/03/16 Чтв 01:13:58  673981
>>673953

array_merge - вроде же было в уроке про массивы? Если нет, информация есть в мануале.

>>673965

Почитай про MVC. Как сделать обработку формы - давно уже известно. Тебе надо не изобретать велосипеды, а изучить накопленный опыт.


Аноним 03/03/16 Чтв 01:16:26  673983
>>673981

Хотя я подумал, если ты сейчас пойдешь гуглить про MVC, то наверняка найдешь не то или запутаешься. По хорошему тут надо изучить какой-нибудь фреймворк вроде Юи 2 или Симфони 2, или например решать нашу задачу про студентов, в общем быстро это не объяснить.
Аноним 03/03/16 Чтв 01:51:07  673992
>>673945

Обычно все, что функции нужно, передается ей явно через аргументы.

> А то вот делаю войдовую функцию по рисовке тайлов из массива, хочу её отдельно вынести чтоб использовать когда хочу как собстна функцию,
Ну давай подумаем, что нужно такой функции для выполнения работы? Очевидно, надо дать ей какой-то "холст", на который она должна нарисовать изображение, исходную картинку и может какие-то дополнительные параметры, показывающие какую часть картинки взять и какие преобразования сделать.

> а там чтоб нарисовать что-то нужно делать команду окнонейм.draw(спрайт), которая работает только в мейне (потому что там определено окно, спрайт, вот это всё).
При чем тут "окно нейм"? Какой это язык? По моему твое окнонейм - это обычный объект, который можно передавать.
Аноним 03/03/16 Чтв 02:19:49  674002
Объясните где взять sphinx.api.php? Нагуглил только установку дополнения для PHP через PECL, но там нужно еще и оригинальный сфинкс с исходников собрать, а я этого не очень хочу.
Аноним 03/03/16 Чтв 02:21:09  674003
>>674002
Извиняюсь, нашел папку api в бинарниках для win32. И почему нельзя было сделать ссылку на api отдельно для других ОС?
Ответы 27 февраля Аноним 03/03/16 Чтв 06:29:45  674035
>>667269

> mb_strtoupper(mb_substr(trim($value),0,1)) . mb_substr(trim($value),1)
Вот эту сложную конструкцию стоит вынести в отдельную функцию.

> foreach($text as $key => $value){
value лучше переменовать в sentence, а text хранящий массив - в sentences

> \\s*?
Квантификаторы нельзя применят друг к другу напрямую. Квантификатор можно писать только после символа или круглых/квадратных скобок. Нельзя написать a+? - можно писать (a+)? но это довольно бессмысленно (какой смысл задавать число повторений дважды?) и проще заменить на звездочку. Знак вопроса после звездочки управляет жадностью звездочки (мануал http://php.net/manual/ru/regexp.reference.repetition.php ) и это вряд ли то, что ты имел в виду.

Вместо var_dump надо возвращаеть результат с помощью return и далее выводить его через echo.

>>667284

Если речь о Windows - в функции работы с файлами в нем надо передавать имена в win1251.

>>667361

Берем 1-й символ с начала и с конца и сравнвиаем. Не равны - не палиндром. Равны - продолжаем сравнение.
Берем 2-й символ с начала и с конца и сравниваем. Не равны - не палиндром. Равны - продолжаем сравнение.
....

В твоем коде ты всегда берешь только первый и последний символ. А номер символа дложен меняться на каждом шаге цикла.
Ответы 26-27 февраля Аноним 03/03/16 Чтв 06:30:12  674036
>>667362

> function inclineWord($key, $word) {
Неудачно спроектирована функция. Вот я допустим хочу ее использовать - что такое key? что такое word? Почему word хранит число, хотя переводится как "слово"? Ну и ты зачем-то заложил в нее список слов, лучше убрать его из функции и передавать формы слова снаружи. Эту функцию надо переписать целиком.

Вот пример хорошей функции:

echo declense(4, '%d кот', '%d кота', 'аж %d котов', 'ни одного кота');

> function parts($number) {
Имя функции должно начинаться с глагола, сделатьЧтоТо, напримр splitToParts

> $score = mb_strlen($number);
> $thousand = mb_substr($number, -6, 3);
Для работы с числами надо использовать математические операции (деление, остаток от деления). Более того, ты в этой функции скопипастил 3 почти одинаковых блока. Это плохо, но если перейти на математические методы, эти ифы будут не нужны, потому оптимизировать их не надо.

> function smallNumberToText($number) {
> if ($number == 0) {
> echo "На вашем счету ноль рублей\n";
> exit;
Плохо спроектирована функция. Почему она самовольно выводит что-то на экран, да еще и завершает всю программу? А если я хочу вызвать ее несколько раз? При этом если число не равно нулю, то она ничего не выводит. Тут нет логики.

> if (mb_strlen($discharge) == 3) {
Используй математические методы

В функции smallNumberToText слишком глубокая вложенность кода. Вот я вижу 5 уровней вложенности: foreach -> if ($discharge > 0) -> else -> for. Как минимум ту можно избавиться от одного уровня, переделав if ($discharge > 0). Когда у тебя весь код заключен в один if - это плохо и надо переворачивать такой иф.

> .$spelling[mb_substr($discharge, 0, 1) * 100];
слишком сложное выражение в скобках - выноси в переменную с понятным именем.

> $regexp = array('/один тысяча/', '/два тысячи/', '/ ноль/', '/^[ ]/');
> $replacements = array('одна тысяча', 'две тысячи', '', '');
Это костыли. Надо изначально выбирать правильную форму слова.

В общем, убирай все mb_strlen и mb_substr.

>if ($number % 1000 == 000) {
000 это то же самое что просто 0. Подумай в чем разница между 0, "0", 000, "000".
Ответы 26-27 февраля Аноним 03/03/16 Чтв 06:30:34  674037
>>667369

Это не очень хорошее решение. Ощущение что ты не пытался написать простой и понятный код, а пытался его запутать. Почему ты думаешь что это хорошо? Как ты думаешь, что хочется другим людям - быстро понять как работает код, или разгадывать шарады и проверять по мануалу особенности языка?

Вот например:

> while($symbols > 0) {
> $reversed .= mb_substr($string, --$symbols, 1);
Это закамуфлированный цикл со счетчиком, то есть for. Почему ты пытаешься его замаскировать?

> $reversed .= mb_substr($string, --$symbols, 1);
Это 2 отдельных действия и должно писаться так:

$reversed .= mb_substr($string, $symbols, 1);
$symbols--;

Если ты хочешь сказать что видел такое в Си коде, я тебе сразу отвечу что именно у любителей запутывать код потом находят уязвимости вроде переполнения буфера. Работа со строками в Си сделана отвратительно, и поощряет написание тяжелочитаемого кода с ошибками. В PHP она гораздо лучше, тут строка является полноценной сущностью, а не указателем в произвольную точку памяти.

Перевернуть строку проще, разбив ее на массив символов ($letters = preg_split("//u", $text, null, PREG_SPLIT_NO_EMPTY);)

> return mb_substr($text, 0, ceil($textLength / 2)) == reverseString(mb_substr($text, floor($textLength / 2)));
Не очень понятно зачем эти странные манипуляции с делением на 2? Что тебе мешает перевернуть строку целиком? И что еще хуже, почему там стоит ceil и float? Не лучше ли справа писать то же число что и слева, только со знаком минус?

>>667374

Он наверно еще функции не изучал.
Ответы 26-27 февраля Аноним 03/03/16 Чтв 06:30:55  674038
>>667552

В ОП посте есть ссылка на задачи по SQL и там же ссылка на туториал для начинающих.

Для отправки запросов к базе из PHP удобно использовать встроенное расширение PDO.

Чтобы писать сайты, мало знать PHP и SQL. Надо еще изучать HTML/CSS (в ОП посте есть задания), архитектуру веб-приложений, работу с формами, MVC (ее изучают например в задаче про студентов). Без этого ты можешь сделать сайт, но код скорее всего будет очень плохим и уродливым - так что для себя можно сделать, но на собеседовании показывать не стоит.

Алсо если тебе хочется побыстрее что-то написать на PHP и запустить в браузере, поставь Апач с PHP (инструкции в Оп посте) и следуй туториалу http://php.net/manual/ru/tutorial.php

Линукс не обязателен - можно запускать Апач и под виндой - но в перспективе линукс освоить все равно придется.

>>667666

Под линуксом динамические библиотеки имеют другое расширение

>>667871

> Копирую сюда весь css код
Зачем копировать? Там нужны только дополняющие правила для печати.

> При этом ничего не выравнивается по центру, когда выводишь документ на печать,
А почему оно должно?
Ответы 26-27 февраля Аноним 03/03/16 Чтв 06:31:35  674039
>>667912

Тогда тебе лучше называть переменные правильно, а не key и value.

>>668117

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

>>668273

> имхо подразумевая то что на винде вообще не удобно работать.
Спорно. Если тебе не нужна консоль то Апач и PHP вполне нормально работают и тратят меньше ресурсов чем виртуалка + не надо пока разбираться в линуксе.

>>668312

Ответ должен быть 61270. Ты сильно усложнил код, из-за чего трудно даже понять что там не так. Придется переписать его заново. Тот код, который дан в учебнике, специально содержит ошибку - потому возможно не стоит его копировать.

Алгоритм должен быть примерно такой:

- прибавляем проценты и комиссию к остатку долга (!не вычитаем ничего пока!)
- если остаток маленький, выплачиваем сколько осталось и уходим
- иначе платим 5000

«Платим» здесь значит уменьшаем долг и увеличиваем общую сумму выплаченного.

>>668375

Кыш
Ответы 27 февраля Аноним 03/03/16 Чтв 06:48:15  674040
>>668498

Число 69 лучше сделать констаной с понятными именем.

>>668832

Нет, надо использовать математические методы. Если нужны огромные числа то использовать библиотеку для работы с огромными числами.

>>668844

ucfirst работает только с некоторыми символами вроде латиннциы. Не рекомендую ее использовать никогда. С utf-8 она несовместима и может ломать символы кириллицы. Советую почитать https://gist.github.com/codedokode/ff99e357e9860ea169b8

>>668884

Лучше использовать стандартные средства фреймворка - тогда например какие-то плагины для работы с заголовками смогут их видеть.
Ответ 27-28 февраля Аноним 03/03/16 Чтв 06:48:47  674041
>>669120
>>669950

> function inclineWord($number, $word1, $word2, $word5) {
> $test = $number%100;
Лучше называть вроде last2digits (2 последние цифры)

> $test = $test%10;
лучше сделать новую переменную чтобы не было путаницы

> if($test==0 && $number != 0){
Зачем второе условие ? Для нуля тоже используется форма word5

> if(isset($spelling[$number])){
Зачем это условие? Числа вроде 5 или 11 можно обрабатывать в общем порядке.

> if(isset($femaleSpelling[$tens]) && $isFemale == 1){
Чтобы не писать это несколбько раз, можно просто менять массив с написанием, если пол женский то заменять в нем элементы на элементы из femaleSpelling

> $numberStr = $numberStr." ".$femaleSpelling[$units];
Лучше сделать массив и добавлять слова в него, будет более аккуратный код и не надо помнить с какой строны ставить пробел. Или хотя бы использовать .= здесь

> $saveNumber = 0;
> $saveNumber = $number;
Первая строка не имеет смысла

> $indexName = 0;
> $indexName = 0;
То же самое

> $word = inclineWord($numericDigit, $largeNumbersNames[$indexName][0], $largeNumbersNames[$indexName][1], $largeNumbersNames[$indexName][2]);
не надо копипастить $largeNumbersNames[$indexName], вынеси в переменную. Также, возможно аругменты стоит записать вертикально.

> if($indexName == 0){
> $word = "(".$saveNumber.") ".$word;
Это можно просто поставить после / перед циклом и иф будет не нужен

Чтобы не мучаться с пробелами, складывай части фразы в массив.

Коду надо улучшить читабельность - пока читать тяжеловато.
Ответ 27-28 февраля Аноним 03/03/16 Чтв 06:49:18  674042
>>669149

Не советуй вредное, нужны математические методы.

>>669219

> http://ideone.com/gvUha4 -5.3(оценки)
верно

> http://ideone.com/P526Ry -5.4(рост)
Верно

> http://ideone.com/6F7GME -5.5(ответ на вопрос)
Да, правильно.

> http://ideone.com/gU18qG -5.6(генератор имени)
все правильно

>>669382

Попробуй понять разницу:

echo $a+$b; - вычисляет выражение, получается число, оно выводится
echo $a . $b; - числа склеиваются как строки и выводятся
echo "$a+$b"; - в строку подставляются значения a и b но не складываются
echo '$a+$b'; - ничего не вычисляется, строка выводится как есть
Ответы 28 февраля Аноним 03/03/16 Чтв 06:50:10  674043
>>669532

Скачивать 5 файлов, распаковывать, изучать код? Что-то лень. Можешь запостить ключевые места кода и выложить например на pastebin, может кто-то глянет, но обещать не могу.

> при попытки извлечь из БД что-то кроме поля username я получаю..нихуя. просто пустое поле
Ну вот и написал бы: как выглядит код отправки запроса, чему равны переменные до его выполнения и после (выведи их через var_dump)


>>669731

> Никак не пойму как писать грамотно тесты.
Читал мой урок? https://gist.github.com/codedokode/a455bde7d0748c0a351a

> Если речь идет о модульном тестировании, то мне нужно тестировать все методы всех классов, а не только метод суммы в котором содержится основная логика приложения?
Нет. Ты не обязан тестировать все. В данном случае стоит тестировать юнит-тестами именно модель. Контроллер и вью (вместе с моделью) можно тестировать end-to-end (gui) тестами, то есть посылать HTTP запрос и смотреть ответ на него.

ну то есть определись, что именно ты хочешь протестировать?

- что модель правильно складывает числа?
- что контроллер при получении запроса вызвает правильнй метод модели (довольно сомнительный тест)
- что вью правильно подставляет результат в HTML код (тоже сомнительный)

Тестированием ты пытаешься проверить что написанный тобой код работает корректно, и защищаешь его от попыток сломать. На практике вью не тестируют из-за того что в них почти нет логики, а контроллер - потому что его трудно отвязать от других частей приложения и усилия того не стоят. Ну и конечно контроллер должен быть тонким.

>>669735

При чем active record в тестировании чисел? Ну и думаю при большом желании базу в AR можно заменить моком или использовать тестовую базу, хотя конечно спутанность модели и кода работы с базой чуть усложняет тестирование.

Интеграционные и юнит-тесты нужны оба, почитай например https://habrahabr.ru/post/168451/ (я советую пролистать весь блог яндекса на хабре - там много интересного по тестированию)

>>669744

Не надо использовать хранимые процедуры. Они неудобны , надо их поддерживать, неудобно отладивать, логгировать и тд.

Ну и твой запрос можно сделать и с клиента, сделав 20 юнионов.
Аноним 03/03/16 Чтв 07:36:51  674055
ОП, а список студентов >>664787 посмотришь? Я уже давно все исправил.
Аноним 03/03/16 Чтв 07:51:22  674056
14569806828740.jpg (93Кб, 1212x754)
Не могу запустить тесты в netbeans. Сейчас всё сделал как на этом видео https://www.youtube.com/watch?v=R0uh6fr8v-I.
Получаю такой ответ:
Возможно, произошла ошибка. Обратитесь к окну результатов.
В чем проблема?
Аноним 03/03/16 Чтв 08:21:09  674065
>>674056

Во первых найди окошко с логом, где написано какой файл запускается, что вывелось и тд.

Во-вторых, проверь настройки - указан ли путь к PHP правильно.

В-третьих, для начала стоит научиться запускать тесты ручками, а потом уже использовать запуск одной кнопкой. Открой командную строку, перейди в папку с тестами и запусти тесты нужной командой phpunit (я напишу пример наугад) вроде такой

php c:/tmp/phpunit.phar run

Аноним 03/03/16 Чтв 08:22:29  674067
>>674056

Алсо поле object надо переименовать в calculator.
Аноним 03/03/16 Чтв 08:23:31  674069
>>674056

Также, у phpunit есть режим, кога он пишет подробно что именно делается. Там добавляется к команде опция вроде -v или --debug, не помню. Ты можешь ее использовать для того чтобы понять что не работает.
Аноним 03/03/16 Чтв 08:37:57  674074
>>674065
>>674067
>>674069
>В-третьих, для начала стоит научиться запускать тесты ручками
Это хороший совет. Спасибо.
>Во-вторых, проверь настройки - указан ли путь к PHP правильно
А вот здесь крылась главная проблема.
В общем теперь всё работает за что большое тебе спасибо. Я уже дня два не мог разобраться в чём беда.
Аноним 03/03/16 Чтв 08:52:50  674085
>>674074

Я еще добавлю, что если урок учит именно запускать тесты через IDE то это неправильно. phpunit это консольная программа, и соответственно он рассчитан в первую очередь на запуск в ней, а не в нетбинсе. Так что лучше начинать с ручного запуска тестов, научиться писать phpunit.xml, а когда освоишься, узнать какой кнопкой это делается в IDE.
Аноним 03/03/16 Чтв 08:55:28  674088
>>674074

Вот у меня в уроке про phpunit немного написао: https://gist.github.com/codedokode/a455bde7d0748c0a351a#phpunit

Надо все же знать сам инструмент, а не только кнопку для его запуска из иде.
halp halp 03/03/16 Чтв 10:26:24  674112
Есть CSV след. содержания:
[code]1;.1;.10;;;К;;;Шайба увеличенная 8 ГОСТ 6958-78
1;.1;.11;;;П;;;"Заклепка резьбовая М8 MFX 23-VG
?№23М08VG1"
1;.2;;;;СБ;;КИУТ1501.01.01.000-01;Стойка
1;.2;.2;.5;;М;;;"Труба 40х40х2 ГОСТ 8639-82
В 10 ГОСТ 13663-86 L=0770 мм"
1;.2;.4;;;К;;;Винт М6х16 ГОСТ 11738-84[/code]
Суть в чём. Когда есть перенос строки в экселе идёт добавление \n в описании как в строке 2(заклепка) и 5(труба). И когда считываю файл через fgetcsv он разбивает описание и переносит на отдельную строку. Обычно это закавычивается. Надо как-то по маске брать то что в кавычках с новой строки например перед /n" тут текст с переносом и кавычками "/n и убирать /n в описание, которое в кавычках. Как сделать? пытался через регулярку но там ругается на маску по каждому поводу.
Аноним 03/03/16 Чтв 10:28:21  674114
>>674112
У меня кровь из глаз пошла от этого говна.
Аноним 03/03/16 Чтв 10:30:19  674116
>>674114
http://pastebin.com/aeqLkHnk
Аноним 03/03/16 Чтв 10:37:36  674119
аноны, тут можете помочь с валидацией в yii на строне клиента?
я пытаюсь создать форму с помощью CActiveForm
http://pastebin.com/3TjqMetB
но при вводе в текстовые поля, не происходит никакой валидации. Только срабатывает AfterValidation при загрузке страницы. ЧЯДНТ?
Аноним 03/03/16 Чтв 11:44:47  674156
Помогите разобраться, что делает следующий код:

class Template { //класс шаблонизатора
function __construct($file = null) { //функция конструктора
$this->file = $file; //переменная $file в новом классе = null
$this->vars['null'] = ''; //обнуление значения элемента null в массиве $file в новом классе ???
}
function set($name, $value) { //вызываем функцию с аргументами типа $tpl->set('items',$cats);
$this->vars[$name] = is_object($value) ? $value->fetch() : $value; //присваиваем значение $cats элементу items в массиве $vars
}
function fetch($file = null) { // в file передается файл /main.tpl, это html шаблон
if(!$file) $file = $this->file; //если $file false, то присваиваем $file значение $this->file, т.е. null

extract($this->vars); //вот тут, и далее, совершенно не понятно, что происходит
ob_start();
include($file);
$contents = ob_get_contents();
ob_end_clean();
return $contents; //возвращает что-то...
}
}
вызывается вот так $content = $tpl->fetch("./main.tpl");
Аноним 03/03/16 Чтв 12:10:05  674167
>>674156

Мануал по extract и по буферизации читал?

Аноним 03/03/16 Чтв 14:37:52  674241
>>674055
Нахуя ты память в цикле выделяешь?
И вообще тут не тужен четырехмерный массив. У тебя что имя и фамилия в целых числах описывается?
Определяешь класс с соответствующими полями, затем суешь его в вектор.
Аноним 03/03/16 Чтв 14:42:58  674254
>>674241

В вектор? И что значит память в цикле выделаешь? в PHP нет функций явного выделения памяти.
Аноним 03/03/16 Чтв 15:20:01  674268
>>673983
Да с формами я работать умею. Бля, это вообще не для какого-то годного кода. Мне вот просто нужно из одного php файла передать в другой (инициатором запуска этого второго является первый, он же передает) некоторые данные. Через глобалки, гет и куки/сессии делать не хочу, спрашиваю, можно ли еще как-то?
Наоборот, это для хуйни на сто строк, когда надо что-то затестить по-быстрому или набросать красивую лабу.
Аноним 03/03/16 Чтв 15:40:03  674299
>>674268
$argv ?
Ты хочешь странного
Аноним 03/03/16 Чтв 15:41:17  674301
Нужен скрипт перевода числового количества денег в прописной на яваскрипт. Все что нахожу, переводят только рубли в слова, но не переводят копейки. Например, при вводе значения 460.34 скрипт выводит - четыреста шестьдесят рублей 34 копейки, а мне нужно - четыреста шестьдесят рублей тридцать четыре копейки. Может кто-то видел где-нибудь такой скрипт?
Аноним 03/03/16 Чтв 15:46:48  674308
Объясните, пожалуйста, что такое Твиттер Бутстрап, которым предлагает пользоваться ОП для студентов. Это, как понимаю, просто набор шаблонов(файлов ХТМЛ) для более удобного создания собственного проекта? Т.е., чтобы упростить написание кода вручную, правильно?
Аноним 03/03/16 Чтв 15:52:43  674311
>>674299
Странного? Ну хз. Возможно. А как заюзать $argv? Я же перехожу от выполнения одного файла к выполнению другого (через header(location...)
Аноним 03/03/16 Чтв 15:57:25  674312
>>674308

Набор готовых CSS правил + несколько простых JS плагинов (не нужны в задаче).
Аноним 03/03/16 Чтв 15:57:49  674314
>>674308

> росто набор шаблонов(файлов ХТМЛ)
нет
Аноним 03/03/16 Чтв 16:03:47  674318
>>674311
Ну тогда только
> гет и куки/сессии
Озвучь, почему ты не хочешь/можешь их использовать?
Аноним 03/03/16 Чтв 16:28:29  674358
Как вы боретесь с тем, что всё забывается? Сделал перерыв на неделю вынужденный, возвращаюсь к занятиям - забылсь даже совсем простые вещи
Аноним 03/03/16 Чтв 16:42:55  674369
>>674312
то, что нужно. терпеть не могу CSS и пердолиться с ним.
Аноним 03/03/16 Чтв 16:45:57  674372
Возможно тупой вопрос, но будет ли выводить пыхокод прямо в браузер из openserver?
Аноним 03/03/16 Чтв 16:46:25  674374
~<?php
require('sql_bd.php');
$query1=$mysqli->query("UPDATE testov SET n1 = REPLACE(n1, '.', '')");
function gogogo() {
$query=$mysqli->query("SELECT DISTINCT n2 FROM testov WHERE n2>0");
while ($row = $query->fetch_assoc()) {
echo $row[0];
}
return false;
}
gogogo();
?>~
Fatal error: Call to a member function query() on a non-object
почему так? если пихну файл с коннектом в функцию то всё заработает?
Аноним 03/03/16 Чтв 16:46:55  674376
>>674358
Глаза уже болят? Или лень одолевает?
>>674372
Конечно.
Аноним 03/03/16 Чтв 16:48:51  674379
>>674318
>Озвучь, почему ты не хочешь/можешь их использовать?
Потому что юзер может изменить гет/куки, если даже они зашифрованы, первый засерает адресную строку. А сессии, я так понимаю, создают дохуя лишнюю нагрузку на сервер, если клиентов много, выполнений скриптов много, в сессии хранится много данных...да и ее можно подменить.
Аноним 03/03/16 Чтв 16:50:13  674382
>>674376
лень и работа
Аноним 03/03/16 Чтв 16:50:34  674383
>>674382
работа, ессно, донная
Аноним 03/03/16 Чтв 16:53:42  674389
>>674358
Лютейше двачую этот вопрос.
>>674376
Дело не в лени. Сегодня ты пытаешься учить пых, завтра у тебя последний день перед контрольной в вузе, через неделю дедлайн по курсачу на тему лоу-левела, потом ты заебываешься с ява-лабами, а в свободное время балуешься фотошопом, английским и перками в вовке. Ну и бухать не забываешь. Через пару месяцев вернулся - и пиздец, не помнишь, как запрос к базе сформулировать, какие параметры за что отвечают в конфиге, не понимаешь, чего от тебя хочет иксдебаг, если ты честно перегрузил функцию и почему length($arr) выдает ошибку. Каждый раз заново все гуглить...а уж редкая хуета типа трейтов и необходимости заключать в хуевинки регексп, разница в наличии-отсутствии всяких прег-сплитов и прег-тестов... Ебааать
Аноним 03/03/16 Чтв 16:54:55  674390
>>674389
А еще нереально трудно помнить больше 1-2 языков, все в башке мешается, особенно фреймворки, библиотеки и та их часть, которая используется нечасто.
Аноним 03/03/16 Чтв 16:58:49  674399
>>674369
Ещё вопрос по bootstrap имею. Смотрю туториалы на ютубе по нему: так там готовый КСС полностью прописанный, юзай не хочу, никакого пердолинга. Теперь вопрос: версталы опытные на работе только этим и пользуются? В таком случае для чего превозмогать ОП-овский урок по КСС, так, для общего развития?
Аноним 03/03/16 Чтв 18:30:11  674539
>>674358
Новичкам в треде помогаю решить то, что сам уже решил, смотрю на любой вариант решения, переделываю, чтобы заработало.
Думаю, что ОП и по этой причине тоже всем нам помогает, - лишний раз всё освежить в памяти.
Аноним 03/03/16 Чтв 18:33:20  674543
>>674399
Принципы понять.
Хотя сам жалею, что на две недели затормозил с этими задачами.
Аноним 03/03/16 Чтв 18:35:37  674546
>>674399
Ещё у ОПа там годный макет, который надо сверстать из PSD.
Аноним 03/03/16 Чтв 18:50:31  674579
Сижу за пекой 24/7. Всю жизнь сидел за ЭЛТ-монитором, но теперь моя няша сгорела, и пришлось пересесть за ЖК. Сижу уже полгода, начали лопаться сосуды и уставать глаза от этого. Что делать? Бывают ли хорошие ЖК-мониторы, от которых глаза не вытекают?
Аноним 03/03/16 Чтв 18:57:08  674590
киньте пример страниц для задачи с студентами для верстки.
Аноним 03/03/16 Чтв 19:08:42  674604
>>674590
Ну в смысле скрины для примера.
Аноним 03/03/16 Чтв 20:12:10  674663
>>674374
Ты не можешь из функции получить доступ к внешней переменной. Да, должно заработать, но этой плохой путь (у тебя создаётся два соединения).
Пусть знающие аноны меня поправят, но в порядке возрастания кошерности, возможны следующие варианты:
1) глобальные переменные (всё ещё не очень)
2) передача $mysqli в функцию параметром
3) класс для работы с БД

Ну и более современным и универсальным будет использовать PDO.
Аноним 03/03/16 Чтв 20:17:26  674673
>>674379
У тебя то наколеночный код, то хайлоад. Опиши конкретнее свой юз-кейс.
Аноним 03/03/16 Чтв 20:34:48  674693
14570264886580.jpg (122Кб, 652x588)
Как экспортировать базу? Прописываю команду пикрелейтед, получаю результат пикрелейтед, файла с базой не нахожу.
Аноним 03/03/16 Чтв 20:39:09  674698
Подскажите годные скринкасты по верстке сайтов из макетов с нуля. Желательно с использованием sass и БЭМ. Можно на английском Вот вроде понятны все преимущества но когда сам пытаюсь получается тот же самый css и длинные классы вместо каскадности.
Аноним 03/03/16 Чтв 20:41:26  674701
>>674579
Ты разделом не ошибся?

У меня глаза текли от нище-ТН и плохого освещения. Переехал на IPS и включил мягкий свет за монитором все прошло.
Аноним 03/03/16 Чтв 20:45:51  674708
>>673006
>>673006
http://ideone.com/Wc7MdY
спасибо, разобрался
Аноним 03/03/16 Чтв 21:35:12  674796
14570301130740.png (31Кб, 1903x949)
>>674590
>>674604
У ОПа же в условии задачи примерно описано как это должно выглядеть. Вот мое.
Аноним 03/03/16 Чтв 21:39:36  674805
>>674308
>elseif ($creditBalance < 0)
Такого не должно получиться при верном решении задачи, так что это лишнее.
>echo "{$month} месяц спустя: долг = {$creditBalance} руб, выплачено всего {$paymentTotal} руб. \n";
Это повторяется в двух основных условиях, поэтому может быть вынесено в основной цикл.
Аноним 03/03/16 Чтв 21:40:08  674806
>>674805 >>> >>674708
Аноним 03/03/16 Чтв 22:07:40  674852
Привет!
Пытаюсь запилить дефолтненькое добавление в друзья , друзей то отображает если я их вношу в БД , а вот заявки в друзья , или кому я отправил заявку , нет. В чем проблема гайз?
http://ideone.com/aQOxyd
Аноним 03/03/16 Чтв 22:09:09  674855
>>674852
Точнее , даже если я в БД вношу данные о отправке заявки - мне все равно предлагается "отправить" ее. То есть , он просто пропускает это , и это.

echo 'Add or No';
echi 'Otmena zayavki';
Аноним 03/03/16 Чтв 22:11:36  674858
>>674805
Если я выношу его в основной цикл, то у меня после последней оплаты заканчивается цикл и оно не пишет о оплате в 13 месяце. Вынести break чет не получается
Аноним 03/03/16 Чтв 22:14:00  674865
http://ideone.com/iHxlWJ
Аноним 03/03/16 Чтв 22:22:48  674879
>>674858
Попробуй другое условие поставить в цикл.
Подсказка: обрати внимание на $creditBalance в этой ситуации, ведь цикл должен работать, пока $creditBalance не потратился до конца.
Аноним 03/03/16 Чтв 22:22:56  674880
14570329761730.jpg (25Кб, 604x340)
Я недавно задавал похожий вопрос про гит. Теперь про композер и нпм. Допустим я создал папку с проектом и дичайше там устанавливал все подряд пакеты. Пушил на гитхаб, потом под другим логином пулил в другую папку и разворачивал из зависимостей. Ну для теста, понять как это все работает. Достаточно ли просто удолить папки с проектами руками чтобы нигде никакого мусора не осталось? Или лучше через npm uninstall?
Я говорю про локальные пакеты, с глобальными все ясно.
Аноним 03/03/16 Чтв 22:46:34  674922
>>674673
Ну, хз. В админ.пхп есть форма удаления поста с форума, там его номер, причина удаления, возможность забанить автора, этц. Адмит вводит данные, нажимает сабмит. Форму обрабатывает delete.php, который в результате своей работы рапортует об успешном или неуспешном выполнении операции и редиректит обратно на админ.пхп
Аноним 03/03/16 Чтв 22:50:44  674928
>>674604
Что делает добавить и заполнитель ?
Аноним 03/03/16 Чтв 22:54:31  674937
>>674796
Спасибо, а что делает "добавить" и "заполнитель" ?
Аноним 03/03/16 Чтв 23:12:37  674967
14570359578720.png (22Кб, 1903x722)
>>674937
Добавить - добавление \ редактирование информации о себе.
Заполнитель - отключаемая вещь которая заполняет базу данных рандомными данными. Сделал для тестирования, потом решил оставить.
Аноним 03/03/16 Чтв 23:16:23  674972
>>674967
Ага, а если пользователь авторизирован, то поля уже заполнены или все поновой ?
Аноним 03/03/16 Чтв 23:16:59  674974
>>674967
И выход это завершение сессии ?
Аноним 03/03/16 Чтв 23:26:36  674981
>>674972
Заполнены, все соответствует условию.
>>674974
Там не сессии а куки. Исходники можешь тут посмотреть https://github.com/foobar1643/student-list
Аноним 03/03/16 Чтв 23:41:45  675014
>>674981
Не хочется готовое решение смотреть. Надо самому все. Можно лишь советы просить.
Аноним 03/03/16 Чтв 23:43:36  675021
http://ideone.com/rciJYx
Аноним 03/03/16 Чтв 23:46:49  675030
14570380095740.png (30Кб, 1358x652)
>>674981
Сойдет ?
Аноним 03/03/16 Чтв 23:48:43  675034
>>674981
Бугурт у меня. Понятия ведь я не имею как эту ебанину посмотреть.
Аноним 03/03/16 Чтв 23:51:18  675037
>>675034
Чет не понял.
Аноним 03/03/16 Чтв 23:54:57  675049
>>674967
А как с работой. Пробовал уже на собеседование пойти ?
Аноним 03/03/16 Чтв 23:58:51  675058
>>675049
Нет, не пробовал. Я считаю что мне не хватает опыта и знаний, еще мой код плохой и я очень часто делаю глупые архитектурные ошибки. Стараюсь работать над этим, параллельно изучая фреймворки и делая файлообменник.
Аноним 04/03/16 Птн 00:00:48  675061
>>675058
Образование математическое и сколько уже вкатываешься в веб ?
Аноним 04/03/16 Птн 00:06:54  675071
>>675061
Образование у меня 11 классов школы, учусь в ВУЗе на специальности Программное обеспечение систем. Начал заниматься всем этим еще в 15 - 16 лет, тогда я понятия не имел что такое эти ООП и паттерны, просто пробовал писать говнокод по разным туториалам в интернете, параллельно с этим изучая администрирование серверов. В том возрасте это было обычным увлечением, я часто забрасывал на пару месяцев, потом возвращался. Примерно год назад решил стать мамкиным вкатывальщиком в веб и заняться этим серьезно, и вот теперь я здесь.
Аноним 04/03/16 Птн 00:11:25  675077
>>675071
Я тоже на Программной инженерии учусь. Какой курс ? Я думаю, тебе все же стоит попробовать сходить на собеседования. Хуже точно не будет. Окажут - получишь опыт. А возьмут - так оно и к лучшему.
Аноним 04/03/16 Птн 00:12:31  675081
>>675037
Без обид, что назвал ебаниной работу, эт у меня бугурт на то, какой я тупой и ничего не пойму, как там что посмотреть. а посмотреть сука хочется
Аноним 04/03/16 Птн 00:18:01  675089
>>675077
Второй курс.
>Хуже точно не будет
Я читал истории в соседнем треде про черные списки в некоторых конторах. Это когда тебя один раз не взяли из-за нехватки знаний и после этого добавляют в черный список. Потом все последующие походы к ним на собеседования заканчиваются отказом уже на стадии отправки резюме. Да и с одним маленьким проектом сделанным за три дня как-то неудобно идти будет.
Аноним 04/03/16 Птн 00:20:55  675093
>>675089
Какой фреймворк пытаешься осилить ?
Аноним 04/03/16 Птн 00:23:46  675097
>>675089
Не удержался и посмотрел.
$student->gender = Student::GENDER_MALE; // Sexism?
Проиграл с этого.
Аноним 04/03/16 Птн 00:23:50  675098
>>675093
Yii2, так же почти доделал файлообменник на слиме.
Аноним 04/03/16 Птн 00:57:36  675149
>>675089
Расскажи подробнее о ходе интенсивного обучения за год.
Аноним 04/03/16 Птн 01:48:15  675175
Аноны-похаперы, хочу задать вам вопрос, ответ на который я обязан знать.
Поможет ли хеллоувордлщику этот http://itcenter.ifmo.ru/razrabotka_web_-_saytov_3 курс? Или 60к на ветер, потому что не буду успевать? Курс 3 месяца длится.
Аноним 04/03/16 Птн 02:28:35  675220
>>673542
>>673558
>>673879
ОП, поясни всю эту хуйню плес.
Аноним 04/03/16 Птн 02:46:33  675248
Подскажите плес почему так работает http://ideone.com/kvTwv6 ,а так не работает
http://ideone.com/VQjYYn ???
Аноним 04/03/16 Птн 02:49:40  675255
>>675248
>$i >= 2
Условие для работы цикла неверное.
Аноним 04/03/16 Птн 03:02:09  675276
>>675255
Спасибо, теперь все работает
http://ideone.com/VQjYYn
Аноним 04/03/16 Птн 03:45:23  675327
>>675030
Я конечно не дизайнер, но думаю лучше будет хотя бы пол сделать списком с выбором (select).
Аноним 04/03/16 Птн 04:04:02  675339
>>675327
И хорошо что ты не дизайнер, никогда им не становись пожалуйста.
Аноним 04/03/16 Птн 06:07:53  675398
>>674693

Чтобы сдампить базу надо использовать mysqldump а не mysql

mysqldump -uxxx -pxxx database > file.sql

Если в PATH нет этой команды, то придется написать полный путь перед mysqldump (если ты читал мой урок по командной строке то уже это знаешь).

Дамп это текстовый файл с SQL командами. Загружается дамп с помощью mysql:

mysql -uxxx -pxxx database < file.sql
Аноним 04/03/16 Птн 06:17:12  675399
>>675327

Со списком такая история. Список позволяет экономить место на экране, однако имеет недостатки:

- добавляется лишний клик для выбора
- возможные варианты не видны

Радиокнопки не имеют этих недостатков, но могут занимать больше места. Когда пунктов всего несколько, радиокнопки могут быть выгоднее.

>>675339

К чему писать такие посты?

>>675030

Форма поиска кривая, высота кнопки и поля ввода не совпадают

Поля на мой взгляд слишком длинные. Нужно бы укоротить их. Поля вроде номера группы или года рождения можно сделать совсем небольшими.

Радиокнопки расположены не очень удачно в том плане что нарушается закон близости (относящиеся друг к другу вещит находятся близко). Смотри, у тебя "мужской" и "женский" далеко, а "мужской" и "местный" близко и можно подумать что они связаны как-то.

Кнопка "очистить форму" не нужна, мне кажется, не могу представить ситуацию где она полезна. Можно заменить ее ссылкой "вернуться на главную".




Аноним 04/03/16 Птн 06:25:44  675402
>>675399
>К чему писать такие посты?
Для человека не очевидно что 1 раз тыкнуть мышкой проще, чем кликнуть, прочитать список, кликнуть, скролить дальше, но при этом он пытается навязать свою точку зрения другим. Да, уменя бомбит от того, что каждый день мне приходится работать с такими интерфейсами. Выпадающими списками на 1 пункт, галочками на 30 пунктов.
Аноним 04/03/16 Птн 06:30:46  675403
>>675402

Он ничего не навязывал. Незачем переходить на личности. Ты бы мог дать ссылку на статью по теме или что-то такое.
Аноним 04/03/16 Птн 06:41:40  675409
>>675403
Ты прав, наверное я слишком токсичен.
Ссылку не дам, но гугл в помощь.
Дизайн Для Реального Мира
Аноним 04/03/16 Птн 08:33:04  675430
>>675399
Спасибо, буду править
Аноним 04/03/16 Птн 09:23:35  675452
Гайс, вопрос актуален >>674880
Аноним 04/03/16 Птн 10:04:45  675483
>>674880
>>675452

Композер создет файл composer.lock, и ставит пакеты в vendor. Также он устраивает кеш где-то в твоем профиле в ОС, но это мешать не должно.

npm аналогично ставит все в node_modules

Аноним 04/03/16 Птн 10:21:31  675497
>>674922
Простых способов нет.
Если нужна авторизация, то для наколеночных поделок можешь посмотреть в сторону basic/digest аутентификации.
Но вообще от кук/сессий ты никуда не денешься, т.к. в вебе это по сути единственный способ сохранять состояние между запросами.

Поправьте, если я ошибаюсь.
Аноним 04/03/16 Птн 11:00:44  675519
>>675483
Ну то есть можно просто удалить корневую папку FacebookKiller в которой лежат все эти node_modules, package.json, composer.lock, bowerrc, bower.json, .gitignore, .git? И не получить проблем в будущем, если например я заново создам папку с таким же именем.
Аноним 04/03/16 Птн 11:56:44  675561
>>675519

Да. Более того, в случае с композером ты можешь например убрать зависимости из composer.json и сделать команду которая удалит более не нужные зависимсти (наверно, я не проверял).
Аноним 04/03/16 Птн 11:59:00  675563
>>675402
>Для человека не очевидно что 1 раз тыкнуть мышкой проще, чем кликнуть, прочитать список, кликнуть, скролить дальше
>выбор пола
Oh you!..
Аноним 04/03/16 Птн 12:42:33  675586
>>673319 (OP)
Господа, что за хрень?
Устанавливал опенкарт на винде, все норм работало, на линуксе 404 ошибку выдает (пхп ламп апаче все есть и работате). Надо какие-то депенденсис в апаче писать?
Аноним 04/03/16 Птн 13:14:37  675605
>>666755
5.9 неправильно же, проверяет только 1ю букву, для примера вставил в твой код набор буков с одинаковыми в начале и конце http://ideone.com/n9xgYF, в результате говорит что полиндром, хотя таким не является
Аноним 04/03/16 Птн 13:33:43  675608
>>675605
https://ideone.com/HuI7Zi
Аноним 04/03/16 Птн 13:45:47  675615
14570883477320.png (203Кб, 1149x660)
>>675398
Я наверное глупый вопрос задам, но это делается не через MySQL 5.7 Command Line Client, а через mysqldump.exe? У меня проблема с экзешками из папки из пикрелейтед - они все сразу вылетают, вот успел заскринить окно только. Поэтому работал со студентами через комманд клиент только.
Аноним 04/03/16 Птн 13:52:01  675618
>>675615

Они не вылетают. Это программы для командной строки, ты их при клике запускаешь без аргументов, они об этом пишут и окно закрывается.

Надо запускать из командной строки.

> это делается не через MySQL 5.7 Command Line Client
Нет, он только для выполнения запросов к базе.
Аноним 04/03/16 Птн 14:02:20  675631
Прислали в кач-ве тествого им на сайт функционал добавить, какой-то кусок цмс который не открывается. ппц, как будто чел просто хочет, чтобы я работу за него сделал.
Аноним 04/03/16 Птн 14:04:24  675633
14570894642920.jpg (521Кб, 1788x2268)
>>675618
Спасибо за быстрый ответ, Оп. Раз ты здесь еще хотел спросить. Второй день не могу найти баг. Появляется когда настраиваешь количество записей на странице. Когда их меньше 20 - все ок. Когда 20 - ошибка 500. Когда их больше - не хватает некоторых кусков html или вообще всего, когда их примерно 30 - львиная часть записей отсутствует. С чем это может быть связано? Или ты без полного кода какие-то предположения сделать не сможешь.
Аноним 04/03/16 Птн 14:13:56  675643
>>675631
Такое бывает, кстати.
Потому что соискателей много, а делать работу надо. Сделаешь хорошо - могут взять. Сделаешь не очень - откажут, поправят код, работа сделана.
Такое делают с SEO-специалистами постоянно. Требуют полный аудит сайта компании или нескольких сайтов, а потом отказывают. А аудиты корректируют и отправляют владельцам сайтов.
Аноним 04/03/16 Птн 14:17:25  675652
>>675633

Ошибка 500 это обычно ошибка веб-сервера Апача (а не PHP кода). Причины в таких случаях записаны в логе веб-сервер - найди и прочитай.

Обычно у Апача это из-за проблем в URL страницы и в htaccess.

Правда у тебя почему-то эта страница подписана phpstorm. Раз ты используешь не стандартный Апач, а что-то что идет в комплекте с phpstorm то я в нем не разбираюсь и тебе надо читать их документацию - в каикх случахя он выдает ошибки, где логи, что у них за веб-сервер и тд.
Аноним 04/03/16 Птн 14:18:48  675654
>>675633

Алсо почему ты настраиваешь число записей на странице тут, а не там где задается $recordsPerPage?
Ну и вообще, покажи потом код, там наверно будет много чего можно исправить.
Аноним 04/03/16 Птн 14:20:14  675655
>>675643

Ну у соискателя всегда есть право отказаться делать задание. Да и сомнительный подход - я бы побоялся то что кандидаты присылают, на реальный сайт ставить. Замучаешься потом баги исправлять.
Аноним 04/03/16 Птн 14:20:22  675656
>>675654
Ну так я для примера чтобы не скринить еще тот кусок где функция вызывается. Так то у меня все как на самой верхней пикче. Покажу, конечно, сейчас доделывать css буду и комментарии писать.
Аноним 04/03/16 Птн 14:20:48  675658
Объясните мне внятно про сетки. Курсю хтмлакадеми на пару с кодакадеми и на сетках какой-то ступор.
То делай псевдоэлементы с распорками, то просто задавай блокам размеры и маргины, то дисплей: тейбл.
Почему не остановиться на одном способе построения? Я запутался в этой херне, короче.

Или где внятно можно почитать.
Аноним 04/03/16 Птн 14:41:59  675686
>>675643
Так эти куски я опять даже на локалке развернуть не могу, админки нет, структура папок не та, что в опенкарте, не говоря о содержимом, там еще и куски ноды есть, пиздец, я только осваивать эту новую чудную самописную легаси цмс буду месяц.
Аноним 04/03/16 Птн 15:14:14  675728
>>675658

Сетка - это для дизайнеров, они по ней расставляют элементы, чтобы страница смотрелась аккаратно и пропорции были правильные. Верстальщика это не должно беспокоить - его должно беспокоить праильное позиционирование всех элементов. От чего зависит ширина того или иного элемента? Как она меняется при изменении размеров окна? Как он располагается относительно других? Как верстка меньяется на маленьких экранах?

В CSS есть такие способы позиционирования:

- блоки (которые идут вертикально)
- инлайн-блоки
- флоаты
- относ., абсол. и фикс. позиционирование
- display: table для случаев когда надо заставить блоки вести себя как ячейки и строки таблицы

Соответственно тебе глядя на макет надо решать где какой способ применить.

> То делай псевдоэлементы с распорками,
Бред какой-то, либо ты не так что-то понял. Распорки никто не использует с 2000 года.

> Почему не остановиться на одном способе построения?
Потому что ситуации разные. Иногда надо выстроить блоки вертикально, иногда горизонтально, иногда вырвать блок влево или вправо из потока.

Не знаю, что еще можно посоветовать почитать, посмотрри задания на cSS в ОП посте, там есть например ссылка на учебник на сайте softwaremaniacs

И конечно тебе надо больше внимания уделить изучению CSS. Описанные выше способы позиционирования надо знать наизусть, также знать все их особенности.
Аноним 04/03/16 Птн 15:15:10  675731
>>675686

> я только осваивать эту новую чудную самописную легаси цмс буду месяц.
Может это значит что ты не подходишь на эту вакансию? Если ты развернуть проект не можешь, как ты будешь его поддерживать и правки вносить?
Аноним 04/03/16 Птн 15:15:46  675732
>>675686

Ну и вообще, ты бы мог спросить инструкции по установке.
Аноним 04/03/16 Птн 15:16:37  675733
Я, кстати, давно уже проходил курс верстки от ОПа, сейчас уже подзабыл и когда верстаю что-нибудь, постоянно использую везде абсолютное позиционирование и мне стыдно.
Аноним 04/03/16 Птн 15:17:57  675736
>>674358
>>674389
>>674390
Вот, люто бампую за себя и братишку, ОП, советуй!
Аноним 04/03/16 Птн 15:49:10  675777
>>675733

Абс. поз-е используется очень редко, только для случаев вроде прибить крестик в углу попапа. В обычной верстке его использовать неудобно так как оно вырывает блок из потока и он не может расталкивать идущие за ним блоки, то есть верстка получается прибита гвоздями и не подстраивается под содержимое.

>>675736

Ежедневная практика.
Аноним 04/03/16 Птн 15:55:55  675786
>>675175

Поможет, покупай.
Аноним 04/03/16 Птн 16:03:46  675801
class PostForm {
public login;
public password;

public function __construct($post) {
$this->setLogin(isset($post['login']) ? $post['login'] : '');
$this->setPassword(isset($post['password']) ? $post['password'] : '');
}

...
}

$form = new PostForm($_POST);

С этим всё хорошо?
Аноним 04/03/16 Птн 16:37:17  675846
>>675731
зачем присылать проект, который невозможно равзернуть? почему сразу на хостинге админку не дать тогда уж?
Аноним 04/03/16 Птн 16:42:47  675851
>>675846
>зачем присылать проект который нужно фиксить, пришлите полностью рабочий и заплатите мне за то что я нихуя не сделал
Аноним 04/03/16 Птн 17:05:16  675870
>>675851
+--classes - здесь у меня классы
|
+--functions - здесь скрипты обработчиков для форм
|
+index.php - здесь у меня autoload
Я хочу в скриптах обработчиков в functions использовать классы из classes для которых autoload в index.php. Как мне сделать, чтобы классы были видны во всех папках проекта? Просто если у меня будет много обработчиков, то будет проблематично каждому подключать классы индивидуально.
Аноним 04/03/16 Птн 17:05:40  675871
>>675870
Это не сюда >>675851
Это просто вопрос.
Аноним 04/03/16 Птн 17:51:10  675906
>>675871
Вынеси автолоад в отдельный файл (bootstrap.php например).
Подключай это файл в начале обработчика.
Аноним 04/03/16 Птн 18:01:37  675921
Короче мне элементы ангуляр кода как в пхп выполнить? это обычная иде, там нет ангуляра, только пхп. убунта, вот устанавливаю ангуляр, а как проверить, что он работает? там запрос должен на сервер роутер идти.
Аноним 04/03/16 Птн 18:03:35  675923
почему умение разворачивать легаси код на локалке не прописывается в условиях и не считается отдельным, заслуживающим уважения скилом?
Аноним 04/03/16 Птн 18:16:18  675940
Не могу найти ошибку, вроде все проверил, но все равно не то заранее спасибо. http://ideone.com/vkznhK ссылка на код
Аноним 04/03/16 Птн 18:21:00  675951
>>675940
Сначала расскажи, как ты ее искал.

Просто там большими буквами на чистом английском языке написано, в чем причина и даже на какой строке ошибка, не понимаю, как это можно не увидеть.
Аноним 04/03/16 Птн 18:21:12  675953
>>675940
http://php.net/manual/ru/function.mt-rand.php
Аноним 04/03/16 Птн 18:25:51  675958
>>675953
Спасибо. Прочитав раза три понял в чем ошибка.
Аноним 04/03/16 Птн 18:28:58  675965
https://ideone.com/cyeyJt

>stdout
>1

Что значит 1? Должен быть null!
Аноним 04/03/16 Птн 18:41:42  675985
>>675965
http://php.net/manual/ru/language.operators.precedence.php
Аноним 04/03/16 Птн 18:41:51  675986
14571061118000.png (34Кб, 892x626)
Что нужно сделать в пикрилейтед задаче? Допилить шифровочные символы для всех букв алфавита?
Аноним 04/03/16 Птн 18:46:40  675997
>>675986
Цель этой задачи - закрепить твои знания. Серьёзность подхода к её решению - твой личный выбор.
Аноним 04/03/16 Птн 18:48:14  675998
>>675997
Я уточнил задачу. Она состоит в том, чтобы допилить шифровку всего алфавита?
Аноним 04/03/16 Птн 18:50:39  676002
>>675998
Нет, она состоит в том, чтобы ты немного поработал с массивом.
Аноним 04/03/16 Птн 18:51:58  676004
>>676002
>немного поработал с массивом.
Имеется в виду забить в массив остальной алфавит и его шифр или что?
Аноним 04/03/16 Птн 18:53:57  676006
14571068376820.jpg (57Кб, 1074x613)
>>675986
Аноним 04/03/16 Птн 18:55:53  676008
>>676006
Что такое "нормальный уровень"?
Ссылку на определение этого термина в студию.
Аноним 04/03/16 Птн 18:56:16  676010
>>676004
Ты меня тралиш?
Задание ты выполнил (если тебя интересует решение), но у тебя возникла мысль доработать свой код. И это хорошо, поэтому если у тебя есть желание, ты можешь пушить этот массив хоть спецсимволами. Цель этой задачи, как и всех остальных, закрепить твои знания.
Аноним 04/03/16 Птн 18:56:33  676012
>>676008
Два чаю. Вот это и создало затруднение, как читал условие.
Аноним 04/03/16 Птн 19:02:27  676026
>>676008
>>676012
уровень /б
Аноним 04/03/16 Птн 19:03:11  676028
>>675870

Должен быть отдельный скрипт, bootstrap.php который инициализирует приложение, в том числе настраивает автозагрузку.

>>675921

Ангулар это JS фреймворк вообще-то. Ты не можешь выполнить яваскрипт код в PHP (с оговорками).

>>675923

Потому что оно входит в "умение читать и понимать чужой код" и "умение настроить рабочее окружение"

>>675965
Скобки надо ставить

>>675986

Да и расшифровку

>>676008

Подумаем потом над формулировкой. Имеется в виду то, что шифруются не все буквы и часть текста видна.

Аноним 04/03/16 Птн 19:03:29  676030
>>676012
В этой задаче конечно очевидно, что ты догадался правильно. Но при реальной работе с заказчиками обязательно нужно упрямо переспрашивать, что они имели ввиду, потому что на кону деньги и репутация. Чтобы потом не оказалось, что он "не то имел ввиду".

>>676010
>Задание ты выполнил (если тебя интересует решение)
Сам понял что сказал?

>>676026
Нет, ты.
https://github.com/foobar1643/student-list Аноним 04/03/16 Птн 19:04:02  676031
>>665607
>>674055

> Установите необходимые зависимости используя composer (composer install).
> Сгенерируйте файлы автозагрузки используя composer (composer dump-autoload).
install генерирует файл автозагрузки

> Загрузите файлы приложения в корневой каталог вашего веб-сервера.
Наоборот, надо настроить чтобы корень сервера был в public

Фраза "введите часть имени, фамилии..." не помещается в поле поиска. Плохо что поле поиска исчезает при поиске - нельзя подправить содержимое.

Поиск регистрозависимый - "ива" не находит имя "Иван"

По форме - не очень удачное решение с расположением полей и лейблов, лейблы находятся между полями и непонятно к чему - верхнему или нижнему полю он относится. Для такой схемы надо добавлять отступы, чтобы рядом с лейблом было только одно поле. Или, что лучше, вынести лейблы влево.

Если таблица пуста, то только шапка выглядит довольно бессмысленно. Надо выводить либо внутри, либо вместо таблицы фразу "Список студентов пуст" (в случае поиска лучше писать "Не найдено ни одного студента")

При сортировке надо показывать что сортировка включена с помощью стрелочки или треугольника у выбранной колонки.

"Форма успешно заполнена" - странный текст, лучше "Вы успешно зарегистрированы"/"Информация обновлена".

Алсо, что за выбор между приезжим и иногородним? Это не одно и то же?

Не написано что имя должно начинаться с большой буквы.

> type = pgsql
А твой проект поддерживает другие базы данных? Если нет то этот параметр конфига лишний.

> enableFiller = false
Скрипт заполнения БД лучше сделать скриптом для командной строки. Тогда не нужна защита от запуска, также мы получаем независимость от ограничений по времени для веб-скриптов, полчаем возможность прервать скрипт, можем передавать параметры и тд. Такие вещи надо делать через командную строку. И вынеси скрипт из веб-папки тогда. Ну и контроллер тогда ему не нужен - нужный код можно написать прямо в скрипте, если он простой.

мануал в помощь http://php.net/manual/ru/features.commandline.php

https://github.com/foobar1643/student-list/blob/master/public/logout.php
Для логаута должен быть метод где-то в менеджере авторизации. И его стоит вызывать.

> names.txt
На будущее: есть мощная библиотека php faker для генерации чего угодно. В том числе русские имена там есть по моему.

> function runApp($app) {
Тайп хинт бы сюда.

> } catch(PDOException $e) {
> } catch(FatalException $e) {
Почему тут только эти 2 исключения ловятся? Как ты составил список этих исключений, по каким принципам? Что делать с исключениями других классов?

> $c["config"]->getValue('db', 'type') . ":dbname=".
> $c["config"]->getValue('db', 'name') . ";host=".
Не очень хорошо читается. Можно $c["config"] заменить на переменную, и использовать sprintf для подстаноки параметров в строку.

> https://github.com/foobar1643/student-list/blob/master/app/Controller/ControllerIndex.php#L27
> if($_GET) {
Этот иф тут лишний по моему и не несет никакой пользы

> $currentPage = $_GET['page'];
Стоит добавить intval - на всякий случай (и min/max чтобы нельзя было указать число меньше 1)

> if(trim($_GET['search']) != "") {
> $linkBuilder->searchPattern = $_GET['search'];
А почему второй раз trim не делаетяс? Почти всегда для данных из форм надо делать trim.

> get_total_students(
> getValue
Что-то нет единообразия в стиле

> https://github.com/foobar1643/student-list/blob/master/templates/index.html#L10
> if(!isset($linkBuilder->searchPattern)):
Разве в обхекте может отсутсвовать поле? Или это такая закамуфлированная проверка на null?

https://github.com/foobar1643/student-list/blob/master/templates/index.html#L33
По идее ссылки надо экранировать через htmlspecialchars, в частности символ & в них

> if($_POST) {
Проверять лучше проверкой REQUEST_METHOD в _SERVER

Вот тут у тебя слишком большая простыня: https://github.com/foobar1643/student-list/blob/master/app/Controller/ControllerForm.php

Много вложенных ифов, очень трудно понять логику. Надо бы как-то это упростить, может что-то вынести в отдельные методы. Важно уметь разбивать код на отдельные части, а не писать стеной.

> if(!$tokenHelper->checkCsrfToken($_POST['csrf_field'], $_COOKIE['token']))
Эти элементы могут отсутствовать, будет ошибка обращения к несуществующему индексу

https://github.com/foobar1643/student-list/blob/master/app/Controller/ControllerIndex.php#L41
> $error = true;
Эта переменная создана в блоке else, значит использовать ее можно только в нем - снаружи она может оказаться не определена.

> https://github.com/foobar1643/student-list/blob/master/app/Helper/FormHelper.php#L42
> public function getAllowedFields() {
> return ['id',
id разрешено редактировать?

Обновление студента безопаснее делать по-другому. Надо загрузить студента из БД, а потом обновлять его из POST если там присутсвует поле. Тогда в случае если из формы уберут часть полей, ничего не сломается. У тебя в этом случае при редактирвоании отсутствующие поля обнулятся.

И ведь ты все равно потом в конце загружаешь этот студента. Надо это делать в начале. Не знаю, упомянуто ли это в моем уроке про формы, если упомянуто, то перечитай его.

> $errors = $formHelper->validateStudent($student);
> if($dataGateway->checkEmail($student->email, $student->id) != 0) {
Непонятно почему проверка емайла не входит в функцию валидации

> !isset($error)) {
Что это? переменная может существовать, а может и не существовать?

Также, я не понимаю логику работы с куками auth и token. Работать с ними лучше не напрямую, усложняя код, а вынеся в отдельные методы с понятными именами. Например для csrf можно сделать один класс, для авторизационной куки - другой. Какие в них должны быть методы, подумай сам. Также, подумай над таким вопросом: допустим у тебя будет еще одна таблица, модель и форма ее редактирования. Сколько кода тебе придется скопипастить во второй контроллер? Весь код работы с куками придется многократно дублирвоать - это признак что что-то неудачно спроектировано.

https://github.com/foobar1643/student-list/blob/master/app/Helper/PaginationHelper.php#L23
> for($i = 1; $i < $page; $i++) {
> $offset += $this->recordsPerPage;
Умножение не годится?

https://github.com/foobar1643/student-list/blob/master/app/Helper/LinkHelper.php
Название плохое. Можно подумать это хелпер для любых ссылок, на самом деле только для ссылок на страницу с таблицей.

> в формате name@site.com
На будущее: для примеров есть специальный домен example.com (и его русская версия испытание.рф по моему)

> [А-ЯЁA-Z]{1}
А зачем {1}?

> Год рождения должен быть не меньше 1900 и не больше 2000.
> не больше 2000.
Ой ли? Менять ведь скоро придется.

> [1][9]
Зачем квадратные скобки? Может тебе задачки на регулярки вспомнить стоит?

https://github.com/foobar1643/student-list/blob/master/app/Model/Student.php
Константы принято ставить в самом начале. Порядок такой: Константы, публичные поля, остальные поля, конструктор, магические методы, публичные методы, остальные.

https://github.com/foobar1643/student-list/blob/master/app/Exception/ExceptionHandler.php
Это не исключение, наверно лучше в другую папку поместить.

https://github.com/foobar1643/student-list/blob/master/app/Exception/FatalException.php
Хотелось бы комментарий чем исключение этого типа отличается от других

> if($names && $surnames) {
> while(($line = fgets($names)) !== false) array_push($names_array["names"], trim($line));
Попробуй сделать это же через file(), array_map(), array_filter() и trim()

Также, вместо функции readNames читающей 2 файла лучше было сделать читающую файл с указанными именем.

.... продолжение ниже ...
https://github.com/foobar1643/student-list Аноним 04/03/16 Птн 19:04:45  676032


.....

> $data["names"][mt_rand(0, count($data["names"])-1)];
Стоило сделать метод выбирающий 1 случайное значение массива

https://github.com/foobar1643/student-list/blob/master/templates/form.html#L21
Не надо в шаблоне лезть в куки, дожна быть переменная $isEdit

> value="<?php if($student->name): ?><?= htmlspecialchars($student->name); ?><?php endif; ?>"
Не нужен if

> if($student->gender == 'male'
Лучше бы константой

> Exception message: <?= $e->getMessage() ?></center>
Лучше через __toString() выводить - деталей больше

И что за тег center? Он устарел много лет назад. Советую пройти уроки по HTML/CSS, ну или если ты их прошел, найти актуальный список тегов. У меня только на английском есть:

https://en.wikipedia.org/wiki/HTML_element
https://www.w3.org/TR/html-markup/elements.html
https://developer.mozilla.org/en-US/docs/Web/HTML/Element

Ну и давай уже доделывать эту задачу и переходить к фреймворкам, изучать twig и что там еще есть.
Аноним 04/03/16 Птн 19:05:49  676036
Подскажите, ошибка в коде? Или я пошел по неправильному пути? Если да, подтолкните в нужное русло http://ideone.com/3yhicB
Аноним 04/03/16 Птн 19:06:01  676037
>>676030
>В этой задаче конечно очевидно, что ты догадался правильно. Но при реальной работе с заказчиками обязательно нужно упрямо переспрашивать, что они имели ввиду, потому что на кону деньги и репутация. Чтобы потом не оказалось, что он "не то имел ввиду".
Да я всегда привык переспрашивать, пока на 100% не пойму что от меня хотят. Часто это многих бесит, кто-то считает тупым, но для меня лучше переспросить и знать что от меня нужно а не угадывать.
Аноним 04/03/16 Птн 19:06:31  676038
>>676030
>Сам понял что сказал?

Ну я жопой читал немношк
Аноним 04/03/16 Птн 19:12:28  676051
>>676036
>подтолкните в нужное русло
Установи нормальную иде с подсветкой и автодополнением.
Набирай в ней и копируй на идеоне, когда хочешь выложить код.

Скобка там пропущена, легко не заметить.
unexpected end of file всегда говорит, что где-то не закрыт блок.
Аноним 04/03/16 Птн 19:12:44  676052
>>676028
Т.е. мне нужно подключать отдельный модуль ангуляра и прописывать пути, да?
Аноним 04/03/16 Птн 19:15:41  676060
>>676052
Нет, тебе нужно либо выучить ангуляр, либо не брать задания с ним.
Аноним 04/03/16 Птн 19:28:49  676114
>>676036
Если бы разобрался с предыдущей задачей на Айфон, как я тебе подсказывал, то сейчас не было бы этой проблемы.
Нам же тут делать нечего больше, мы поэтому подсказываем, ты так думаешь? Как раз предостерегал от долгой возни с задачей на Айпад, всё это проходили сто раз.
Как раз именно устранение прошлого недочёта тебе сейчас бы помогло.
Аноним 04/03/16 Птн 19:30:23  676126
>>676060
ну че впадлу сказать что ли? у меня уже залит ангуляр на убунту, у меня этот сраный ангуляр работатет netbeans html, ну нету нету его сраного модуля в нетбинс php я что сдела м уеба?
Аноним 04/03/16 Птн 19:33:04  676145
>>676060
какая же ты тупая высокомерная мразь это просто пиздец. прям каждый раз противно заходить в этот тред и что-то спрашивать. убейся плз
Аноним 04/03/16 Птн 19:48:14  676205
>>676036
1. $compulsoryPayment = ( $credit х $percent ) + $service; если стоит вне цикла, то к чему приводит, как ты полагаешь? В цикле должно всё обновляться, а этого не происходит.
2. $credit = $credit - $monthly; - а к чему тогда вообще введена дополнительная переменная $compulsoryPayment, если она нигде не принимает дальше участия?
Аноним 04/03/16 Птн 19:57:34  676220
>>676114
Дак я и так переделал с айфоном http://ideone.com/ZMFABV
Аноним 04/03/16 Птн 20:00:14  676226
>>676126

Перечитай свой вопрос:

> Короче мне элементы ангуляр кода как в пхп выполнить? это обычная иде,
Ангулар код выполняется в браузере, а не в ИДЕ. И перед тем как браться за него надо очень хорошо изучить JS, DOM. Судя по твоим вопросам ты пока не очень понял что это вообще такое.
Ответы 28 февр Аноним 04/03/16 Птн 20:00:49  676227
>>669935

У тебя в регулярке с жы/шы за счет точек со звездочкой захватывается вся остальная часть строки и больше таких ошибок не находится. Надо ограничить число захватываемых символов.

> [!,;:?.]\\S
Надо допилить чтобы не реагировало на многоточиеи и многовопросие.

> {1,}
Это то же самое что плюс

> (а|но){1,}
Зачем там разрешено повторение? Искать слова вроде "нононо" или "аноано"?

> здел(ал|аю|ан)
А "зделаешь" найдет?

> var_dump($match);
Разберись в формате массива результатов и сделай нормальный вывод циклом (читай мануал по функции). Например "зделал" почему-то 2 раза вывелось.

>>670144

Нету точки с запятой в строке перед break

>>670215

Погугли. Это больше для фронтендщиков.
Аноним 04/03/16 Птн 20:01:00  676228
>>676220
Так-то нормально, конечно.
Тогда посмотри на подсказки выше - у тебя там просто самих по себе ошибок много в задаче про Айпад (просто напутал ты там в самом коде).
Ответы 28 февр Аноним 04/03/16 Птн 20:01:10  676229
>>670226

> $creditSum x $percent / 100 + $comission
Это аж 3 раза скопировано. Попробуй убрать повторы.

Также, считает неправильно, если поставить суму в 1000 р - должно быть 2030 р во втором банке, а у тебя 2940: http://ideone.com/LRhmsn

>>670686

Я бы только вместо одного пробела разрешил любое число, а так верно.

>>670728

Верные - код праивльный, число цифр тоже.

>>670746

> (?:-?\d){5} # и еще пять цифр с опциональными дефисами. кiнец.
А почему пробелы не разрешены? Вроде "8 900 123 45 67"

>>670937

> пройти курсы кодакадеми js, jqeury
Там по моему js очень ознакомительный, надо DOM хорошо изучить прежде чем браться за jquery. У нас есть задачки, но быстро их не пройти.

> далее уже конкретно изучать бутстрап, чтоб иметь общее представление
перед ним надо хорошо изучить HTML/CSS

> оттуда уже комплексно углубляться в less
Что там углубляться-то? Это всего лишь надстройка над CSS. И странная идея изучать LESS до CSS.И jquery до js.
Ответы 28-29 февр Аноним 04/03/16 Птн 20:01:31  676230
>>671037

> Хочешь меньше думать? Готовься выложить больше процессорного времени и памяти.
1) разница не всегда значительна 2) взамен за экономию проц. времени придется расплачиваться большей тратой человеческого времени. Что более ограниченный ресурс?

> не давай PHP спуститься на уровень ниже
Он и не дает. Там нет ни указателей ни работы с памятью напрямую. Это просто архитектурные недостатки языка, отсутсвие прозрачной поддержки кодировок, они являются источником сложностей для начинающих и багов для неначинающих. Разработчики PHP сэкономили свое время - мы тратим свое.

>>671133

Транзакции не нужны? Ты это серьезно?

> слоупочными table locks
Ты ничего не путаешь? Это в nosql продуктах есть collection lock, а в innodb используется MVCC.

>>671135

Можно генерацию 2 первых строк сделать циклом из 2 шагов, чтобы не копипастить код.

>>671151

В мануал с этим вопросом плиз
Ответы 28-29 февр Аноним 04/03/16 Птн 20:01:53  676232
>>671177

Да, ссылок лучше я не нашел. try/catch там используется может чтобы просто показать что пдо выбрасывает исключения? Или автор плохо знает эту тему? В любом случае так писать неправильно, как там. Попробуй разобраться в исключениях и сам это поймешь.

>>671204

Можно делать верстку и PHP параллельно. Да и как не важно? Как ты будешь HTML писать?

>>671223

> public function addChild(TreeElement $child){
> if($this->getRootElement()->findDescendant($child->getNodeName())){
Не годится, лучше искать не по имени а по совпадению с самим объектом. Объект сам по себе уникален и не требуются имена чтобы найти такой же.

> public function addChild(TreeElement $child){
> if($this->getRootElement()->findDescendant($child->getNodeName())){
А что если он в другом дереве? Надо проверять родителя элемента.

Алсо не надо возвращать false, какой смысл если ты ничего другого все равно не возвращаешь? Лучше исключение выбросить либо напритмер сделать правило что в этом случае элемент отдельяется от старого родителя.

> public function setChildNodes($newNodes){
Смысл функции непонятен

> setParentNode($node){
Тайп хинт бы сюда

> if($node->isAncestor($this)){
> return true;
return $node->isAncestor(...);

> if($this->parentNode){
> $depth++;
> $depth+= $this->parentNode->getDepth();
if (...) {
return $this->parentNode->getDepth() + 1;
}

> foreach ($children as $key => $child) {
> $element = array_splice($children, $key, 1);
тут указывается номер элемента, а не ключ. У тебя при удалении появляются дырки в индексах и ключ не равен номеру.
Ответы 29 февр Аноним 04/03/16 Птн 20:02:18  676235
>>671341

> Или все же нужно именно с пеленок себя приучать к такому стилю?
Нужно сразу приучать. Чтобы не писать стену текста, а разделять код на отдельные действия. Сам полдмай, что лучше читается: слово вроде makeLetterUppercase() или длинное сложное выражение?

Переменные названы неудачно:

text -> sentences
value -> sentence

Из-за таких названий код хуже читается.

>>671354

Если это задача про верстку поста форума, то точно не оно, так как инлайн-блок не растянется на 100% по ширине. Там в замечаниях же написан совет - использовать клеарфикс.

>>671402

Не факт. Но работать с utf-8 можно, просто это не делается автоматически.

>>672465

> for ($q = 0; $q < $height; $q++){
Этот цикл тоже можно заменить array_fill

> M_PI/180;
Есть готовые функции deg2rad и наоборот.

Также, цикл выглядит странно:

> foreach ($screen as $screen){
Ты по моему переменную перезаписываешь собой.

> implode(' ', $screen);
У тебя строки получаются очень длинные и переносятся на новую строку.

Также, так как буквы не квадратные, надо x или y домножать на коэффициент чтобы эллипс превратить в круг

>>672519

Изучи яву
Изучи коллекции в яве
Изучи веб-сервер в яве
Изучи средства работы с БД
Изучи шаблонизатор
Изучи какой-нибудь веб-фреймворк (например play)
Аноним 04/03/16 Птн 20:13:47  676252
>>676205
>>676114
>>676051
Всем спасибо, разобрался http://ideone.com/w0hHSz
Аноним 04/03/16 Птн 20:17:53  676258
Что делать, если задача ну вообще никак не идет? Числа прописью. Пропустить ее или сидеть над ней и думать? Уже дня 4 сижу.
Аноним 04/03/16 Птн 20:27:06  676269
>>676258
Вбрасывай код или пиши на чем остановился.
Аноним 04/03/16 Птн 20:38:09  676290
14571130898370.jpg (32Кб, 323x585)
ОП дает задачи типа "Найти кратчайший маршрут от одной станции метро до другой" или просит написать "Сапер", но ни разу не заикается об NP-полноте. Это так предполагается?
Аноним 04/03/16 Птн 20:41:45  676297
>>676290
Это тред PHP, а не алгоритмов.
Аноним 04/03/16 Птн 20:42:10  676298
Решил написать о своем сегодняшнем совокуплении с фреймворком yii. Не знаю зачем, но вы тут такую ахинею пишете, что хуже не будет.

Так вот, задача была такова. Некоторые страницы запрещены для просмотра незарегистрированными пользователями. Для этих целей в yii есть такая штука как "фильтр" accessControl.
http://www.yiiframework.com/doc/guide/1.1/ru/topics.auth#sec-5
Если коротко, то можно выставить при выполнении каждого действия (action) определенную проверку (фильтр доступа), который в качестве конфига берет массив из метода accessRules.

При попытке незарегистрированного пользователя запросить недозволенный url его перекидывает на страницу логина, это хорошо. Проблема в том, что нужно же как-то сообщить пользователю, что произошло, а не молча редиректить.
Хочется видеть сообщение вида "Вы не имеете доступа к странице $url. Требуется авторизация".
В yii такого (вроде) не предусмотрено.

Что у нас есть из инструментов? Есть HTTP_REFERER, и есть такая штука как Yii::app()->user->returnUrl с довольно странной реализацией.
Если посмотреть исходники, то окажется, что этот метод возвращает сохраненную в сессию переменную, либо (если сессия умерла) базовый url, тупо адрес главной страницы.
http://www.yiiframework.com/doc/api/1.1/CWebUser#getReturnUrl-detail
Документация у yii мутная и бессвязная, некоторые места вообще вводят в заблуждение:
http://www.yiiframework.com/doc/guide/1.1/ru/topics.auth#sec-6
>Если браузер был перенаправлен на страницу входа и вход удачный, вам может понадобиться перенаправить пользователя к той странице, на которой неудачно прошла авторизация. Как же узнать URL той страницы? Мы можем получить эту информацию из свойства returnUrl
Неправда. Как видно из исходного кода, returnUrl выгребает данные из сессии, а кладутся данные в сессию при редиректе. Значит если после того как юзера перекинет на страницу авторизации он вручную походит по другим страницам, а потом вернется назад на страницу логина, то returnUrl по-прежнему будет хранить последний адрес запрещенной страницы.
Но не адрес страницы, с которой пришел пользователь.

Короче, если я напишу в шаблоне страницы логина что-то вроде
if (isset(Yii::app()->user->returnUrl)) { вывести флеш-сообщение с объяснениями причины редиректа }
это не будет работать. returnUrl всегда установлен, как минимум он указывает на главную страницу. Ну и вообще эта фишка задумывалась именно для того чтобы после успешного логина отредиректить пользователя обратно, а не для того чтобы выводить сообщение.

Так как getReturnUrl возвращает по-дефолту адрес главной страницы, можем взять более низкоуровневую вещь, то есть проверить прямо в сессии, есть ли там такая переменная.
Yii::app()->user->getState('__returnUrl'). Если ее там нет, то пользователь сам пришел на страницу логина, и не нужно ему выводить всякие ворнинги.
Проблема в том, что если пользователь сначала запросит запрещенную страницу, его перекинет на логин, он с него уйдет и походит по другим страницам, а потом вернется на страницу логина, ему по-прежнему будет показано сообщение о том, что он когда-то пытался получить доступ к некоей странице.

В общем, сообщение должно быть показано только при редиректе на страницу логина. Если пользователь зашел на нее самостоятельно, никаких сообщений быть не должно.
Решил этот вопрос костылем с реферером. То есть если реферер == returnUrl, тогда показать ахтунг, иначе не показывать.

Грустно как-то, вроде стараюсь писать хороший код, изучаю всякие исходники, а все равно говно какое-то получается. То ли у меня не хватает опыта, то ли yii кривой.
Может выучить симфони, говорят там все там хорошо сделано, что просто нельзя писать плохой код. Правда освоить его непросто, черт знает получится ли, если у меня проблемы даже с yii.

>>676290
Тут все самоучки, в наших деревнях таких страшных слов не слыхивали.
Ну и оп пытается подтолкнуть к тому, чтобы люди учились самостоятельно думать, а не заучивать всякие готовые алгоритмы.
Аноним 04/03/16 Птн 21:04:46  676330
>>676269
>>673827
Ну вот. Я не знаю, что делать дальше.
Аноним 04/03/16 Птн 21:07:04  676336
>>676330
Блин.
https://ideone.com/UMDGcw
Подсказочки из ОП-поста какие-то ироничные.
Аноним 04/03/16 Птн 21:30:49  676377
>>676032
Спасибо за замечания, попытаюсь исправить в ближайшие пару дней. По поводу фреймворков - у меня есть почти готовый файлообменник на слиме и твиге, но работа над ним продвигается медленнее чем я планировал.
Аноним 04/03/16 Птн 21:33:10  676381
>>676377
Держи нас в курсе.
Аноним 04/03/16 Птн 21:33:14  676382
>>676330
Теперь пиши функцию, которая будет склонять тысячи. Принцип такой же.
Можно было разбить регулярками число на порядки (трех порядков достаточно) и прогнать их через функцию, которая пишет прописью это трехзначное число для каждого порядка, ну и потом через функции, склоняющие миллионы, тысячи и рубли.
Но у тебя интересное решение и оно получится гораздо компактнее, просто подумай немного.
Аноним 04/03/16 Птн 21:38:14  676388
>>676252
>calculatePayments(39999, 1.02, 0, 5000, 0) + 7777;
Лучше 7777 прибавить к сумме кредита. ОП объяснял это тем, что ведь у Анона нет изначально этих 7777, поэтому он и на них вынужден оформить кредит. В итоге там всё равно самые выгодные условия будут, потому что нет комиссии каждый месяц.
Аноним 04/03/16 Птн 21:42:04  676395
>>676382
И не забывай, что числа 11 - 20 нельзя склонять по последней цифре, так что твою функцию рублей нужно доработать. Это касается и тысяч и миллионов.
Аноним 04/03/16 Птн 21:43:25  676399
>>676395
10-20
фикс
Аноним 04/03/16 Птн 21:44:07  676402
Застрял на задаче про айпад, нашел тред, а тут она.
Решал по-другому, укажите на ошибку, анончики :3 проверил, переменные в цикле крутятся, а вот лавеха в банке не мутится
http://ideone.com/P4vMiG
Аноним 04/03/16 Птн 21:48:37  676411
>>676402
В этом твоём варианте вот что неверно: когда $creditBalance у тебя становится меньше $monthlyPayment, то у тебя следует вот это выражение: $creditBalance = ( $creditBalance х $percent ) + $servicePayment - $monthlyPayment;. И в какой-то момент это уходит в минус, от чего дальше всё идёт неверно.
Подсказка: попробуй ввести отдельную переменную для подсчёта $creditBalance = ( $creditBalance х $percent ) + $servicePayment, ведь именно когда этот момент становится меньше $monthlyPayment, нам и надо просто его выплатить и приплюсовать к $paymentTotal.
Аноним 04/03/16 Птн 21:56:22  676435
>>676388
ok
Аноним 04/03/16 Птн 21:58:08  676441
>>676399
>>676382
>>676395
Спасибо большое, буду думать.
Аноним 04/03/16 Птн 22:10:34  676473
>>676411
Хм
Вроде $creditBalance * $percent + $commission < $monthlyPayment выполняется, когда $creditBalance < 0, и значения поглядел, без минусов. Покурю и подумаю про новую переменную с утра сижу думаю, как решить эту задачку, лол Спасибо, анон.
Аноним 04/03/16 Птн 22:14:24  676479
>>676473
Нет-нет, у тебя же в теле цикла безо всяких условий стоит $creditBalance = $creditBalance * $percent + $commission - $monthlyPayment;
Это значит, что когда $creditBalance становится, например, 260 рублей, он умножается на проценты, к нему прибавляется комиссия, а потом отнимается 5000 месячной выплаты.
Тут всё уходит в минус.
А дальше срабатывает это условие: if ($creditBalance <= 0) {
break;
}
Аноним 04/03/16 Птн 22:24:55  676499
14571194955390.jpg (37Кб, 640x480)
>>676479
Добра тебе :3
Аноним 04/03/16 Птн 22:52:58  676550
Зачем нужен "use"?
Аноним 04/03/16 Птн 22:58:23  676561
>>676550
Позволяет использовать определенный неймспейс (или несколько неймспейсов).
Читал урок ОПа про автозагрузку и неймспейсы? Если нет, почитай https://github.com/codedokode/pasta/blob/master/php/autoload.md
Аноним 04/03/16 Птн 23:48:44  676648
Как искать на гитхабе правильно? Хочу найти там реализацию админ панели для сайта, через которую можно например создавать новости и добавлять на главную страницу на них гиперссылки, как это в новостных сайтах реализуется.
Аноним 05/03/16 Суб 00:48:44  676693
Этот вопрос >>675801 заключается в том, что у меня стоит такая проблема:

Перед тем как значения отправятся в класс формы, значения $_POST пока не существуют, и, соответственно, в контроллере не имеет смысла пока что создавать этот класс. Очевидным решением напрашивается, то что нужно делать проверку перед этим, но этим у меня занимается вспомогательный метод getPost()

{
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
foreach ($_POST as $value) {
$value = is_scalar($value) ? $value : '';
$value = trim($value);
}
}

return $_POST;
}


Стоит ли выносить проверку в класс контроллера?
Аноним 05/03/16 Суб 02:26:51  676800
Хочу обратиться к определенному значению массива в foreach и перезаписать его значением внешнего массива:

$arr = [1 => 1, 2 => 2];
$extra=[1 => "a", 2 => "b"];
foreach($arr as $key => &$value){
\t $arr[1] = $extra[2];
}
Но мой велосипед не работает. Что я делаю не так?
Аноним 05/03/16 Суб 02:55:44  676820
>>676800
>к определенному значению массива
Как узнать какое определение значения массива?
Аноним 05/03/16 Суб 07:14:10  676907
>>676800
$arr = [1 => 1, 2 => 2];
$extra=[1 => "a", 2 => "b"];
foreach($arr as $key => &$value){
$arr[1] = $extra[2];
}
var_dump($arr);

array(2) {
[1]=>
string(1) "b"
[2]=>
&int(2)
}
Ну хуй знает.
Я у мамы калькулятор Аноним 05/03/16 Суб 08:56:16  676924
Посмотрите как вам такой калькулятор

http://ideone.com/ERuDLR
Аноним 05/03/16 Суб 13:37:22  677058
что не так ??
http://ideone.com/hhWMn7
Аноним 05/03/16 Суб 14:14:06  677097
>>677058
$letter2 = mb_substr($a, - $i, -1, 1);
неправильно, попробуй заменить на
$letter2 = mb_substr($a, -($i+1), 1);
Аноним 05/03/16 Суб 14:21:04  677102
>>677097
Попробуй анус свой заменить, пес. Мы тут помогаем, а не решаем за других.
Аноним 05/03/16 Суб 14:25:05  677105
>>677097
ну эт помогло пасибки
Аноним 05/03/16 Суб 14:26:40  677107
>>677097
>>677102
только почему в скобках ? и в каких случаях мне их использовать ?
Аноним 05/03/16 Суб 14:28:03  677109
>>677097
Ты видишь, пидр, што ты наделал?7
>>677105 >>677107
>только почему в скобках ? и в каких случаях мне их использовать ?
Аноним 05/03/16 Суб 14:28:59  677110
>>677109
бля лучше помогите вместо того что бы ругаться
Аноним 05/03/16 Суб 14:29:38  677111
>>676550
>>677110
он все правильно говорит, я неправильно сделал что просто ответ написал(
Аноним 05/03/16 Суб 14:31:08  677113
суууук мне кто-нибудь объяснит

>только почему в скобках ? и в каких случаях мне их использовать ?
Аноним 05/03/16 Суб 14:31:51  677115
>>677113
ой знак вопроса забыл,вот он - ?
Аноним 05/03/16 Суб 14:37:42  677126
>>677110
>>677113
Разобрался ли ты с функцией mb_substr?
Почитай у ОПа, какие ей нужны символы для правильной работы, что нам дают отрицательная $i в этой функции или положительная.
Тебе нужно брать по символу с начала строки и с конца.
У тебя это
>$letter1 = mb_substr($a, $i, 1)
>$letter2 = mb_substr($a, -($i+1), 1)
В последнем тебе надо добиться отрицательного значения у $i. Представь, что ты к -1 прибавляешь 1 - что получается? 0 получается.
А теперь вспомни, что нам дают скобки?
Подсказка: сначала производятся действия в скобках, а затем другие в выражении.
Чтобы избежать всех этих скобок, достаточно в начале цикла поставить не $i = 0, а $i равно кое-чему другому, догадайся. Тогда не придётся из нуля делать -1 для первого символа с конца фразы, достаточно будет поставить просто минус перед $i.
Аноним 05/03/16 Суб 14:40:52  677130
>>677126
окей все было на много проще чем я думал
спасибо
Аноним 05/03/16 Суб 14:42:20  677133
>>677126
но если заменить $i на "$i равно кое-чему другому" то первую букву будет брать не с того места которое нам надо
Аноним 05/03/16 Суб 14:43:01  677134
>>677133
первую букву -> $letter1
Аноним 05/03/16 Суб 14:43:32  677136
>>677133
Попробуй сделать из этого изменённого $i 0.
Чтобы брало с первого символа начала фразы.
Аноним 05/03/16 Суб 14:43:52  677138
>>677136
Сделать это в самой функции, разумеется.
Аноним 05/03/16 Суб 14:48:30  677144
>>677136
>>677138
тогда это почти ничем не будет отличатся от
>$letter1 = mb_substr($a, $i, 1)
>$letter2 = mb_substr($a, -($i+1), 1)
Аноним 05/03/16 Суб 14:49:55  677145
>>677144
Как ты сделал, покажи?
Всё там намного внятнее должно получиться.
Аноним 05/03/16 Суб 14:51:41  677150
>>677145
http://ideone.com/eGEybu
Аноним 05/03/16 Суб 14:55:52  677159
>>677150
Так тут то же самое, только другое сокращено.
Я же советовал немного упростить ориентиры для отрывания символов с начала и конца строки, избавиться от этих скобок и -($q+1).
Аноним 05/03/16 Суб 14:59:48  677167
>>677159
Ну да, в предложенном тобою варианте будет немного понятнее, но смысл останется прежним
Аноним 05/03/16 Суб 15:02:21  677171
>>677167
Важно делать всё минималистично.
Чего можно избежать - нужно избежать.
Аноним 05/03/16 Суб 15:04:59  677174
>>677167
Так как ты сделал с той моей подсказкой?
Мне интересно, правильно ли ты меня понял, понял ли принцип работы цикла и функции mb_substr.
Аноним 05/03/16 Суб 15:06:50  677176
>>677174
Я не тот анон))
Аноним 05/03/16 Суб 15:10:40  677182
>>677174
наверно эт мне ?
если да то вроде понял
Аноним 05/03/16 Суб 15:11:51  677185
>>677182
Как. Ты. Сделал.
Я слишком многого прошу, что ли?
Аноним 05/03/16 Суб 15:14:27  677191
>>677185
да я так все и оставил
http://ideone.com/hhWMn7
Аноним 05/03/16 Суб 15:14:43  677193
>>677185
просто теперь он работает и я доволен
Аноним 05/03/16 Суб 15:16:54  677200
>>677193
Я не уверен чому-то, что ты меня понял.
Ну да ладно, отстаю.
Аноним 05/03/16 Суб 15:28:01  677225
>>666619
Я один раз синглтон из документации переписал и в ответ на тестовое задание отправил.
Мне сказали что он не правильный и там были переопределен гетер и сеттер, так они подумали что я не знаю про магические методы.
Калькулятор-кун! Аноним 05/03/16 Суб 15:45:00  677257
http://archive-ipq-co.narod.ru/l1/finals.html

Решение Калькулятор-кун! работает не совсем корректно
http://ideone.com/VeXs82
Аноним 05/03/16 Суб 16:14:31  677317
>>666666
switch, if Аноним 05/03/16 Суб 17:28:41  677457
Анончики, а есть смысл заменять несколько if на switch? Или кроме написания это ничем не отличается?
Аноним 05/03/16 Суб 18:34:57  677549
Как бороться с ленью? Иногда одолевает чувство что вообще ничего не хочется и хочется повеситься.
Аноним 05/03/16 Суб 18:39:01  677555
>>677549
Никак.
Оставайся в жопе.
Аноним 05/03/16 Суб 19:16:20  677574
>>677549
Спать не менее 8 часов в сутки.
Аноним 05/03/16 Суб 19:56:19  677607
14571969792010.png (127Кб, 1377x973)
ахаха а бутстрап изобрел
Аноним 05/03/16 Суб 20:09:51  677621
>>677607
А зачем?
Аноним 05/03/16 Суб 20:25:08  677632
14571987082290.jpg (119Кб, 834x924)
>>677607
Аноним 05/03/16 Суб 20:51:59  677658
>>677549
https://www.youtube.com/watch?v=mbtVeca7jss
Аноним 05/03/16 Суб 20:59:23  677665
>>677658
Забавно.
Жаль, проект не взлетел, похоже.
Аноним 05/03/16 Суб 21:38:35  677695
>>677665
Ну они выпустили курс разработки под андроид, а потом что-то затухло всё. Может еще что-то выкатят.
Аноним 05/03/16 Суб 22:13:23  677719
Сколько будет стоить написать вот такое: http://blankionline.ru/servisy/2760.html ?
Аноним 05/03/16 Суб 22:17:37  677721
Анончики, объясните кто-нибудь, пожалуйста, что значит %d d строке "echo declense(4, '%d кот', '%d кота', 'аж %d котов', 'ни одного кота')@". И как вообще это работает?
Аноним 05/03/16 Суб 22:21:07  677723
>>677719
А зачем писать если уже за тебя написали?
Просто спизди это
Аноним 05/03/16 Суб 22:25:33  677727
>>677721
Откуда это?
Это напоминает спецификаторы printf
https://ru.wikipedia.org/wiki/Printf
Аноним 05/03/16 Суб 22:27:43  677730
14572060636920.jpg (176Кб, 1014x1044)
Парни, я прошел курс PHP на Codecademy.
Я теперь Джуниор?
Аноним 05/03/16 Суб 22:29:49  677732
>>677730
Да, можешь устраиваться на работу.
Аноним 05/03/16 Суб 22:29:58  677733
14572061990600.png (130Кб, 1919x1041)
Посоны, что с моим пхпстормом?
Аноним 05/03/16 Суб 22:30:01  677734
>>677727
ОП написал
Аноним 05/03/16 Суб 22:30:03  677735
>>677730
Нет. Ты теперь один из >>673314
Аноним 05/03/16 Суб 22:34:02  677738
>>677734
Если отсюда >>672691 то да - это спецификаторы по аналогии printf.
%d - заменяется на целое число.
Аноним 05/03/16 Суб 22:34:02  677739
>>673314
Что это за бред в последнем столбце? Если это вакансии делить на резюме, то это какая-то хуйня.
Аноним 05/03/16 Суб 22:36:21  677741
>>677732
>>677735
А если серьезно? Где та планка, что вот, ты Джуниор?
Аноним 05/03/16 Суб 22:38:23  677744
>>677741
когда джуном устроишься на работу тогда им и станешь
Аноним 05/03/16 Суб 22:38:28  677745
>>677741
Когда ты станешь в себе уверен. Некоторые и без знаний но с высокими амбициями ПРОСТО идут и устраиваются и по ходу дела учатся.
Аноним 05/03/16 Суб 22:46:43  677754
>>677721

Это плейсхолдер куда подставляется цифра. %d выбран так как он уже используется в функции sprintf.
Аноним 05/03/16 Суб 22:57:38  677761
>>677723
Нет, я это написал, и хочу узнать, сколько такое может стоить.
Аноним 05/03/16 Суб 23:05:59  677768
Есть у кого-нибудь архивчик тредисов? Я бы почитал.
Аноним 05/03/16 Суб 23:08:53  677773
>>677768
Что ты там читать собрался, поехавший? Вопросы про решение задачи на кредит?
Аноним 05/03/16 Суб 23:09:54  677774
>>677773
Ты токсичный (
Аноним 05/03/16 Суб 23:12:49  677775
>>677774
Это отчего же у тебя сложилось такое мнение обо мне?
Аноним 05/03/16 Суб 23:17:59  677781
>>677761
Теперь не сколько, потому что это можно спиздить у тебя.
Тем более это мерзкий вордпрес.
Аноним 05/03/16 Суб 23:25:33  677785
>>677768

Порылся по сусекам:

http://www.mediafire.com/download/5o7mmd25bvn2o9d/%D0%B0%D1%80%D1%85%D0%B8%D0%B2-%D1%82%D1%80%D0%B5%D0%B4%D0%BE%D0%B2-%D1%81-%D0%BC%D0%B0%D1%80%D1%82%D0%B0-2015.zip

http://www.mediafire.com/download/kgzl1f9366gc6ed/threads-archive-11..20.zip

http://www.mediafire.com/download/gza5360wdzqd743/threads-archive-pr-1..17.zip

Не помню что именно в них. Тот, котрый 11..20 - это совсем старые треды из /b

Аноним 05/03/16 Суб 23:29:12  677789
>>677781
Ты можешь сказать, сколько мне запросить за эту работу? Такое украсть не очень то и просто.
Аноним 05/03/16 Суб 23:39:03  677792
>>677789
Яваскрипт-тред вообще-то где-то там, снаружи.
Код лапшевидный, суматошный, уровня ньюфага. Дизайн хуевый. И проблема в том, что его сердце ты спиздил. http://blankionline.ru/wp-content/themes/Impreza/libs/propis/sum.js

Рублей 200-300 твоя "работа" стоит.
Аноним 06/03/16 Вск 00:04:46  677817
>>677792
Теперь понятно, а в чём сама суматошность кода? Я с яваскрипт если честно не очень, больше по ПХП.
Аноним 06/03/16 Вск 00:14:49  677823
>>677817
У меня есть подозрение, что основная проблема, это не использование each (сейчас только вспомнил про такую функцию в jQuery), используя её, можно значительно сократить код.
Аноним 06/03/16 Вск 00:19:11  677825
>>677817
Хреновые названия классов и переменных.
Теги option, которые красиво сверстать труднее, чем кастомные выбиралки на блоках.
Утонувшие отступы в коде.
Цепочки if, когда есть switch.

>jQuery
Учи читый JS, писать на jQuery то же самое, что писать на Бейсике и мнить себя программистом.
Аноним 06/03/16 Вск 00:26:00  677831
>>677825
>Теги option, которые красиво сверстать труднее, чем кастомные выбиралки на блоках.
Заказчику нужно было так как сейчас, в смысле без выпадающих списков.
>Учи читый JS, писать на jQuery то же самое, что писать на Бейсике и мнить себя программистом.
Ясно, я на JS вообще редко пишу, я и учил его всего лишь в районе месяца, просто быстро пробежался по самому основному, чтобы разбираться как делать простенькие эффекты, как бы дополнительный скилл для ПХП-пограммиста. Просто подумал, что такое скрипт на ПХП писать нет смысла. Но JS конечно надо подтянуть.
Аноним 06/03/16 Вск 00:36:15  677837
>>677831
>Заказчику нужно было так как сейчас, в смысле без выпадающих списков.
Ну так и верстал бы блоками. Или ты html+css тоже месяц назад узнал?

>я на JS вообще редко пишу
Какая разница? Я бы не хотел обслуживать написанный тобой PHP-код.
Аноним 06/03/16 Вск 03:14:45  677902
>>677733
Попробуй в правом нижнем углу windows-1251 поменять на UTF-8.
Аноним 06/03/16 Вск 04:05:30  677912
14572263309180.jpg (53Кб, 550x524)
Оп, я разобрался наконец-то с sql дампами, гитхабом и прочими невиданными ранее вещами и прошу тебя посмотреть мой список студентов https://github.com/greenTea242/Student-list. Интересно, сколько раз мне придется его переделывать. Мои кошки мышки ты только на четвертый раз одобрил.

Вопросы до первой проверки не хочется задавать, но все же. В задании написано:
> "Для поиска по всем колонкам можно применить оператор LIKE к соединенным через пробел значениям столбцов".
Я не понял как написать подобный запрос, появлялись ошибки. Поэтому использовал:
> Другой вариант — искать в нескольких колонках через OR, например name LIKE '%hello%' OR surname LIKE '%hello%'.
Как примерно должен выглядеть запрос из первого варианта?

Еще я не понял как вставить в код класс pager с его методами кроме как для получения свойств. Мой View-Helper::getSortedLink справляется со ссылочной работой. Это неправильно?

Заранее извиняюсь, если что-то не правильно оформил на гитхабе, буду его изучать постепенно. Вот смотрю сейчас страницу своего проекта и там под php комментариями код превращается в сплошной коммент, даже не знаю правильно это или нет.
Аноним 06/03/16 Вск 04:06:13  677913
>>677912
https://github.com/greenTea242/Student-list
быстрофикс влезшей точки в ссылку
Аноним 06/03/16 Вск 04:49:29  677919
Надо получить такую html структуру как я здесь получил https://jsfiddle.net/dq6j13m4/ но мне кажется я неправильно как-то сделал это, не поясните как можно сделать правильно?
Аноним 06/03/16 Вск 07:58:30  677941
>>676235
>Ты по моему переменную перезаписываешь собой.
Нет, но всеравно исправил.

>У тебя строки получаются очень длинные и переносятся на новую строку.
На самом деле, нужно было запилить перенос на следующую строку.

ОП, чому оно у меня такое кривое?с коэффициентами баловался
https://ideone.com/D3cmbK
Аноним 06/03/16 Вск 08:26:11  677944
>>677913
>Я не понял как написать подобный запрос, появлялись ошибки.
В SQL несколько столбцов можно соединить функцией CONCAT. Если соеденить их через пробел - получится неплохой результат, с помощью которого можно написать простой поиск.

Например SELECT CONCAT(name, ' ', last_name) FROM student_list выдаст результат в одной колонке вида "Имя Фамилия". Если сделаешь то же самое с WHERE и LIKE - получишь поиск.

>Еще я не понял как вставить в код класс pager с его методами кроме как для получения свойств.
Pager наверное должен считать еще оффсет для выборки из базы данных и считать общее кол-во страниц. Но тут я особо код не смотрел, поэтому могу быть не прав, лучше ОПа дождись.

>Вот смотрю сейчас страницу своего проекта и там под php комментариями код превращается в сплошной коммент, даже не знаю правильно это или нет.
Это не правильно, такого быть не должно. Заметь что такое происходит только после первой строки с любым комментарием.

Еще я думаю лучше будет readme оформить в markdown формате, это специальный формат для таких вещей. Подробнее почитать и посмотреть примеры можешь тут:
https://guides.github.com/features/mastering-markdown/
Аноним 06/03/16 Вск 10:06:58  677966
>>677741
Студентов и файлообменник из ОПовского учебника сделай - на джуниора точно сможешь претендовать.
Хотя на работу им устраиваются и без этого, зависит от самих работодателей и прочего.
Аноним 06/03/16 Вск 10:11:15  677967
>>677719
Рублей 500 - от силы.
А в качестве пункта в портфолио - очень даже неплохо.
Аноним 06/03/16 Вск 10:13:36  677968
>>677941
Домножать надо синус и косинус.
Аноним 06/03/16 Вск 10:20:21  677970
>>677968
Домножение синуса и косинуса дает коррекцию по горизонтали и вертикали. Вопрос был в том, что некоторые буквы расположены криво по отношению друг к другу.
Аноним 06/03/16 Вск 10:54:54  677984
>>677970
>>677941
Не посмотрел что кинул по ссылке, вот то что хотел https://ideone.com/WNMkGT
Я у мамы калькулятор Аноним 06/03/16 Вск 11:21:07  677998
Другой вариант калькулятора. Имеет право на жизнь?

https://ideone.com/O4dz3u
Аноним 06/03/16 Вск 12:37:54  678034
>>677741
Это не официальная планка. Где-то сидит человек, например, на позиции мида, в другой компании его в джуны определят, а куда-нибудь может и сеньором-помидором залезть. Джун, мид и прочее - это попугаи, планки, устанавливаемые для того, чтобы решать некоторые организационные моменты в плане делегации ответственности и полномочий, а также оплаты, роста и мотивации работника. Как-то так.
Аноним 06/03/16 Вск 13:59:39  678118
Посоны, для более-менее приемлемой "правильной" работы с композером и фреймворками (ларавел в моем случае) на живом сайте нужен ВПС с SSH? Есть ли какие-нибудь максимально нищебродские варианты для этого?
Сейчас я ковыряю все это добро на локалке в нетбинсе с заливанием файла по ФТП на обычный shared хостинг при сохранении, и когда приходит время композер апдейтов и прочей многофайловой шняги я запускаю синхронизацию, которая длится хуй знает сколько времени потому что этот уебский ларавел состоит из 5000 файлов.
Это, конечно, большое уебанство, учитывая то, что вожусь я с фреймворками исключительно в образовательных целях, а умение придумывать какие-то дикие костыли мне вряд ли поможет.
Аноним 06/03/16 Вск 14:03:57  678123
Какая же windows 7 тормозная и как долго грузится, как медленно работает, по крайней мере внутри виртуалки. Буду принципиально на XP сидеть.
Аноним 06/03/16 Вск 14:07:19  678127
>>678118

Ты можешь при синхронизации закачивать не все файлы а только изменившиеся.

Также, можно сделать аккаунт на cloud9 ide, там бесплатно доступна и командная строка, и можно просматривать сайт, но только пока ты залогинен в браузере. Надо знать линукс.

> с заливанием файла по ФТП на обычный shared хостинг при сохранении
Неправильно, это вообще глупая затея и медленно. Лучше сделать скрипт который будет запускаться вручную, находить и загружать изменившиеся файлы. Может есть для этого программы с интерфейсом, я не знаю, я скрипты пишу.

Ответы за 29 февраля - 1 марта Аноним 06/03/16 Вск 14:08:21  678130
>>673237

Что ты за ерунду пишешь. Вот смотри, веб-приложение фактически состоит из 2 частей: той, что работает на сервере (PHP, SQL) и той что на клиенте (HTML, CSS, JS). Как можно одну из этих частей убрать? Никак, нужны обе. Значит и изучать надо и то и другое.

Также, есть очень нездоровая вещь - так как HTML простой, люди ограничиваются тем что изучают синтаксис по даунским видеоурокам и на этом останавливаются. Они же изучают jQuery не зная толком JS. Хуже того, некоторые неосиляторы на этом останавливаются и называют себя фронтендерами. Я не знаю сколько таких людей сейчас в идустрии, иногда мне кажется что много. Надеюсь в будущем их выставят за дверь - с таким отношением они все равно ничего хорошо не сделают.

Вообще, мне это не нравится. Я думаю, надо бы в задаче студентов начинать более строго проверять HTML. Неосиляторы, которым лень 3 недели потратить на верстку, не нужны.

> жалко потраченного на это всё времени,
Сколько же ты времени потратил на изучение основ CSS? Полгода? год? 2 года? На другие специальности люди в вузах учатся по 4-6 лет, к слову. Справедливо и программистов хотя бы года 2-3 заставить учиться.

> Но сколь далече уже продвинулись те, кто не стал решать бонусные задачи, кто не стал решать вот эти задачи на HTML+CSS.
Как можно продвинуться дальше не зная HTML?

> душа требует ООП уже, БД и фреймворков.
Изучай параллельно.

>>673287

Я рассматривал одно из предыддущих изданий, автор учит неправильным вещам. Не учебник, скорее пособие по быдлокодингу.

>>673301

BOM? Там у разработчиков вроде мнение что он в utf-8 не нужен, просто виндоредакторы вроде блокнота любят его вставлять. Хотя я не знаю, может лучше было бы и поддерживать его прозрачно. Но PHP пытается быть агностичен к кодировкам, и в другой кодировке эти байты могут что-то осмысленное означать.

>>673310

Бросай, не мучайся уже.
Ответы за 2 марта Аноним 06/03/16 Вск 14:08:48  678131
>>673337

Разберись откуда этот quot берется. Также, у меня подозрения что тебе надо больше времени уделять изчении теории - ты явно что-то делаешь очень неправильно.

Подозреваю что это из-за того что ты в коде делаешь "очистку" входных переменных с помощью htmlspecialchars, как советую в быдлокодерских учебниках и видеоуроках.

Не читайте их, решайте лучше нашу задачу про студентов.

>>673352

Да, неправильно.

>>673355

Что значит "не работает"?

>>673379

В чем твой вопрос? Что на 4-м скриншоте? Может статья устарела?

>>673384

> W1 - http://ideone.com/PaOLUG
Верно

> W2 - http://ideone.com/sAZs0A
Верно

> W3 - http://ideone.com/7FUXeB
правильно

> W4.1 - http://ideone.com/xN81k7
верно

> W4.2 - http://ideone.com/hDB9f4
Хорошо

> W5.2 - http://ideone.com/b46oYS
Верно, хотя тут цикл со счетчиком - наверно for подошел бы лучше.

> W5.1 - http://ideone.com/isOeeQ
Это мы выше проверили
Ответы за 2 марта Аноним 06/03/16 Вск 14:09:08  678132
>>673403

Не знаю

>>673407

Но там ведь нет сдачи. Со сдачей код бы выглядел примерно так:

требуемая плата = ....;
полученная плата = 5000;
сдача = требуемая плата - полученная плата;

>>673542

Ты не настроил правильно виртуальные хосты.

> Для каждого сайта запись в hosts и виртуалхост в хттпд.конф.
Видимо неправильно. Или сервер забыл перезапустить.

> А то я уже заебался - удалять хтассесы при переходе с реального сервера на локалхост, иметь две разные версии хтассесов
Такие вещи можно автоматизировать скриптами, например на Баш (если линукс или cygwin) или Питоне, или даже на PHP. Зачем руками файлы копировать?

> Можно все это попроще как-то?
Написать скрипт
Ответы за 2 марта Аноним 06/03/16 Вск 14:09:29  678133
>>673558

Я не знаю никаких книг. Есть оф. документация на англ по апачу- там все описано же

https://httpd.apache.org/docs/2.4/vhosts/index.html
https://httpd.apache.org/docs/2.4/vhosts/examples.html

Алсо ты даже свой httpd.conf не запостил

>>675220

Нужен конфиг Апача

>>673633


> W5.3 - http://ideone.com/jWpMfH
Верно

> W5.4 - https://ideone.com/hZNNWf
Верно

> W5.5 - https://ideone.com/kwBJKl
Все правильно

И насчет этой злополучной задачи про кредит. Там в учебнике я специально написал неправильный код, вычитая 5000 каждый месяц без проверки баланса. Почему-то люди принимают его на веру и никто не пытается задуматься, а правильно ли это написано и не надо ли исправить. Видимо, надо будет более толсто намекнуть - написать что-то совсем неправильное.

>>673657

лайки для комментариев

>>673827

> function inclineWord($num){
> function inclineThou($thou){
> function inclineMill($mill){
Это копипаста одной и той же функции - избавься от нее. Алсо, старайся не сокращать так слова. Поставь нормальный редактор с автодополнением, если тяжело печатать так.

> floor($thou%100) <= 11 && floor($thou%100) >= 19 ? $value = " тысяч " : (
> floor($thou%10) == 1 ? $value = " тысяча " : (
Это же кошмар. Надо пытаться писать как можно более простой и логичный код, а не соревноваться кто сможет сложнее его запутать. Это надо переписать ифами.

> function assemblyFunc($num){
> global $units, $from11To19, $tens, $hundreds, $thousands, $millions;
Хорошая функция получает все, что ей надо на вход через аргументы. То, что ты прибегаешь к глобальным переменным говорит о том что ты не смог правильно спроектировать эту функцию. Подумай, что тут будет входными параметрами.

Также, название функции должно начинаться с глагола.

> $numericArr = str_split($num, 3);
Число это не строка, надо использовать математические методы (деление на 10, 100 и тд). Ну и у тебя тут будут потенциальные ошибки. Что если число содержит всего 1 цифру? Вот https://ideone.com/s9ZuhK тут твой код дает ошибку обращения к несуществующему элементу массива.

> foreach($numericArr as $key => $triple){
> global $units, $from11To19, $tens, $hundreds, $thousands, $millions;
Зачем ты второй раз тот же самый глобал пишешь? Ты по моему что-то путаешь.

> $numericArrDouble
Очень неудачное название - непонятно что там хранится

> return $partNumStr;
> }return $partNumStr;
Зачем ты 2 раза return написал?

В общем, пока не годится. Ты забыл что копипаста это зло, что код должен легко читаться.
Ответы за 2 марта Аноним 06/03/16 Вск 14:09:47  678134
>>673862

Нет, но в 99% случаев это и не требуется.

>>673873

Лучше наверно в ява или ньюфаг треде спросить.

>>673946

через query string (GET)

>>673965

Код статуса передавай через GET (/?notify=success). Если сообщение зависит от статуса, передавать его не надо, если там дополнительные данные - либо черз GET либо через сессии (гугли реализацию flash messages) но сессии имеют тот недостаток что разделяются между всеми вкладками браузера + при ошибке загрузки страницы и перезагрузке страницы сообщение потеряется. Традиционный способ все же лучше.

>>673966

> месседж можно выполнить с помощью обычного аллерта.
Не надо так, жутко бесит окно блокирующее страницу
Ответы за 3 марта Аноним 06/03/16 Вск 14:10:06  678135
>>674002

А на оф сайте его не скачать отдельно? В линуксе он скорее всего есть в пакете сфинкса и ставится куда-нибудь в /usr/share

>>674003

Он скорее всего есть в пакете сфинкса либо отдельеым пакетом. Отдельно неудобно так как версии могут не совпадать.

>>674112

Если эксель генерирует файл с нарущением правил CSV, значит придется разбирать файл вручную или как-то преобразовывать.

Также, можно попробовать опеноффис - может он лучше CSV поддерживает.

Также, у меня ощущение что ты что-то напутал, у меня с опенофисом и CSV все работало.

>>674119

Проверь какой получается HTML код, какие там обработчики ставит Юи - по моему там валидация делается то ли аяксом то ли яваскриптом. Так непонятно в чем проблема.

>>674268

Через строку запроса в URL

>>674299

Это только в командной строке
Аноним 06/03/16 Вск 14:10:32  678136
>>678118
>Есть ли какие-нибудь максимально нищебродские варианты для этого?
Сделать себе локальный сервер. Я не знаю зачем ты заливаешь свои образовательные эксперименты в интернет, но в php есть команда exec которая сможет выполнить любую команду. Таким образом, в теории, можно будет скачать композер через wget и запустить его, но я думаю что такие вещи админы бесплатных хостингов запретили. Конечно, никто тебе не запрещает при синхронизации заливать только те файлы которые изменились.
Ну и для сравнения самый нищебродский вариант на DigitalOcean за пять долларов дает тебе SSH, это если ты смотришь в сторону платных хостингов.
Ответ за 3 марта Аноним 06/03/16 Вск 14:11:24  678137
>>674358

Если каждый день писать код, то не забудешь. Ну то есть ты поначалу будешь лезть в мануал или учебник, но постепенно запомнишь самые нужные функции. Мозг видит что какая-то вещь тебе нужна и запоминает ее.

Алсо, если ты натыкаешься на что-то что изучал ранее, то скорее всего вспомнишь даже если думаешь что забыл. А вообще, я не разбираюсь в этом. Я например изучаю кандзи и забываю их, запоминаю только те, которые встретил много раз или у которых есть интересные особенности или которые как-то связаны (вроде того что слово "молодость" состоит из "зеленый" и "весна", а "осень" = "дерево" + "огонь") и тд. Видимо все дело в повторении и взаимосвязях.

>>674382

Тогда думай как меньше времени тратить на работу, или может можно как-то читать уроки по дороге на работу или еще как-то. Я когда-то работал, а после работы приезжал домой и фрилансил, тяжеловато конечно постоянно так жить.

>>674389

Не помнишь - вспоминай и заново читай мануалы. Закладки делай в браузере. Рано или поздно запомнишь.

>>674390

Надо писать больше кода

>>674399

Бутстрап это набор готовых элементов. Изучать CSS все равно надо, сначала ты в совершщенстве изучаешь CSS а только потом верстаешь.
Ответ за 3 марта Аноним 06/03/16 Вск 14:12:06  678138
>>674579

Освещение, настройки яркости/контрастности крути. У тебя монитор через цифровой выход подключен? Разрешение родное? Алсо, бывают (раньше были) плохие матрицы, где очень низкая контрастность, то есть темные цвет не очень темный - это тоже плохо.

Сейчас вспомнил что у меня в университете тоже когда-то глаза от тамошних ЖК мониторов уставали.

> Бывают ли хорошие ЖК-мониторы,
Бывают.

>>674698

> Вот вроде понятны все преимущества но когда сам пытаюсь получается тот же самый css и длинные классы вместо каскадности.
БЭМ вообще то этого и требует. И ничего хорошего в "каскадности" нет, сколько я не видел кода на less - быдлокод где идет каскад вроде .some-class div span div span. Не надо так писать. Изучай БЭМ лучше.

>>674708

> if ($compulsoryPayment > $monthlyPayment) {
> elseif ($compulsoryPayment < $monthlyPayment) {
А что если они равны друг другу? Это не учтено.

> elseif ($creditBalance >= 0) {
Он тут никогда не сработает так как для этого надо чтобы 2 предыдущих условия не выполнялось. Брейк надо делать в ветке где долг маленький.

Алсо, подумай как можно заменить if на функции min/max.

>>674852

> if(mysqli_num_rows($from_query) ==1)
> elseif(mysqli_num_rows($to_query) ==1)

Почему ты решил что там ровно 1 запись?

Советую переучиваться - код ужасного качества, так писать нельзя. Ужасно, все написано стеной без разбиения на функции, SQL код перемешан с логикой, про плейсхолдеры и обработку ошибок ты не слышал, SQL инъекции присутствуют.

Ты выбрал какой-то плохой учебник - код надо полностью переписывать.
Ответы за 3-4 марта Аноним 06/03/16 Вск 14:12:36  678140
>>674858

брейк надо в ту ветку где долг маленький

>>674865

Норм, хотя если все фразы различаются только цифрой то лучше было бы только эту часть поместить в массив. Не надо копипастить.

>>674922

Гет параметры используй

>>674974

Он просто удаляет авторизационные куки.

>>675021

> http://ideone.com/rciJYx
Все правильно сделал

>>675030

Для формы поиска в бутстрапе есть готовый компонент.

>>675089

Обычно через 6-12 месяцев (cooldown) можно повторить попытку. Ну и такой вопрос можно прямо задать компании - напиши что подучился и хочешь снова попробовать, когда можно будет повторить попытку?
Ответы за 3-4 марта Аноним 06/03/16 Вск 14:12:55  678142
>>675220

нужен конфиг апача

>>675276

> if ($i == 2) {
> break;
Неправильно сделано. Надо в шапке цикла прописать "продолжать цикл только пока i меньше 2", а так делать не надо.

> for ($i = 1; $i > 0; $i++) {
Какой смысл имеет $i > 0? Продолжать цикл вечно?

>>675402

Если ты не читал об этом, для тебя бы тоже возможно было неочевидно.

>>675497

Куки нужны для хранения каких-то постоянныех параметров или настроек, тут подходят параметры в query string.

>>675586

Для начала нужно смотреть логи Апача.

>>675608

Можно бы вместо уменьшения length вычислять позицию последней буквы или использовать отрицательные числа.
Ответы за 4 марта Аноним 06/03/16 Вск 14:13:24  678143
>>675801

Название странное. Почему PostForm? Если это форма логина - так и называй ее.

>>676220

> if ($compulsoryPayment > $monthlyPayment) {
> elseif ($compulsoryPayment < $monthlyPayment) {
А что если они равны?

Также, подумай как можно объединить похожий код в 2 ветках if, тут поможет функция min или max.

>>676252

> 39999 + 7777,
Лучше бы передавать 7777 отдельным аругментом, это же как бы отдельное условие для кредита.

Подумай как убрать повторяющийся код в ветках if

>>676298

Изучал бы уже 2-ю версию.

> При попытке незарегистрированного пользователя запросить недозволенный url его перекидывает на страницу логина, это хорошо. Проблема в том, что нужно же как-то сообщить пользователю, что произошло, а не молча редиректить.
Можно использовать GET парамтетр:

/login?from=/some/page&reason=need_login

> Что у нас есть из инструментов? Есть HTTP_REFERER
Неправильно. реферер по стандарту не обязан передаваться и не стоит на него завязываться. Более того, мой способ надежнее.

> и есть такая штука как Yii::app()->user->returnUrl с довольно странной реализацией.
Лучше не использовать тут сессии так как сессия одна на много вкладок.

> Документация у yii мутная и бессвязная,
читай исходники

> Значит если после того как юзера перекинет на страницу авторизации он вручную походит по другим страницам, а потом вернется назад на страницу логина, то returnUrl по-прежнему будет хранить последний адрес запрещенной страницы.
Потмоу надо использовать query string.

В общем, ты там себе голову сломал, а все из-за непоимания того как работает протокол HTTP.

> Решил этот вопрос костылем с реферером.
Это именно что кривой костыль

> То ли у меня не хватает опыта,
Не хватает знания HTTP и того какие в нем есть средства для передачи данных (куки, URL итд). Ну и опыта, да.

>>676648

Не знаю. Может тебе CMS искать?

>>676693

> Перед тем как значения отправятся в класс формы, значения $_POST пока не существуют,
POST существует всегда, только может быть пуст. Использовать его надо если HTTP метод == POST

> foreach ($_POST as $value) {
> $value = is_scalar($value) ? $value : '';
> $value = trim($value);
Это не меняет значения в POST, также ты не должен пытаться их менять. Вообще, тут все неправильно. Ты читал мой урок про работу с формами?

Аноним 06/03/16 Вск 14:19:10  678148
>>678123
10 пробовал на виртуалке? 8 шустрее, чем 7, 10 шустрее, чем 8. Видимо, научились оси пилить наконец.
Аноним 06/03/16 Вск 14:22:42  678150
>>673314
>>673310
>бросить айти
И дальше что? Ты, видимо, не в курсе ситуации в других профессиональных сферах - там она намного хуже. Ойтишники просто не представляют себе, насколько они охуели и зажрались.
Аноним 06/03/16 Вск 14:23:19  678152
>>678148

Ей вроде нужна какая-то фича в процессоре, которой у меня то ли нет, то ли в виртуал боксе нет. Она наверно в 32-разрядной системе и не пойдет. А вообще семерка мне понадобилась только ради анализа снятых xperf трейсов.
Аноним 06/03/16 Вск 14:25:25  678155
>>678150
>там она намного хуже
В том числе и по зарплатам. Особенно по зарплатам. Нигде больше не будут платить ни за хуй собачий. Я безмерно рад тому, что живу во время обезумевшего IT-хайпа, и не знаю, что бы ленивая жирная свинья вроде меня делала, родись она лет на 20 раньше. Наверное, я бы повесился нахуй.
Аноним 06/03/16 Вск 14:25:35  678156
>>678127
>Неправильно, это вообще глупая затея и медленно. Лучше сделать скрипт который будет запускаться вручную, находить и загружать изменившиеся файлы.
При сохранении в нетбинсе заливается только конкретный сохраняемый файл. А синхронизация, опять же, должна затрагивать только измененные файлы, но на медленном хостинге это, конечно же, тоже очень небыстро.
>>678136
>Я не знаю зачем ты заливаешь свои образовательные эксперименты в интернет
хочу поковырять всякие социальные АПИ, им вроде как обычно нужен адрес до которого они могут достучаться.
Аноним 06/03/16 Вск 14:26:07  678157
>>678155

А бизнесом нельзя каким-нибудь заниматься? Неужели все дело в айти? Варламов пишет он 3д моделированием первые деньги заработал.
Аноним 06/03/16 Вск 14:27:57  678160
>>678157
В кремлевской кормушке твой Варламов зарабатывает. А 3д моделирование это чтобы ничего такого не подумали.
Аноним 06/03/16 Вск 14:29:17  678162
>>678157
Ойти можно рассматривать как бизнес, почему нет? Пока IT-бизнес у нас еще не задавили, хотя поползновения имеются. По крайней мере, ситуация здесь куда лучше, чем в каком-нибудь продуктовом, где к тебе выстроится огромная очередь проверяющих с протянутой рукой.
>Варламов
Не говорит, сколько ему Потупчик перечисляет? Ну и правильно.
Аноним 06/03/16 Вск 14:29:37  678163
>>678142
>Куки нужны для хранения каких-то постоянныех параметров или настроек, тут подходят параметры в query string.
Ему там авторизация нужна, как я понял. Для неё использовать куки.
Аноним 06/03/16 Вск 14:37:36  678168
>>673310
До тех пор пока нам не закроют интернет окончательно, проблем с айти вакансиями не будет. В западных странах полно контор, в которых управляющие мечтают заменить разжиревших местных программистов получающих $100/час на неприхотливых дикарей, для которых и 15/час - заоблачные суммы.
Аноним 06/03/16 Вск 14:42:45  678175
>>678162

А что делать людям, которым неинтересно программирование или надоело? Хотя это конечно оффтопик.

Алсо на западе та же ерунда, непрограммисты живут довольно бедно, https://vc.ru/p/yelp-fired
Аноним 06/03/16 Вск 14:43:43  678176
>>678163

Нет, ему надо выводить сообщение почему пользователя перебросило на форму логина. И сохранять обратный адрес для возврата.

Аноним 06/03/16 Вск 14:52:56  678183
>>678175
>что делать людям, которым неинтересно программирование или надоело
Не знаю.
>непрограммисты живут довольно бедно
Ну, блджад, это охуеть пример, конечно - Сан-Франциско и СИЛИКОНОВАЯ ДОЛИНА с охуевшими работодателями и риэлторами, дерущими по три шкуры. Работодатели там могут предложить зарплату ниже среднерыночной, т.к. там на каждую вакансию толпа народу, жаждущего работать в ТАКИХ-ТО КОМПАНИЯХ, и это еще касается IT-персонала. Как там жить понаехавшей обслуге типа курицы из статьи по ссылке, я не знаю. Это как понаехать в Москву из мухосрани и жаловаться, что 30 тыщ за работу кассиром в Ашане хватает только на съем халупы в трех километрах от метро - у нас-то это никого почему-то не удивляет.
Новый тред Аноним 06/03/16 Вск 14:56:57  678188
Переходите в новый тред >>678185 (OP)

На посты за 4-6 марта, на которые я пока не ответил, я отвечу тут.

Не пишите здесь больше. Переходите в новый тред.
Аноним 06/03/16 Вск 14:57:33  678190
+--classes - тут у меня родительский класс Class.php
|
|
+--subclass - тут у меня класс наследующий класс /classes/Class.php с именем Subclass
|
|
+index.php - а тут я создаю экземпляр Subclass

Как мне сделать, чтобы всё это автоматически подключалось и не нужно было бы при добавлении новых классов писать бесконечные include
Аноним 06/03/16 Вск 14:59:35  678192
>>678183

> Это как понаехать в Москву из мухосрани и жаловаться, что 30 тыщ за работу кассиром в Ашане хватает только на съем халупы
Можно не ехать в Москву, аренда жилья дешевле но и зарплаты намного ниже. Думаю и в США так же - в СФ минимальная з/п $12.15, а в других штатах может быть 6-8 в час. Алсо пост в оригинале читать интереснее, и комментарии тоже.

Переходите в новый тред >>678185 (OP)
Аноним 06/03/16 Вск 15:01:26  678197
>>678190

В новый тред плиз.

Тебе же выше написали про файл boostrap.php >>675906

АЛсо читай пост про автозагрузку https://github.com/codedokode/pasta/blob/master/php/autoload.md

Аноним 06/03/16 Вск 15:15:40  678209
Первая задача по css https://jsfiddle.net/a0a7e51v/ если есть время, можете проверить?
Аноним 06/03/16 Вск 15:18:48  678210
>>678175
>Алсо на западе та же ерунда, непрограммисты живут довольно бедно
На западе врачи и юристы например, получают куда больше программистов, а эта тян могла бы снимать квартиру с кем-то вдвоём и у ней бы не было проблем тогда.
Аноним 06/03/16 Вск 15:19:31  678212
14572667712890.jpg (643Кб, 2560x1600)
>>664784 (OP)
Упражнение "Клавиша Шифт" в "Повторим?":
http://ideone.com/g82wBb
Что-то мне подсказывает, что есть метод получше.
Аноним 06/03/16 Вск 15:50:29  678226
Вторая задача по css https://jsfiddle.net/aeqp2pq5/
Аноним 06/03/16 Вск 15:54:24  678230
>>678130
>Что ты за ерунду пишешь
Братишка, ОП, согласен со всем, именно поэтому и не пропустил эти уроки на HTML и CSS.
Но я ведь изучаю только для своего проекта, мне кажется, вполне хватило бы и поверхностных знаний для такого.
Однако решаю все эти задачи ещё и просто из-за уважения к тебе - ты плохого не посоветуешь. Также хочу после того, как достигну кондиции, сделать сервис для братишек и себя по твоим урокам, который будет позволять отслеживать овладение предметом. Список с простановкой "галочек" и заполнением общего прогресс-бара изучения, возможность хранить ссылки на Идеоне со своими решёнными задачами, а также твои ответы и разборы задач - чтобы переработать свою задачу, когда захочется вернуться и сделать всё по-человечески. Думаю, вполне будет мне по силам через некоторое время.
Ну и просто есть Bootstrap, есть готовые шаблоны для фреймворков - для моего проекта, ради которого стал всё изучать, этого всего было бы достаточно.
Пока всё доделываю главное задание - шаблон страницы. Всего ушло на это три недели, многими решениями не доволен, кое-какой момент не удалось решить (data-ref в задаче про "непредсказуемость непредсказуема").
Просто пытаюсь оправдаться перед тобой: я жалуюсь, но ведь делаю. Многие, кто не жалуется, - и не делали ничего, просто перешагнули.
Аноним 06/03/16 Вск 16:11:12  678250
Четвёртое задание по CSS https://jsfiddle.net/j3hsp8bg/
Аноним 06/03/16 Вск 16:19:23  678255
Пятая задача https://jsfiddle.net/smpwuf8k/
Аноним 06/03/16 Вск 16:36:57  678275
>>678212
$clearedSentence = preg_replace('/[ ]{2,}/', "", $currentSentence);
$noSpaceComas = preg_replace('/[ ],/', ",", $clearedSentence);
$addSpaceComas = preg_replace('/,/', ", ", $noSpaceComas);
$clearSpaces = preg_replace('/[ ][ ]/', " ", $addSpaceComas);
Вот это всё - жуткий быдлокодинг.
Тут надо два массива с регулярками и заменами, всё пропустить через одну функцию preg_replace.
Аноним 06/03/16 Вск 16:37:48  678277
>>678250
>>678255

===> >>678188

Аноним 06/03/16 Вск 16:42:20  678285
Задание 6 https://jsfiddle.net/t03a2v4q/ что-то я не смог справиться без вот этого селектора * { } в рекомендациях написано его не использовать, но а как скинуть все стандартные отступы?
Аноним 06/03/16 Вск 18:37:18  678439
>>678176
Смешались в кучу кони, люди…
Речь вот об этом >>674922
Аноним 07/03/16 Пнд 03:18:35  679042
>>678132
>>678142
ОП, спасибо, читаю кинутые тобой доки, в который раз понимая свое неумение гуглить и важность сначала посмотреть на сайте авторов апача/пыха, а не на васянских.
Только я не совсем понимаю:
1) Есть ли какая-нибудь разница между
<VirtualHost _default_:80> и <VirtualHost :80>
Результат работы какой-то одинаковый у обеих.
2) Если
:80 или _default_:80 указаны НЕ самым первым виртуальным хостом, но по умолчанию (например, по 127.0.0.1 или белому ip) все равно откроется тот виртуальный хост, что прописан первым, а не этот дефолтный. Какой тогда смысл? Перезагружал, три раза.
3) Я хотел попробовать разместить разные сайты на разных портах (один виртуал хост на 80ом, другой на 81ом), но соснул хуйца. Это из-за того, что 81ый порт не слушается апачем или потому, что он закрыт? Как исправить? Можно ли наоборот вообще запретить апачу и мускулу работать с внешней сетью, будучи доступными только для локалки (типа безопасность тестового сервера)?
Аноним 07/03/16 Пнд 03:19:53  679043
>>679042
ПЕРЕСПРОСИЛ В НОВОМ ТРЕДЕ
Аноним 07/03/16 Пнд 18:48:51  679502
привет анончик, сейчас закончу книгу Кевина Янка по пхп и ворвусь сюда писать файлообменничек.

Пока реквестирую ваше резюме. Обезличьте плз, мне интересны вот какие моменты:
1) Курсы и вебинары всякие вы записываете в резюме?
2) Книги?
3) Как оформляли портфолио проектов своих?

А резюме в целом нужно для понимания как программист себя представляет на рынке.

Спасибо, анончик

мимо-сеошник/верстальщик-переходящий-в-кодеры
Аноним 07/03/16 Пнд 21:24:58  679751
>>679502
>кевин янк
Это книга для энтри левела или как?
Аноним 08/03/16 Втр 13:35:36  680220
>>679751
да, я прошел кодакадеми и теперь взялся за Кевина. Просто поэтапно поясняют за пхп, ооп и скл и потом на основе знаний заставляют писать свою небольшую цмску. Дальше лежит Мэтт Зандстра.
Аноним 08/03/16 Втр 14:16:24  680264
>>679751
единственное, что меня в ней смущает, так это конструкции try-catch. Когда я гуглил про pdo
(http://phpfaq.ru/pdo)
в этой статье такой метод обоссали - использование try-catch.
Их очень дохрена выходит. Вообще какой в них смысл? Ошибка если есть то и так вываливается. В книге аргумент, мол, зайдет юзер, а у тебя кусок кода с паролем-юзером БД вывалится.
Новый тред Аноним 08/03/16 Втр 14:36:50  680280
Мы 2 дня уже сидим в новом треде >>678185 (OP)

Не пишите тут ничего, пишите в новом треде.

На посты с 4 по 6 марта я напишу тут ответы - может вечером, может завтра, как время будет.

Аноним 08/03/16 Втр 18:01:53  680581
Привет.
Джва вопроса:
1. Почему \n не переносит строку? Использую Апач+пхп, т.е. запускаю файлы с программой в броузере.
2. Зачем в еcho переменные пишутся в скобках: echo "Foo {$bar}" ?
Аноним 10/03/16 Чтв 18:27:49  682802
Анончик, а почему ОП ругается из-за занесения в функцию массива, содержащего слова?
Ответы 5 февраля - калькулятор Аноним 10/03/16 Чтв 18:56:27  682831
>>676924

> define( 'UNDEFTOK', '0' );
Лучше испьзовать константы класса. Имена лучше давать полные, например TOKEN_UNDEFINED, чтобы не надо было расшифровывать сокращения

То же касается и переменных, не надо сокращать так: tok, tok_type

> private function isoperator($tok){
> return preg_match_all
Для проверки на соответсвие выражению нужен preg_match, незачем искать все совпадения. Более того, тут наверно проще было бы проверять через in_array по массиву знаков.

Слова в имени функции надо разделять: isOperator

Класс спроектирован плохо, это не ООП а просто свалка из функций. Вот смотри, какие есть публичные поля и методы:

class Calculator {
public $parse_string = "";
function __construct($str);
public function get_token();
public function compute();
public function addOrSubtractMembers(&$result);
public function multiplyOrDivide(&$result);
public function processingDegree(&$result);
public function unaryOperation(&$result);
public function processingBrackets(&$result);
public function receiveValueNumber(&$result);
}

Вот теперь попробуй по списку понять какие методы надо вызывать и в каком порядке. Я не понимаю, например.

Публичными должны быть только методы, которые должны вызываться с наружи. Их можно вызывать в любом порядке и они должны всегда возвращать корректный результат.

Также, класс называется Калькулятор и можно подумать что он может вычислить несколько выражений. Но тогда почему ему в конструктор (один раз) передается какая-то строка? Если он вычисляет только одно выражение, то как минимум он должен называться по-другому.

Вот как в моем понимании выглядит класс Калькулятор:

class Calculator {
public function compute($expression)
}

Вот как может выглядеть класс, представляющий одно Выражение:

class MathExpression {
public function __construct($expression);
public function compute();
}

Посмотри на эти примеры и сравни со своим кодом.

Более того, тут можно было бы вынести наружу класс, делающий токенизацию и отделить его от парсинга. Например так:

class Tokenizer {
__construct($expression);
public function fetchNextToken();
}

Также по моему опыту, иногда бывают полезными дополнительные методы, например peekToken (посмотреть следующий токен не поглощая его), consumeToken($type) (вызывает ошибку если идущий далее токен не такого типа). Около констант токенов стоит написать комментарии.

У тебя же токенизация и парсинг смешаны в один класс.

У тебя я вижу используется recursive descent. Стоило бы упомнянуть это в комментарии.

> public function unaryOperation(&$result)
Почему аргумент передается по ссылке, а не возвращается через return? Зачем усложнять?

Также, имя функций начинается с глагола.

> private $token_type = 0;
Разве тип токена не константами должен обозначаться? Почему ноль?

> private $token_type = 0;
> $this->tok_type = ENDPARSE;
Название поля написано по-разному.

> echo "Выражение отсутствует";
Почему класс что-то выводит на экран без разрешения?

> echo "Делим на ноль";
> exit(-1);
Для этого есть исключения

> $this->get_token();
> if($this->token == ""){
Странно что функция не возвращает значение напрямую через return, а используется более сложный способ в котором мы обращаемся к не связанному на первый взгляд с функцией полю.

> public function multiplyOrDivide(&$result){
> $temp = 0.0;
>
А правильно что тут начальное значение ноль? А, оно не используется. Но все равно странно смотрится.

В общем, я вижу что с алгоритмом парсинга ты разобрался, а с ООП и оформлением кода пока все плохо. Давай исправим программу.
Аноним 10/03/16 Чтв 18:57:44  682832
>>682802

Потому что можно сделать универсальную функцию склоняющее любое слово. То есть нет никакой необходимости вообще закладывать конкретные варианты слов в функцию. А те кто закладывают делают функцию менее универсальной и усложняют код непонятно с какой целью. Надо делатьт проще.
Ответы 5 февраля Аноним 10/03/16 Чтв 18:58:33  682834
>>677113

Потому что у mb_substr 3 аргумента, а не 4.

Скобки тут работают так же как в математике - задают порядок выполнения операций.

>>677225

Брр, синглтоны, я думал мода их писать везде давно уже прошла.

>>677257

Да, ты прав. Знаешь, как исправить? наверно сделать еще проверку что стек не пуст - не поможет так как там минус идет как оператор с 2 аргументами

Также, я заметил еще одну вещь, которую можно улучшить:

> protected $associative = null;
> if (is_null($this->associative)){
> throw new Exception('Associative is empty');
Это проверка, не забыли ли при наследовании класса определить поле. Такие вещи лучше делать через абстрактные методы: abstract function getAssociativity();

> '+' => 'add',
В новом PHP можно исплоьзовать сразу имя класса (и получить проверку интерпретатором что оно правильное):

'+' => AddOperator::class

>>677457

Надо смотреть как читается лучше.

>>677919

Зависит от задач. Можно использовать display: table или float. А вот зачем ты в кучу мешашь флоаты и инлайн-блоки - не очень понятно.
Ответы 5 марта Аноним 10/03/16 Чтв 18:59:38  682836
>>677984

centerX/Y лучше бы вычислять из ширины/высоты, а не прописывать руками.

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

Так, в общем, верно решено.

>>677998

Тебе я выше написал замечания по предыдущей версии, посмотри их сначала.

> global $token, $token_type, $exp_ptr;
Это плохо. Глобальные переменные плохи тем что с ними непонятно вообще кто и где их модифицирует. Вообще, код как-то весь перемешан и в нем трудно разбираться.

Использование регулярок по моему неудачная идея. Вот как это проверить? Как гарантировать что оно во всех случаях будет правильно работать?

Если ты уж хочешь использовать регулярки - используй их на полную мощь как описано тут https://habrahabr.ru/post/171667/ .

> /(^-[\d\.]{1,})
Это не увидит унарный минус внутри скобок

> if(preg_match_all("/(\()/u", $stringExpression, $match) != preg_match_all("/(\))/u", $stringExpression, $match))
лучше substr_count

> "/([\/\*\-\+\^\(])(\-[\d\.]{1,})
Это заменяет некорректное выражение вроде --6 на корректное -0-6

В общем, мне кажется подход выбран не очень удачный.

> function convertReversePolishNotation(&$stringExpression){
Что за наркоманство? Почему аргумент по ссылке? Надо думать, что функция получает на вход, что дает на выходе - у тебя этого нет, ты передаешь половину данных через аргументы, другую половину через глобальные переменные и не умеешь пользоваться ретурном.

> function compute(&$stringExpression){
Почему передача по ссылке? Функция при вычислении еще и ломает исходное выражение? не могу представить зачем это нужно.

В одной функции ты используешь стек, а в другой все валишь в массив. нужно единообразие наверно.

> if($stack->count() == 0){
> $stack->push($token);
> } else {
> if(returnPpiopitet($token) > returnPpiopitet($stack->top())){
Некрасиво. Надо сделать функцию возвращающую можно ли положить токен в стек или нет.

Функция function convertReversePolishNotation(&$stringExpression) слишком длинная. Надо разбивать на части.

В общем, надо переделывать код.

>>678209

> width: 66%;
> border: 1px black solid;
> margin-left: 34%;
Одно из 2 тут лишнее - либо margin-left либо width. Также, с учетом бордера в сумме получилось на 2 пикс больше чем 100%. Ты учел что блоки автоматически растягивают свою ширину и ее можно не указывать.
Ответы 5-6 марта Аноним 10/03/16 Чтв 19:00:39  682838
>>678212

> [ ]
можно писать просто пробел или \\s

> = preg_replace('/[ ]{2,}/', "", $currentSentence);
Это склеит слова если между ними 2 пробела.

> $noSpaceComas = preg_replace('/[ ],/', ",", $clearedSentence);
> $addSpaceComas = preg_replace('/,/', ", ", $noSpaceComas);
Это надо объединить в одну регулярку, зачем две? Тут достаточно 2 регулярок: первая для исправления пробелов вокруг знаков препинания, вторая для исправления многократных пробелов.

> $clearSpaces = preg_replace('/[ ][ ]/', " ", $addSpaceComas);
Ну ты ведь уже удалял пробелы, тут достаточно делать это один раз.

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

>>678226

> max-height: 600px;
Почему 600? Откуда эта цифра? И зачем это?

Там максимальная ширина должна быть 600, а не высота. Также, ты не сделал зеленый фон. Почему? Не умеешь определять цвета по картинке? Возьми инструмент пипетка в графическом редакторе.

В общем, задача требует доработки.

>>678230

> я ведь изучаю только для своего проекта, мне кажется, вполне хватило бы и поверхностных знаний для такого.
Может да, а может и нет и ты много времени потреяешь на исправлении верстки например

> Ну и просто есть Bootstrap, есть готовые шаблоны для фреймворков - для моего проекта, ради которого стал всё изучать, этого всего было бы достаточно.
Да не факт. Бутстрап не заменяет знания КСС и ты это поймешь как только захочешь сделать чуть не так как в примерах.

> кое-какой момент не удалось решить (data-ref в задаче про "непредсказуемость непредсказуема").
Там надо использовать псевдоэлемент и функцию attr. погугли.

Ну и смотри, это ты сейчас думаешь что тебе только для совего проекта, а потом тебя например позовут куда-нибудь в реальнй проект, а ты ксс не знаешь.
Ответы Аноним 10/03/16 Чтв 19:01:20  682839
>>678250

расстояние между желтыми блоками больше 10 пикс - изучи подсказки к задаче.

Также, цвета хорошо бы сделать как на картинке.

>>678255

> span {
> display: inline-block;
Вообще-то это неправильно. Вот смотри что будет если выделенный текст занимает несколько строк: https://jsfiddle.net/smpwuf8k/1/ - этот текст вырывается в отдельный блок. Изучи как ведет себя свойство display: inline, чем инлайн-элементы отличаются от инлайн блоков - это важно. И конечно читай учебник на сайте softwaremaniacs если ты его еще не читал.

>>678285

тебе не надо сбрасыать все отступы у всех элементов. Надо исправить только то что нужно тебе. Потому звездочка тут и не нужна. Звездочка почти всегда признак неграмотности верстальщика.

Отступы между пунктами меню надо сделать больше.

Шрифт не тот - там требушет. Цвет заголовка не тот.

Почему заголовок сделан тегом h3? Почему ты именно его выбрал? Что значит цифра 3 тут?

> div {
> padding: 5px 10px;
Это неправильный селектор. Вот захочет кто-то доабвить на страницу новый блок, а к нему твои паддинги применятся. Надо применять правила только к своим элементам, а не ко всему подряд.

> <div class="title">
> <h3>ООО АГРОСЕРВИС</h3>
Зачем тут div.title?

Если текста много, он заваливается на меню: https://jsfiddle.net/t03a2v4q/3/

Если в тексте есть цветной див, он проваливается под меню: https://jsfiddle.net/t03a2v4q/4/

Если убрать меню, текст уедет влево.

Нужно исправить все эти недостатки и сделать более надежную и прочную верстку.

>>678439

Да, я мог перепутать.
Ответы Аноним 10/03/16 Чтв 19:02:36  682842
>>679502

1) не пишу. Если курсы серьезные то можно указать.
2) не пишу, бред же.
3) скриншот + краткое пояснение что я делал

>>680264

Тебе надо разобраться в обработке ошибок и исключениях. Как по твоему надо обрабатывать ошибки? Читай урок про исключения, https://gist.github.com/codedokode/65d43ca5ac95c762bc1a

>>680581

### переносы строк и br

Чтобы переносы строк нормально работали и в браузере и в ideone (и в консоли), можно использовать для этого \n, а в начале программы поставить

header("Content-Type: text/plain; charset=utf-8");

Это заставит браузер воспринимать то, что выводит твоя программа, как обычный текст, а не HTML, и уважать переносы строк в нем (так как в языке HTML перенос строки равносилен пробелу).

Иначе перенос строки будет в исходном коде страницы (его можно увидеть нажав Ctrl + U), но на самой странице его не будет.

> Зачем в еcho переменные пишутся в скобках:
мануал http://php.net/manual/ru/language.types.string.php#language.types.string.parsing
Тред закрыт Аноним 10/03/16 Чтв 19:03:41  682844
Не пишите больше тут, переходите в новый >>678185 (OP)

Если я вас пропустил, напомните о себе в новом треде.
Аноним 15/03/16 Втр 20:31:25  689172
Более адекватной шапки и ОПа я не видел, наверное, никогда на дваче за 5 лет. Моё уважение всему, что ты здесь делаешь, это очень и очень здорово.

Не обоссывайте только, решил намазаться веб-кодингом, нашёл видеокурсы Евгения Попова по html и css, сейчас на завершающей главе html, делаю всё за ним, разумеется, пока получается, ибо тут только дурак не справится. Этот Попов вообще норм чел?
И по какому пути следовать при обучении:
1)HTML > CSS > JavaScript (+JQuery) > PHP+MySQL;
2)HTML > CSS > PHP+MySQL > JavaScript (+JQuery);
3)HTML > PHP+MySQL > CSS > JavaScript (+JQuery)?

Сейчас объясню, что мне хочется. Я просто сам по себе пока не получу первый мало-мальски годный результат, не смогу углубиться полностью в изучение. В каком порядке мне лучше изучать всё это, чтобы я как можно быстрее смог заработать первые доллары? Это не значит, что я сразу полезу везде орать, что я у мамы программист, просто после этого я буду уверен, что время трачу не зря и заработать ТОЧНО смогу и буду углублённо изучать каждый элемент.
В общем, в какой последовательности мне это учить для достижения быстрого результата? И в какой лучше с точки зрения рациональности и вашего опыта?
Аноним 15/03/16 Втр 20:35:19  689174
>>689172
И да, по времени, если можно, проконсультируйте меня, сколько дней уйдёт на обучение по двум моим веткам (быстрой и рекомендованной).
Я просто учусь и подрабатываю немного, хотелось бы рассчитать, могу ли дропнуть работу, чтобы потратить всё время на обучение и уже начать зарабатывать на жрат.
Аноним 15/03/16 Втр 21:28:06  689219
Где взять какой-нибудь пак задач, которые похожи на те, которые на сайте в шапке? Хочу научиться пользоваться стандартными функциями как гуру. Спасибо
Аноним 15/03/16 Втр 23:37:15  689330
14580742360860.jpg (43Кб, 400x681)
>>664784 (OP)
Ребят, как настроить xdebug в open server на phpstrom?
Что бы можно было по людски выделять строчку, и нажимать жучка и видеть в консоли что хрониться в переменной, делать пошаговую отладку?
Аноним 16/03/16 Срд 18:46:52  689922
А как вообще в жизни выглядит написание сайта?
1)Берётся WordPress, вставляются туда свои данные, картиночки, ???????, PROFIT!
2)Берётся WordPress, делается основной каркас, затем открывается код, плюётся на индусопись, стирается, пишется руками на пхп.
3)Сразу берётся и пишется руками на пхп?
4)Берётся уже написанный ранее сайт, редактируются css-стили, вставляются новые картиночки, новый сайт готов?
Аноним 16/03/16 Срд 19:28:32  689972
>>689922
От задач зависит, так делаются сайты - визитки
Аноним 16/03/16 Срд 19:44:54  689984
Пограммисты-пограммистушки, поясните за код

http://ideone.com/OWQsMA

Сначала нужно проверять имя, это чек
Затем номер - чек
Затем в номере только цифры - не чек.

Если ввести буквы - выводит что номер превысил 13 символов.

Как бы вы сделали и в чем упущения?
До этого вообще проверки с регулярками не юзал, только на ограничение символов.
Аноним 17/03/16 Чтв 13:03:35  690611
14582090160450.jpg (181Кб, 1366x768)
Подскажи, Двач, я уже охуел искать что не так! Всё установил - нихуя не могу запустить!
Аноним 18/03/16 Птн 19:39:18  691859
В чём преимущество пхп? Почему стоит учить его, а не другой?
Евгеничка Сырнов 19/03/16 Суб 16:51:41  692495
14583955011670.jpg (8Кб, 201x411)
Вот решил задачу в "Объекты в PHP, часть 2"
Правильно все ли я сделал?Есть замечания?
Код по ссылке.
http://pastebin.com/bFdzVPWW
Заранее спасибо
Аноним 19/03/16 Суб 23:04:15  692886
Выручайте, няши, запарололся на самой простой задаче в регулярных выражениях.

http://ideone.com/e.js/wAJYbG
Нужно проверить соответствует ли текст нужному шаблону.
Аноним 22/03/16 Втр 14:23:49  695060
>>664784 (OP)
Аноны, помогите! Выкатил сайт, а в нем такая проблема:
Allowed memory size of 134217728 bytes exhausted (tried to allocate 80732160 bytes)
на такой строчке echo file_get_contents('filename.7z');
Так вот вопрос: есть ли способ из пхп выдать файл клиенту не загрузив его в память? Редирект не катит сразу. Щас склоняюсь к варианту настроить htaccess чтоб если правильный айпи то отправляло сразу на файл в обход пхп.
Какие есть идеи?

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 1040 | 59 | 189
Назад Вверх Каталог Обновить

Топ тредов