«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2017/09/06 02:25:10  №1057768 1
>>1049651 (OP)
Как учить пхп, если уже немного умеешь программировать, базовые принципы понимаешь, либо если php не первый твой язык? Книжки из ОП-поста или из прикрепленного поста в разделе? Или сразу по документации на php.net? Или php.ru/su? Или по оп-сайту? Как правильнее. быстрее, эффективнее, лучше?
А
>а также JS/CSS/HTML
В3школа? хтмлкнига.ру? КодеАкадемия? Мозилловский проект?
>SQL
Тут вообще пиздец какой-то, либо голые референсы, либо только самые основы, либо под какую-нибудь залупу (специфичную) типа МС или Постгре.
Аноним 2017/09/06 02:34:24  №1057776 2
Интересная статья (англ) про то, как в Майкрософт во времена Висты целый год большая команда людей пыталась сделать новое меню для выключения компьютера: http://moishelettvin.blogspot.ru/2006/11/windows-shutdown-crapfest.html

>>1057768

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

> сразу по документации на php.net?
Можно, но это скорее документация чем учебник.

> Мозилловский проект?
Это документация (хорошая).

> хтмлкнига.ру? КодеАкадемия?
По ним да, можно учиться. Заметь, что у меня там есть задачи на HTML для проверки знаний, а в конце задача на верстку макета.


По SQL - у меня есть обзорный урочек: https://github.com/codedokode/pasta/blob/master/db/databases.md и там есть какие-то ссылки и задачи для проверки знаний.
Ответы: >>1057793
Аноним 2017/09/06 02:35:45  №1057778 3
>>1057768

При изучении баз данных после SQL надо обязательно изучить нормализацию, внешние ключи, транзакции и спроектировать хотя бы одну базу данных с разными сущностями и связями между ними.
Ответы: >>1057793
Аноним 2017/09/06 03:37:08  №1057793 4
>>1057776
>А ты попробуй разные варианты и сравни.
Эхехе, так я состарюсь, прежде чем решу, что лучше, а что хуже. Ну вот мозилловский проект, в3скулс, хтмлкнига - что из этого лучше и почему?
>Учебник из Оп-поста совсем для начинающих
После этого всего сразу переходить к пхпзерайтвей или идти зубрить документацию?
>>1057778
Я больше про такую хуйню, как функции, операции, создание представлений, триггеры (или как их там), про использование всего вот этого в SQL. Про нормализацию и внешние ключи знаю, да и базы пилил, но все взаимодействие с ними у меня ограничивалось простенькими обращениями, а ведь все можно делать эффективнее, не расходуя время на передачу данных...
Ответы: >>1059120 >>1059876
Аноним 2017/09/08 15:35:03  №1059074 5
>>1049651 (OP)
Доброго времени суток. Пишет тебе хуй, учащийся на первом курсе информационных систем, который до этого проебал три года на информатике и вычислительной технике, но был отчислен из-за того, что устроился на работу не по специальности, чтобы было что пожрат. Это для того, чтобы вы понимали, что матан я знаю, опыт программирования (Qt'шные курсачи, немного Java, в основном лабы) имею, но лишь в рамках студпрограммы.
Вообще я в своей жизни хотел быть системщиком, т.е. писать ядро линя, прошивки ковырять под конкретные микроконтроллеры, асм знаю, правда диззасемблировал лишь две программы за всю свою жизнь, и в целом - в веб меня не тянуло. Ибо слишком абстрактно, отдаленно от железа, хотя и дает потенциал для творчества. Ну да похуй, не в этом суть. В определенный момент я понял, что работать надо по специальности, хоть за еду, ибо опыта программирования я хуй наберусь на подработках, и посмотрел на стак, который требуется работодателям (без опыта, офк) в моей специальности - везде 1с и сраный битрикс, кроме двух компаний, куда требуется php jQuery AJAX джун, и понял, что нужно идти туда.
В связи с этим нужно в кратчайшие сроки выучить php + js на достаточном уровне, чтобы взяли на работу, на зп похуй, главное начать уже работать. Вот так я и пришел к вам, сейчас усиленно читаю материал по ссылкам, надеюсь все будет хорошо. Спасибо опу за сбор материала и поддержку начинающих, добра тебе.

Ответы: >>1059319 >>1059873
Аноним 2017/09/08 15:57:13  №1059082 6
0QjdhI0f0ZQ.jpg (62, 522x604)
604x522
>>1049651 (OP)
Блядь, ребят, решил вкатываться в кодинг, сейчас пытаюсь осилить html и css. Всё как-то туго идёт. Нихуя не интересно в этом разбираться. Насколько мне будут в изучении и в работе на php знания от верстки?
На каком уровне я должен эту ебучую верстку понимать? Когда понять, что хватит?
Аноним 2017/09/08 18:19:25  №1059120 7
Ответы: >>1059266
Аноним 2017/09/08 19:58:20  №1059177 8
Хочу вкатиться в веб, с чего начать? Знаю HTML5, а остальное (a Js+CSS) поверхам. Хочу добиться уровня работоспособности на фрилансе.
Ответы: >>1059230 >>1059872
Аноним 2017/09/08 21:58:55  №1059218 9
Ответы: >>1059239 >>1059872
Аноним 2017/09/08 23:15:03  №1059266 10
Ответы: >>1059872
Аноним 2017/09/09 01:57:33  №1059319 11
>>1059074
И сразу же вопрос по регуляркам. Разбиение текста по предложениям. Дело в том, что точкой обозначаются не только конец предложения, но так же и сокращения типа "Dr. Dre", "И т.д.", соответсвенно программа, построенная на подсчете точек, восклицательных знаков и вопросов будет работать некоректно. (Да и восклицания могут означать эмоциональный оттенок, или имена собственные, врожде Yahoo!).
Как сделать корректно?
Ответы: >>1059370 >>1059872
Аноним 2017/09/09 05:06:30  №1059339 12
https://ideone.com/mK3P0C
Помогите разобраться с выводом неправильных номеров.
Да и в целом я обосрался и не смог правильно составить регулярное выражение.


Задачка на проверку телефонов

Дан текст, который по идее должен быть номером телефона в виде 8-(911)-506 56 56 (т.е. человек может ввести не только цифры, но и скобки, минусы, может что-то еще). Но в реальности, пользователь может вместо номера написать что угодно. Напиши скрипт для проверки правильности введенного номера («8(911)-506 56 56» — правильный номер, «8-911-50-656-56» — правильный, «89115065656» — правильный, «02» — неправильный, «89115065656 позвать Люду» — неправильный).
Задачу надо проверить на большом числе телефонов, чтобы убедиться что твой код правильный. Для этого давай добавим в программу тесты, чтобы сразу было видно, верно все работает или нет. Сделай 2 списка номеров (правильные и нет), добавь их в программу и напиши цикл, который их по очереди прогоняет через регулярку и проверяет, что они определяются как надо (если нет — надо вывести, какой именно номер не распознается правильно).
Ответы: >>1059370 >>1059493 >>1059869
Аноним 2017/09/09 06:20:23  №1059347 13
>>1059082
Я например, чтобы хотя бы к ПхП приступить параллельно изучаю Си, а там еще более сложнее. И верстку постепенно улучшаю и на стороне беру курсы по дизайну страниц. Но HTML и CSS я изучаю до сих пор, делая главное задание по верстке от ОПа. И мне интересно, это самое важное, интерес.

нубсишник
Ответы: >>1059493
Аноним 2017/09/09 09:42:45  №1059370 14
>>1059319
>>1059339
Как же меня эта дичь заебала в свое время. Наслаждайся
Ответы: >>1059493
Аноним 2017/09/09 19:04:25  №1059493 15
>>1059347
Многие, конечно, сейчас будут смеяться, но для меня пока php - это сишка без прямого доступа к памяти и без типизации. Но я только закончил учебник опа, сейчас пойду лопатить официальную документацию.

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

>>1059339
Идеон не смотрел, поэтому по коду не могу подсказать. Но пока вижу решение следующее - проверяшь, чтобы в строке не было ничего кроме "1234567890()-" - это, считай, твой алфавит, затем смотришь, чтобы именно цифр было десять, скобочки-хуебочки игнорируешь. Если все подходит, то значит номер правильный, нет - пидора ответ.
Но правда я еще не смотрел условие, но в целом получается что-то вроде

[0-9][-()] // Первая цифра, вообще для россии можно заменить на 9 или +7
[0-9][-()]
// Вторая и
[0-9][-()] // третья, а так же
[0-9][-()]
// четверая, причем вокруг них может быть любое количество скобок и тире.
[0-9][-()] // пятая
[0-9][-()]
// шестая
[0-9][-()] // седьмая
[0-9][-()]
// восьмая
[0-9][-()]* // девятая
и, думаю, какая будет десятая, ты сам поймешь. Говнокод, не спорю, нужно будет его оптимизировать, но по крайней мере, эта регулярка пропустит телефон в виде
"---(8)---(8)(0)(0)---(5)(5)(5)---(3)(5)---(3)(5)---", что, видимо по мнению опа, норм запись. Как сделать регулярку короче, но при этом чтобы она учитывала вот такой треш - я не знаю.
Аноним 2017/09/09 19:09:07  №1059495 16
>>1059493
Блджад, я тут недавно, подобосрался с разметкой.
Смысл в том, что всего в регулярке десять блоков, вида [0-9][-()]*, где сначала должа встретиться одна из цифр [0-9], затем любое число раз или ни разу символ, выбранный из [-()], причем там важно добавить после квадратной скобки квантификатор - звездочку, который как раз и сьела разметка, превратив некоторые строки в курсив.
Ответы: >>1059868
Аноним 2017/09/09 19:31:03  №1059504 17
Ответы: >>1059522 >>1059868
Аноним 2017/09/09 20:11:54  №1059523 18
Какую версию учить? 5ую или 7ую?
Ответы: >>1059529 >>1059583
Аноним 2017/09/09 22:28:50  №1059583 19
>>1059523
>Какую версию учить?
Любую, перейти с 5.3 на 7.0 - дело 15мин чтения мануала с изменениями..
Из наиболее глобального mysql_query - выпилили к хуям.
Ответы: >>1059868
Аноним 2017/09/09 22:37:19  №1059587 20
>>1049651 (OP)
Почему у пхп такая плохая репутация и многие называют его плохим языком?
Ответы: >>1059604 >>1059868
Аноним 2017/09/10 16:42:36  №1059868 21
>>1059587

Спроси у тех, кто называет. Алсо, статья с аргументами в помощь https://habrahabr.ru/post/315152/

>>1059583

Из важных вещей - сделали тайп-хинты на скалярные типы (int/string), добавили возможность указать тип возвращаемого функцией значения. Жаль конечно что не хотят всякое легаси выпиливать, запретить добавлять поля в объекты и заменить ошибки на исключения.

>>1059504

Вообще, плохо что PHP не сообщил об ошибке синтаксиса. Я изучил ситуацию, там в парсере есть какие-то хаки и они интепретируют $a + $b = $c как $a + ($b = $c) в нарушение приоритетов операторов. Плохо.Создал баг в PHP для обсуждения проблемы: https://bugs.php.net/bug.php?id=75179

>>1059495

Не надо 10 раз копипастить одно и то же. Нужно использовать квантификатор, задающий 10 повторений.

>>1059493

> php - это сишка без прямого доступа к памяти и без типизации
Ты недооцениваешь, насколько PHP более высокоуровневый язык. Попробуй, например, в Си напиши функцию, возвращающую строку или массив (это не так просто, как ты думаешь. Я могу привести один факт: в процесс может быть загружено несколько динамических библиотек, использующих разные версии рантайма так, что выделенная одной библиотекой память не будет освобождаться другой или через free(). Или, что хуже, вместо освобождения будет повреждаться куча. Потому в Windows часто выделение памяти перекладывают на пользователя, но это добавляет проблем, когда размер получаемой строки заранее неизвестен). Также, отдельная проблема на Си - это отсутствие менеджера зависимостей и родной системы сборки, как следствие монстры вроде autotools с нечитаемым синтаксисом конфигов.

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

> эта регулярка пропустит телефон в виде
> "---(8)---(8)(0)(0)---(5)(5)(5)---(3)(5)---(3)(5)---", что, видимо по мнению опа, норм запись
А ты попробуй сформулировать правила, отличающие "правильный" номер от неправильного. Я просто поймал себя на мысли, что нужно где-то остановиться и выгоднее сделать простую регулярку. Наша цель - ловить опечатки, а не каких-то пользователей-злодеев, решивших заполнить ншу базу данных минусами.
Ответы: >>1059882 >>1060084
Аноним 2017/09/10 16:50:18  №1059872 22
>>1059319

Ответил тут https://pastebin.com/h3gkvsnF из-за спам-фильтра.

>>1059266

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

>>1059082

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

>>1059218

if лучше бы объединить в один блок if .. elseif ... elseif .. else, чтобы покзать что они связаны и может сработать только один вариант.

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

>>1059177

Ну для верстальщика нужно хорошо знать и CSS, и JS (в ОП посте есть задачи и на то и на другое, чтобы оценить свои силы). Но надо иметь, что верстальщиков конечно очень много, и специалист, который может сделать сайт целиком, а не только верстку, более востребован.
Ответы: >>1059882 >>1060084
Аноним 2017/09/11 03:05:42  №1060084 23
>>1059868
>Нужно использовать квантификатор, задающий 10 повторений.
Ну т.е. /([0-9][-()]*){10}/, правильно? Хм, а ведь элегантно же.

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

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

>>1059872
>Ответил тут
Я так и понял, >>1059493
За ссылки спасибо, позже почитаю.
Ответы: >>1060331
Аноним 2017/09/11 16:58:31  №1060331 24
>>1060084
Регулярка пропускает через себя номера большей, чем нужно длины. Как это исправить? В примере - восьмой номер, он должен был быть отфильтрован.
https://ideone.com/dkTZYO
Ответы: >>1060339 >>1068357
Аноним 2017/09/13 20:56:58  №1061501 25
Куда в TDG поместить общие для всех таблиц методы: eraseEntry(), addEntry(), getDataInRange() и т.п. Копипастить в каждый класс? Или сделать один класс с этими методами и передавать в каждый метод название таблицы? Помимо этих есть много специфических методов для каждой конкретной таблицы.
Ответы: >>1068357
Аноним 2017/09/30 00:10:27  №1068357 26
Напомню, что новый тред тут >>1067944 (OP) . Этот тред закрыт, если вам не ответили, напомните о себе в новом треде.

>>1061501

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

>>1060331

Нужно использовать привязку к краям строки (^ и $), без нее регулярка проверяет на соответствие только часть строки, а не всю ее целиком.