что написать на php для практики
Задачи на основы языка PHP
Учебник PHP
Практика
Важное
Регулярки
Работа с htaccess
Файлы, папки
Сессии и куки
Работа с БД
Практика по работе с БД в PHP
Перед чтением см. новые уроки раздела «Важное», которые появились выше.
Практика
Движок PHP
Продвинутые БД
Аутентификация
Практика
ООП и MVC
Абстрактные классы и интерфейсы
Трейты
ООП Магия
Практика
Практика: классы как набор методов
Перед решением задач изучите теорию к данному уроку.
Примеры решения задач
Задача
Задача. Создайте переменную $var и присвойте ей значение ‘hello’. Обращаясь к отдельным символам этой строки выведите на экран символ ‘h’, символ ‘e’, символ ‘o’.
Задача
Задача. Напишите скрипт, который считает количество секунд в часе.
Если нам нужно получить количество секунд в сутках, то умножим еще и на 24 (так как в сутках 24 часа):
Задача
Задачи для решения
Работа с переменными
Создайте переменную $a и присвойте ей значение 3. Выведите значение этой переменной на экран.
Создайте переменные $a=10 и $b=2. Выведите на экран их сумму, разность, произведение и частное (результат деления).
Создайте переменные $c=15 и $d=2. Просуммируйте их, а результат присвойте переменной $result. Выведите на экран значение переменной $result.
Создайте переменные $a=10, $b=2 и $c=5. Выведите на экран их сумму.
Создайте переменные $a=17 и $b=10. Отнимите от $a переменную $b и результат присвойте переменной $c. Затем создайте переменную $d, присвойте ей значение 7. Сложите переменные $c и $d, а результат запишите в переменную $result. Выведите на экран значение переменной $result.
Работа со строками
Создайте переменную $text и присвойте ей значение ‘Привет, Мир!’. Выведите значение этой переменной на экран.
Создайте переменные $text1=’Привет, ‘ и $text2=’Мир!’. С помощью этих переменных и операции сложения строк выведите на экран фразу ‘Привет, Мир!’.
Создайте переменную $name и присвойте ей ваше имя. Выведите на экран фразу ‘Привет, %Имя%!’. Вместо %Имя% должно стоять ваше имя.
Создайте переменную $age и присвойте ей ваш возраст. Выведите на экран ‘Мне %Возраст% лет!’.
Обращение к символам строки
Создайте переменную $text и присвойте ей значение ‘abcde’. Обращаясь к отдельным символам этой строки выведите на экран символ ‘a’, символ ‘c’, символ ‘e’.
Дана произвольная строка, например, ‘abcde’. Поменяйте первую букву (то есть букву ‘a’) этой строки на ‘!’.
Создайте переменную $num и присвойте ей значение ‘12345’. Найдите сумму цифр этого числа.
Практика
Напишите скрипт, который считает количество секунд в часе, в сутках, в месяце.
Создайте переменную, присвойте ей число. Возведите это число в квадрат (это значит нужно умножить его само на себя). Выведите его на экран.
Работа с присваиванием и декрементами
Переделайте этот код так, чтобы в нем использовалась операция .=. Количество строк кода при этом не должно измениться.
Переделайте этот код так, чтобы в нем использовались операции ++ и —. Количество строк кода при этом не должно измениться.
Практика программирования на PHP
Если можешь сделать сортировку масива «пузырьком», то переходи дальше. Если нет — то разберись в простейшей работе с массивами и таки сделай эту сортировку.
Потом прочитай, что такое MVC и можешь все переделать под этот шаблон проектирования.
Знаю, что получу много минусов, но всё таки…
«Надо начинать с лёгкого проекта» — самый ужасный совет новичкам.
Решая легкие задачи мозг затачивается под лёгкие задачи. А как только программист после такого «лёгкого» обучения сталкивается с действительно сложной задачей вся структура мышления ломается и обучаться приходиться почти сначала.
Меня в своё время учили гуру — «Решай задачи, в которых сам чёрт ногу сломит, только так научишься». Проверил этот совет на себе и полностью с ним согласен. Только решение сложных задач действительно учит.
Выберите сложную задачу (написать движок для соц.сети, браузерную игру, портал и т.д.) и работайте над ней.
Задача для обучения должна решаться
Задача для развития должна быть сложнее текущего уровня
Сложность надо повышать постепенно, дабы приобретенные знания и опыт соединялись с имеющимися и формировалась картина а не бардак
PHP: 20+ практик, которым стоит следовать
Эта статья постарается научить вас нескольким лучшим практикам одного из самых популярных языков программирования в мире. Проблема в том, что многие разработчики, не только начинающие, но даже опытные PHP программисты, не уделяют им должного внимания.
Не так редки случаи, когда люди теряли высокооплачиваемую работу только потому, что не заостряли свое внимание на особенностях языка. Помните, что довольно сложно разобраться во всем за одну ночь.
1. Комментируйте свой код
Комментирование намного важнее, чем вы могли подумать. Очень грустно видеть начинающих разработчиков, да и закалённых программеров, которые не комментируют свой код просто потому что им лень.
Комментарии не только позволяют другим разработчикам понять ваш код, но и помогут разобраться вам самим, если придется вернуться к нему спустя какое-то время. Допустим, сегодня вы написали критически-важную функцию, и вы помните как она работает спустя день, два или даже неделю. Но, скорее всего, вы забудете о ней через пару месяцев.
Комментирование сделает ваш код понятным каждому (даже самим себе).
2. Используйте стандарты оформления кода
Стандартов оформления кода необходимость придерживаться (см. PSR-2, прим. пер.). Если разработчики в одном проекте будут использовать разные стандарты, репозиторий может превратиться в сущий ад.
Исходный код может стать абсолютно не поддерживаемым, если каждый, работая над ним, будет изобретать свой собственный стандарт оформления. Есть даже разработчики, которые не потрудились придерживаться хоть какого-нибудь стандарта, их код начал выглядеть как большая куча мусора и не более того.
Строгое следование определенному стандарту в оформлении кода даёт возможность другим программистам провести отладку вашего кода, и позволит вам самим присоединиться к сторонним проектам.
3. Никогда не используйте короткие теги
Это простое злоупотребление может стать причиной конфликтов с xml парсерами, а также может сделать ваш код несовместимым с будущими версиями PHP.
4. Используйте осмысленные названия переменных и функций
Если вы не применяете стандарты присвоения имен переменных, а используете общие и ничего не значащие имена, это может стать болезненным опытом для программистов, разбирающихся в вашем коде. Это очень плохая тенденция, которой ни в коем случае не стоит придерживаться.
5. Отступы и длина строк
Я уже говорил о важности следования стандарту оформления кода, но отдельно стоит сказать про отступы и длину строк.
6. Одинарные или двойные кавычки
Запомните разницу в их работе и используйте должным образом.
7. Никогда не используйте функции внутри циклов
8. Используйте одинарные кавычки в индексах массивов
Особенность PHP в том, что он воспринимает индексы без кавычек как константы, и, если эти константы не были объявлены ранее, они будут самоопределены (self-defined), что вызовет предупреждение (warning). Это не остановит выполнение кода, но ошибка есть ошибка.
9. Лучший способ вывода строк
Взгляните на кусок кода, представленный ниже, и попробуйте догадаться, какое выражение выполнится быстрее, а какое окажется медленнее.
Представьте, но последняя запись, та, которую реже всего можно встретить в коде, выигрывает в тестах производительности. Первая запись, очевидно, проигрывает, потому что функция «print» работает медленнее, чем «echo». Третья строка выигрывает у второй за счет того, что операция конкатенации обрабатывается быстрее, чем переменные внутри строки.
Малоизвестный четвертый вариант побеждает, потому что в нем нет операций работы со строками, а всего лишь список строк, разделенных запятыми.
10. Включайте вывод ошибок (Error Reporting) в процессе разработки
В PHP есть очень полезная функция, error_reporting(), которая может помочь найти различные проблемы в вашем приложении.
PHP поддерживает несколько уровней показа ошибок: E_NOTICE, E_WARNING, E_PARSE и тд., но вы должны использовать E_ALL для вывода всех типов уведомлений. Не забудьте выключить показ ошибок, когда закончите работу над кодом, чтобы пользователи не испугались невразумительных сообщений.
11. Не забывайте о принципе DRY
Это концепция применима не только к PHP, но и к любому другому языку программирования, таким как Java, C++ и тд. Простой пример кода позволит вам понять принцип DRY.
После применения принципа DRY, код будет выглядеть так:
12. Избегайте излишнюю вложенность
Используйте условные операторы таким образом, чтобы избежать множественного вложения. Это не только очень плохая практика, но и выставит ваше код в неудобном свете перед другими разработчиками.
13. Никогда не кладите phpinfo() в корневую директорию
Вы всего лишь размещаете файл на вашем сервере и получаете исчерпывающую информацию. Но множество разработчиков допускают ошибку, помещая файл в корневую директорию, т.к. это может открыть множество лазеек для хакеров.
Лучшим вариантом будет удалить файл, как только вы закончите с ним. Не так уж и страшно потратить пару секунд, если он понадобится вам снова.
14. Сделайте документацию по PHP вашим лучшим другом
У них есть новый дизайн (в бэта версии), если хотите. Другой полезной чертой документации PHP являются крайне полезные комментарии.
15. Время использовать IDE
IDE расшифровывается как Integrated Development Environment (интегрированная среда разработки). Она может существенно облегчить процесс разработки. IDE обладает такими крутыми штуками как: Подсветка синтаксиса, Автодополнение кода, Навигация, Отладка и др., что сделает вас намного продуктивнее и поможет вам писать хороший код с минимумом ошибок.
Вот несколько IDE для PHP: NetBeans, phpDesigner, phpStormи т.д. Выбери то, что больше понравится.
16. Попробуйте PHP фреймворки
Если вы изучили основы PHP, значит самое время перейти к фреймворкам. Их для PHP целые десятки, большинство из них основано на модели MVC (Model-View-Controller).
Из них вы подчерпнете много новых интересных вещей для изучения. CakePHP, CodeIgniter, Zend, Symphony позволят вам создать потрясающие приложения на PHP.
17. Запускайте PHP локально
Если вы работаете над PHP приложением, то вам хотелось бы вести весь процесс разработки на своем компьютере, без подключения к удаленному серверу.
Для этого вам нужны лишь веб-сервер Apache и PHP. Если появится необходимость в базе данных, воспользуйтесь MySQL.
Конечно, вы можете установить их раздельно, но лучше будет воспользоваться готовым решением: XAMPP, WAMP, MAMP. Они очень просты в настройке и позволят развернуть локальный сервер за считанные минуты.
18. ООП
Концепция объектно-ориентированного программирования впервые была представлена в PHP 4, но полноценная его поддержка появилась в PHP 5.
Но сейчас самое время перейти к объектно-ориентированному программированию, поскольку оно обеспечивает более высокий уровень гибкости и может значительно сократить размер исходного кода. Ваш код станет выглядеть намного более организованным.
19. Обновляйте PHP
Это очевидный пункт, но множество программистов неохотно берутся за обновление. Вместе с новой версией мы можете получить улучшение производительности и новые возможности. Нет абсолютно ни единой причины, пропускать обновления.
Эти новые возможности могут сделать вашу программистскую жизнь намного интереснее и проще. И не стоит забывать, что в новых версиях появляются исправления багов и улучшения, связанные с безопасностью.
20. Взаимодействуйте с другими разработчиками
Но если вы будете думать также, то перекроете себе путь в мир изучения новых замечательных технологий.
Спрашивайте ваших друзей или опытных разработчиков на всевозможных форумах, таких как Stack Overflow, Dream In Code и т.п. В мире много людей, которые всегда готовы протянуть вам руку помощи.
От автора перевода:
Пост является переводом оригинальной статьи Aritra Roy (https://www.corephp.com/blog/php-best-practices-that-you-must-follow/), опубликованной в августе 2013, но до сих пор сохранившей актуальность.
Помогаю развивать интернет-проекты. Пишу про веб-разработку, маркетинг и дизайн.
Что написать для практики PHP?
Rooyz.
n3d.b0y
Iskus
Изучил ооп это как? Что тебе это дало, для чего ты это изучил, если не знаешь где применить? Как глубоко ты это изучил, зачем нужно использовать модификаторы доступа? Зачем нужны интерфейсы и абстрактные классы. Начни изучать OOD, как раз познакомишься с кучей примеров правильного использования ООP. Начни изучать основы другого языка, низкоуровнего, не надо начинать с PHP, он слишком много позволяет, изучи основы с# или с++, работу с памятью и побитовые операции, обычные циклы, не foreach, а с for, while поработай. Купи или скачай книгу банды 4 паттерны проектирования, ооп Метта Занстры, обязательно Фаулера архитектуру корпоративных приложений и рефакторинг его же. А потом задашь этот вопрос снова, тогда я на него отвечу по другому, если он конечно на тот момент не потеряет свою актуальность, в чем я сильно сомневаюсь. Удачи.))
P.S. потому что без этого ты не сможешь ПИСАТЬ, без этого ты будешь ГОВНОКОДИТЬ!
И забудь про windows.
DanGenOnX
Изучил ооп это как? Что тебе это дало, для чего ты это изучил, если не знаешь где применить? Как глубоко ты это изучил, зачем нужно использовать модификаторы доступа? Зачем нужны интерфейсы и абстрактные классы. Начни изучать OOD, как раз познакомишься с кучей примеров правильного использования ООP. Начни изучать основы другого языка, низкоуровнего, не надо начинать с PHP, он слишком много позволяет, изучи основы с# или с++, работу с памятью и побитовые операции, обычные циклы, не foreach, а с for, while поработай. Купи или скачай книгу банды 4 паттерны проектирования, ооп Метта Занстры, обязательно Фаулера архитектуру корпоративных приложений и рефакторинг его же. А потом задашь этот вопрос снова, тогда я на него отвечу по другому, если он конечно на тот момент не потеряет свою актуальность, в чем я сильно сомневаюсь. Удачи.))
P.S. потому что без этого ты не сможешь ПИСАТЬ, без этого ты будешь ГОВНОКОДИТЬ!
И забудь про windows.
Iskus
Если человек собирается использовать PHP, следовательно, логично предположить, что он решил заниматься серверной частью веб приложений, так? А теперь скажите мне, при чем здесь винда, и каким боком она к серверной части веб приложений? Нет, если он фанатично решил писать только под сервера под управлением Windows server, тогда винда его все, если нет, тогда здаравствуйте, дорогой линукс! Ответ ясен?
DanGenOnX
Iskus
возможно мне показалось, что вопрос был занят с претензией про винду, а так как холивары на эту тему меня уже порядком подустали, поэтому ответ вышел несколько резковатым, за что извиняюсь, все моя вспыльчивость, хотя в целом я человек доьрый и всегда помогу чем смогу, если кому-то нужна моя помощь, в помощи я никому отказать не могу..
DanGenOnX
wonalive
☠xrahitel☠
пока вы тут меряетесь кто из Вас круче накидай мне вот такое тыц что при води почты грабил так тыц и все сохронял мне на FTP или слал на почту,вот как это в бою выглядит.
DOOmsdAi
alfi0
пока вы тут меряетесь кто из Вас круче накидай мне вот такое тыц что при води почты грабил так тыц и все сохронял мне на FTP или слал на почту,вот как это в бою выглядит.
n3d.b0y
Что бы это реализовать приодеться заморочиться. Так как на сервере будет статический ip тебе приодеться купить список прокси что бы через них делать запросы в зависимости от куда будет заходить пользователь то прокси и подставлять да бы лишний раз не нарваться на капчу и не вызывать подозрения. Ибо если все время из разных аккаунтов будет идти авторизация с одного ip то это наверняка взвит подозрения у сервиса (хотя не факт надо проверять). После тебе надо просмотреть все поведения формы авторизации дабы их обработать. Ну а когда будут все данные на руках дела за малым. Смотришь как обрабатываться форма POST GET какие данные передаются и на основе этого оставляешь запросы.
p.s Честно говоря как объяснить проще без примера кода я не знаю. Также там вероятно есть капча что тоже надо уметь обрабатывать а для этого приодеться использовать сторонний сервис с api для расшифровки.
alfi0
Что бы это реализовать приодеться заморочиться. Так как на сервере будет статический ip тебе приодеться купить список прокси что бы через них делать запросы в зависимости от куда будет заходить пользователь то прокси и подставлять да бы лишний раз не нарваться на капчу и не вызывать подозрения. Ибо если все время из разных аккаунтов будет идти авторизация с одного ip то это наверняка взвит подозрения у сервиса (хотя не факт надо проверять). После тебе надо просмотреть все поведения формы авторизации дабы их обработать. Ну а когда будут все данные на руках дела за малым. Смотришь как обрабатываться форма POST GET какие данные передаются и на основе этого оставляешь запросы.
p.s Честно говоря как объяснить проще без примера кода я не знаю. Также там вероятно есть капча что тоже надо уметь обрабатывать а для этого приодеться использовать сторонний сервис с api для расшифровки.
Shimikami
Это тривиальнейшее задание, основанное на простейших базисах, которое, при этом, охватывает довольно широкий спектр пыхо-разработки. Вперед, пробуй, набирайся опыта, по срокам лимита, пожалуй, не будет. Просто сделай.
Базовый PHP | упражнения с решением
1. Отобразите текст «Hello World!» в браузере
Внутри тега создайте раздел PHP, в котором будет отображаться текст «Hello World!» в браузере. Проверьте свою работу, открыв страницу в браузере. Если вы получили пустую страницу, убедитесь, что вы заканчиваете каждое утверждение точкой с запятой «;» и что вы включили открывающие и закрывающие PHP-теги.
2. Информация о версии и конфигурации PHP
Напишите сценарий PHP, чтобы получить информацию о версии и конфигурации PHP.
3. Отображение строк
Напишите сценарий PHP для отображения следующих строк:
«Я использую одинарную кавычку ‘ в коде»
«Это плохая команда: del c:\*.*»
4. Вывод переменной
Ожидаемый результат:
5. Вывод имени, введенного в поле ввода
Создайте простую HTML-форму, которая принимает имя пользователя и отображает его с помощью оператора PHP echo
Ожидаемый результат: Посмотреть решение
6. Получить IP-адреса клиента
Напишите сценарий PHP для получения IP-адреса клиента.
7. Определить браузер и операционную систему пользователя
Напишите простой сценарий определения браузера и операционной системы пользователя.
8. Как узнать имя файла веб-страницы?
Напишите сценарий PHP, чтобы получить текущее имя файла веб-страницы.
9. Получить имя хоста, протокол, путь из url
Напишите сценарий PHP, который будет возвращать следующие компоненты URL-адреса
Список компонентов: Протокол, Хост, Путь
10. Изменение цвета первого символа слова
Напишите сценарий PHP, который изменяет цвет первого символа слова.
11. Как с помощью PHP определить протокол (например, HTTP или HTTPS) url’а?
Напишите сценарий PHP, чтобы проверить, вызывается ли страница с https или http
12. Как перенаправить пользователя на другую страницу
Напишите сценарий PHP для перенаправления пользователя на другую страницу.
13. Проверка валидности email-адреса
Напишите простой код PHP, чтобы проверить валидность email-адреса.
Подсказка : используйте фильтр FILTER_VALIDATE_EMAIL, который проверяет значение как валидный адрес электронной почты.
14. Отображение строк и переменных в таблице
Напишите сценарий PHP для отображения строк и переменных в таблице
Зарплата Ивана | 1000$ |
Зарплата Карла | 1200$ |
Зарплата Степана | 1400$ |
Примечание. Используйте элементы таблицы HTML и оператор echo.
15. Отобразить исходный код веб-страницы
Напишите сценарий PHP для отображения исходного кода веб-страницы (например, https://wm-school.ru/).
16. Получить информации о последних изменениях файла
Напишите сценарий PHP для получения информации о последних изменениях файла
17. Посчитать количества строк в файле
Напишите сценарий PHP для подсчета количества строк в файле.
Примечание. Сохраните имя текстового файла в переменной и подсчитайте количество строк текста в нем.
18. Отобразить текущую версию PHP
Напишите сценарий PHP для вывода текущей версии PHP.
19. Как отложить выполнение программы на указанное количество секунд
Напишите сценарий PHP, чтобы отложить выполнение программы на заданное количество секунд.
20. Использование переменных символьного типа для вывода чисел
21. Как узнать последнюю произошедшую ошибку PHP
Напишите сценарий PHP, чтобы узнать последнюю произошедшую ошибку.
22. Проверить больше ли число чем 30, 20 или 10
Напишите функцию PHP, которая принимает в качестве параметра число и проверяет, больше ли оно чем 30, 20 или 10. Используйте тернарный оператор.
23. Как получить полный URL
Напишите сценарий PHP, чтобы получить полный URL
24. Сравните версию PHP
Напишите сценарий PHP для сравнения версии PHP.
25. Получить имя владельца текущего сценария PHP
Напишите сценарий PHP, чтобы получить имя владельца текущего скрипта PHP
26. Как получить корневой каталог документов, в котором выполняется текущий скрипт
Напишите сценарий PHP для получения корневого каталога документов, в котором выполняется текущий скрипт, как определено в файле конфигурации сервера.
27. Получить информацию об операционной системе, в которой работает PHP
Напишите сценарий PHP для получения информации об операционной системе, в которой работает PHP.
28. Выведите список всех разработчиков PHP
Напишите сценарий PHP, чтобы распечатать список всех разработчиков PHP.
29. Получить путь к каталогу, используемому для временных файлов
Напишите срипт PHP, чтобы получить путь к каталогу, используемому для временных файлов.
30. Напишите сценарий PHP, чтобы получить имена функций модуля.
Напишите сценарий PHP, чтобы получить имена функций модуля XML.
31. Как узнать время последней модификации текущей страницы
Напишите PHP-скрипт, чтобы узнать время последней модификации текущей страницы.
32. Как поменять значения между двумя переменными PHP
Напишите программу PHP для обмена значениями между двумя переменными.