Курс программирования php с нуля. Основы основ PHP: обзор для начинающих

PHP (P HP: H ypertext P reprocessor , задумчивый препроцессор

Гипертекста ) - скриптовый язык программирования, oриентированный на web.

B 1 yрокe познакомимся с основным синтаксисом, а так же напишем свой первый скрипт.

Основы синтаксиса:

-
- начало и конец скрипта
оператор присваивания - =

Вывод текстовой информации - echo (может выводить html-код)

While(условие цикла){действие} - цикл
- if(условие){действие выполняемое при неверности условия}else{действие выполняемое при неверности условия} - условие
-

Урок 1. Создание первого скрипта

Как вы видите скрипт состоит из одной строчки.

Что бы выполнить скрипт необходимо соответствующее ПО, для пользователей Windows я рекомендую Denwer (http://denwer.ru)
После установки Denwera создаем в каталоге hosts папку Script.test, в которой в свою очередь создаем папку

WWW. В папке WWW создаем файл index.php? в который переносим содержимое нашего файла.

После сохранения файла перезапустите Denwer. Затем в строке браузера наберите script.test

И вауля! Мы видем надпись Hello World!

Как ненадо писать Hello World:

Hello World Не пишется так

Так:

Ну уж точно не так:

Завершение.

На этом наш урок подошел к концу, ну а в завершении небольшая подборка полезных ссылок:
denwer.ru - сайт откуда можно скачать Denwer
ru.wikipedia.org/wiki/PHP - Что такое PHP
http;//php.net - самоучитель по PHP

Теги: PHP

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

1. Подружитесь со справочником по PHP

Если вы новичок в PHP, значит, пришло время познакомиться с внушающим почтение справочником PHP. Справочник по PHP невероятно исчерпывающий и содержит действительно полезные комментарии к каждой статье. Перед тем, как задавать вопросы или пытаться самостоятельно разрешить проблему, сэкономьте время и просто возьмите курс на справочник. Ответы на ваши вопросы уже удобно разместились в полезной статье на сайте PHP.net.
В данном случае мы Вам рекомендуем поискать самостоятельно справочники на русском языке, лучше php для начинающих. Будем рады, если Вы дадите ссылке на полезные справочники в комментариях к статье (Просто учитывайте, что это перевод статьи).

2. Включите отчет об ошибках

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

Если вы не используете отступы и пробелы в коде, то результат выглядит, как картина Джексона Поллака (Jackson Pollack). Обеспечьте читаемость своего кода и нормальный поиск, потому что почти наверняка в будущем вы будете делать в нем изменения. IDE и современные текстовые редакторы могут автоматически делать отступы в коде.

7. Делайте код многоуровневым

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

8. Всегда используйте

Часто программисты пытаются использовать сокращения в операторах PHP. Вот как это обычно делается:

<% echo "Hello world"; %>

echo "Hello world" ;

<% echo "Hello world" ; %>

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

9. Используйте содержательные, последовательные названия

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

10. Комментируйте, комментируйте, комментируйте

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

11. Установите MAMP/WAMP

MySQL — самый популярный вид базы данных, используемый с PHP (хотя и не единственный). Если нужно настроить локальное окружение для разработки и тестирования ваших PHP-приложений на компьютере, предусмотрите установку MAMP (Mac) или WAMP (Windows). Установка MySQL на ваш собственный компьютер может стать утомительным процессом, а оба этих программных пакета содержат MySQL. Ловко и просто.

12. Установите лимиты своим скриптам

Установка лимита времени на PHP-скрипты – очень ответственная вещь. Бывают моменты, когда скрипты выходят из строя, и когда это произойдет, вам придется использовать свойство set_time_limit (установить лимит времени), чтобы избежать бесконечно повторяющихся циклов и истечения таймаутов времени соединения с базой данных. Set_time_limit устанавливает лимит времени на максимальное количество секунд, за которое выполняется скрипт (по умолчанию 30). По истечении этого времени возбуждается неустранимая ошибка.

13. Используйте объекты (или ООП)

Объектно-ориентированное программирование (ООП) использует объекты, чтобы представлять компоненты приложения. ООП – это не только способ разбить свой код на отдельные логические секции, оно также снижает количество повторений кода и делает намного более легким его модифицирование в будущем.

14. Поймите разницу между одинарными и двойными кавычками

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

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

15. Не ставьте phpinfo() в свой Webroot

Phpinfo – чудесная вещь. Просто создав PHP-файл, в котором есть:

и пристроив его где-нибудь на сервере, вы сможете незамедлительно узнавать все об окружении своего сервера. Тем не менее, множество новичков поместит файл, содержащий phpinfo() в webroot сервера. Это чрезвычайно небезопасная практика, и если чей-то пытливый ум получит доступ, он может потенциально сглазить ваш сервер. Убедитесь, что phpinfo() находится в безопасном месте, а в качестве дополнительной меры удалите его, как только закончите.

16. Никогда, никогда не доверяйте своим пользователям

Если в приложении есть места для входа пользователей, вы всегда должны предполагать, что кто-то попробует ввести сомнительный код. (Мы не подразумеваем, что ваши пользователи — плохие люди. Это просто здравый смысл.) Отличный способ уберечь свой сайт от хакеров – всегда инициализировать свои переменные для защиты сайта от XSS-атак. На PHP.net есть пример должным образом закрытой формы с инициализированными переменными:

if (correct_user ($_POST [ "user" ] , $_POST [ "password" ] ) {

$login = true ;

if ($login ) {

forward_to_secure_environment () ;

17. Храните пароли зашифрованными

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

echo md5("myPassword"); // renders -

echo md5 ("myPassword" ) ; // renders -

Возражение: Тем не менее, помните, что хэши MD5 уже давно скомпрометированы. Безусловно, они скорее безопасны, чем нет, но с помощью гигантской “спектральной таблицы” хакеры могут восстановить ваш хэш. Для обеспечения еще большей безопасности обдумайте возможность добавления «соли» (помех в виде «белого шума»). «Соль» – это обычно дополнительный набор символов, которые вы присоединяете к пользовательской строке.

18. Используйте инструменты визуализации баз данных

Если вам кажется сложным планировать и изменять базы данных для своих PHP-приложений, можно было бы рассмотреть возможность использования инструмента визуализации баз данных. Пользователи MySQL могут работать с DBDesigner и MySQL Workbench для визуального дизайна своих баз данных.

19. Используйте буферизацию вывода

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

Для активирования функции буферизации вывода просто добавьте ob_start() как здесь в начале файла.

Возражение: Хотя это и не требуется, обычно считается хорошей практикой просто взять и прикрепить функцию “ob_end_flush();” к концу документа. P.S. Хотите также сжать HTML? Просто смените “ob_start();”на “ob_start(‘ob_gzhandler’)”;

XHTML

untitled

untitled

20. Оберегайте свой скрипт от атаки SQL-injection

Если вы не отделяете (escape) символы, использующиеся в строках SQL, ваш код уязвим для атаки SQL-injection. Избежать этого можно, используя либо функцию mysql_real_escape_string (прим. перев. для отделения символов), либо подготовленные операторы SQL (prepared statements).

Вот пример mysql_real_escape_string в действии:

$username = mysql_real_escape_string($GET["username"]);

$username = mysql_real_escape_string ($GET [ "username" ] ) ;

И подготовленного оператора:

21. Попробуйте ORM

Если вы пишете объектно-ориентированный PHP, то можете использовать OR-mapping (ORM). ORM позволяет вам преобразовывать данные между реляционными базами данных и языками объектно-ориентированного программирования. Короче говоря, ORM дает возможность работать с базами данных таким же образом, каким вы работаете с классами и объектами в PHP.

Для PHP есть множество ORM-библиотек, таких как Propel, а также ORM встроен в фреймворки PHP, такие, как CakePHP.

22. Кэшируйте страницы, управляемые базой данных

Кэширование PHP-страниц, управляемых базой данных – отличная идея для улучшения скорости загрузки и производительности своего скрипта. В действительности не так уж трудно создать и извлечь статические файлы содержимого при помощи нашего доброго друга ob_start(). Вот пример, взятый со Snipe.net:

// TOP of your script $cachefile = "cache/".basename($_SERVER["SCRIPT_URI"]); $cachetime = 120 * 60; // 2 hours // Serve from the cache if it is younger than $cachetime if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile))) { include($cachefile); echo ""; exit; } ob_start(); // start the output buffer // Your normal PHP script and HTML content here // BOTTOM of your script $fp = fopen($cachefile, "w"); // open the cache file for writing fwrite($fp, ob_get_contents()); // save the contents of output buffer to the file fclose($fp); // close the file ob_end_flush(); // Send the output to the browser

// TOP of your script

$cachefile = "cache/" . basename ($_SERVER [ "SCRIPT_URI" ] ) ;

$cachetime = 120 * 60 ; // 2 hours

// Serve from the cache if it is younger than $cachetime

if (file_exists ($cachefile ) && (time () - $cachetime < filemtime ($cachefile ) ) ) {

include ($cachefile ) ;

» Начало. Отладка. » Урок № 1 - Самые основы. » Урок № 2 - Не много управления. » Урок № 3 - Знакомство с функциями. » Урок № 4 - Как читать документацию. » Урок № 5 - Математические функции » (скоро) Урок № 6 - Функции работы со строками » (скоро) Урок № 7 - Функции работы с массивами » Урок №8 - Работа с файлами. » Урок № 9 - Работа с базой данных и основы SQL. » Урок № 10 - Дата и время. » Урок № 11 - CURL » Урок № 12 - GD - работа с изображениями. » Урок № 13 - Красивый скрипт или стили программирования. » Урок № 14 - Безопасное программирование. » Приложение № 1 - Установка Apache, PHP и Mysql. » Приложение № 2 - Пара слов о проектировании баз данных. » Приложение № 3 - О регулярных выражениях.

Несколько слов от авторов материалов:

Уроки php совместными усилиями

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

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

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

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

А на кого нацелены эти уроки, для чего они такие вообще нужны?

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

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


Вперед >>>
Есть еще вопросы или что-то непонятно - добро пожаловать на наш

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

Зачем изучать php и MySQL?

Такой вопрос могут задавать лишь те, кто совсем не знаком со спецификой построения веб-пространства и ее современной основой. Любой мало-мальски сведущий в программировании человек скажет, что эти две дисциплины являются на сегодняшний день главенствующими во всемирной паутине. А это значит, что почти весь интернет построен на основе PHP и MySQL :


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

В современном веб-мире под движками понимают любую систему управления контентом (Content management system, CMS). Большая часть из них написана на PHP и MySQL.

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

Начнем с того, что не у многих хватает терпения, времени или сил заниматься изучением PHP и MySQL . К этому человек должен прийти сам. Но тот, кто решится постигнуть эти дисциплины, получит:

  • Востребованную профессию – на рынке труда толковые программисты всегда были нарасхват. Но даже неопытные новички с хорошими теоретическими знаниями PHP и небольшим опытом в веб-программировании смогут найти работу с достойной оплатой;
  • Удаленную работу – для того чтобы заниматься программированием не обязательно рано вставать, добираться на работу и соблюдать дресскод. Все это можно оставить за порогом, и создавать программный код, сидя дома в комнатных тапочках;
  • Экономию денег – если вы являетесь владельцем сайта, то конечно знаете, что услуги профессиональных веб-программистов стоят дорого. А для начинающего свое дело в интернете дорога каждая копейка. Самостоятельное обучение MySQL и PHP позволит сэкономить средства и пустить их в нужное русло.

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

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

  • Интересное хобби – веб-программирование это не только средство зарабатывания денег или их экономии. Это еще и увлекательное занятие, которое совмещает в себе как техническое начало, так и творческую составляющую.

Изучение PHP и MySQL для многих может стать средством самовыражения.

Что такое PHP

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

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


Популярность PHP объясняется его следующими характеристиками:
  • Поддержка большинства популярных СУБД (Систем Управления Базами Данных );
  • Автоматическая отправка заголовков HTTP ;
  • Встроенная поддержка работы с сессиями и cookies;
  • Средства работы с удаленными файлами;
  • Поддержка XForms (формы, созданные на основе XML );
  • Приближенность синтаксиса PHP к языку C;
  • Отсутствие строгой типизации – типизация переменных осуществляется динамически.

Типы данных – это то, с чего начинают изучение PHP

  • Поддержка ООП (объектно-ориентированного программирования );
  • Большой набор суперглобальных (предопределенных) массивов, предназначенных для работы с веб-пространством.

Что такое MySQL?

MySQL – это свободно распространяемая СУБД от компании Oracle . Вместе с бесплатной версией ведется разработка и коммерческих выпусков под заказ. Именно благодаря этому все новые разработки корпорации обязательно внедряются и в бесплатные выпуски СУБД :


Особенности СУБД MySQL :
  • Поддержка механизма репликации данных, начиная с первых выпусков MySQL .

Репликация – процесс синхронного копирования всех изменений источника сразу на нескольких его экземплярах. То есть любое действие над данными одной копии объекта отразиться и во всех остальных его образцах.

  • Поддерживается работа, как с локальными источниками, так и с удаленными;
  • Встроенная поддержка большого количества типов таблиц. Причем благодаря открытому коду список поддерживаемых типов таблиц увеличивается;
  • Широкий диапазон кроссплатформенности;
  • Размер таблиц баз данных MySQL ограничивается лишь возможностями операционной системы, на которой развернута СУБД ;
  • Поддержка большинства популярных языков программирования с помощью API (интерфейса прикладного приложения ).

Более подробную информацию о возможностях СУБД можно узнать из любого самоучителя или справочника по MySQL.

С чего начать?

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


Несколько оптимальных вариантов:
  • Apache HTTP Server – можно скачать на официальном сайте разработчика;
  • Денвер – наиболее оптимальный вариант для установки и дальнейшего использования. Пакет инсталляции включает в себя сервер Apache, PHP и MySQL . В первом варианте вам бы пришлось все это скачивать и устанавливать по отдельности.
  • XAMPP – набор, включающий в себя PHP и MySQL . А также встроенный самоучитель по PHP :
Оба набора включают в себя утилиту для создания и изменения баз данных на основе MySQL с помощью запросов на T-SQL . Но для написания кода на PHP понадобится редактор с поддержкой синтаксиса этого языка. Несколько наиболее подходящих вариантов:
  • PHPEdit ;
  • Microsoft WebMatrix ;
  • Kantharos PHP IDE ;
  • Adobe Dreamweaver .

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

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

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

Общие принципы

До начала изучения языка нужно однозначно определиться с терминологией и пониманием общих принципов работы сети Интернет. Начнём с принципов работы сети и сайтов.

Сеть Интернет состоит из огромного количества соединённых между собой компьютеров, маршрутизаторов и прочего железа, нужного для правильной работы. Каждый элемент сети Интернет (узел) обладает уникальным описателем - IP-адресом. Зная IP-адрес узла можно попробовать подключиться к нему, а имея небольшие навыки можно определить кому этот адрес принадлежит и в каком регионе мира находится. IP-адреса принято записывать в виде четырёх групп цифр, разделённых точками, например

192.168.100.003 или 10.10.0.123

Согласитесь, запомнить адреса всех часто посещаемых страниц - задачка не из лёгких. Поэтому в сети Интернет существуют специальные сервера DNS (Domain Name Resolution), на которых хранятся списки сопоставления IP-адресов и символьных имён. Именно благодаря эти серверам пользователь всегда попадает по нужному IP-адресу, набрав в браузере только имя странички.

После того, как мы ввёли в строку браузера имя нужной странички, браузер самостоятельно получает из DNS IP-адрес нужного сервера и посылает по этому адресу специальный запрос на получение странички (HTTP-запрос). Работающая на сервере специализированная программа (т.н. Web-сервер) обрабатывает этот запрос и возвращает в браузер требуемую страницу.

Очевидно, что все действия по отображению страницы можно однозначно разделить на две категории: выполняемые на стороне клиента (клиентский код или front-end ) и выполняемые на стороне сервера (серверный код или back-end ). Причем сервер ничего не знает о текущем состоянии клиента, а клиент - о текущем состоянии сервера. При разработке алгоритмов обмена надо всегда помнить об этом и своевременно передавать нужные данные, описывающие состояние или требуемое действие.

В зависимости от места применения различаются и средства реализации частей. На стороне клиента как правило используется только HTML, JavaScript (AJAX), CSS и Flash. Разработчики серверной части менее стеснены в средствах, т.к. большая часть существующих языков позволяет создавать или описывать HTML-страницы. Наиболее широко распространённы сейчас Java, Perl, PHP, Python, Ruby, C# и VB.NET. Каждый из них имеет свои сильные и слабые стороны, поэтому разработчик должен сделать выбор исходя из стоящих перед ним задач.

Почему именно PHP?

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

  1. Простота. Язык очень легко воспринимается, особенно начинающими программистами.
  2. Скорость разработки. Благодаря простоте и интуитивной понятности, PHP позволяет очень быстро создавать довольно сложные сайты.
  3. Наличие библиотек Существует огромное количество готовых примеров и библиотек классов. Созданы и проверены сотни библиотек, существенно упрощающих жизнь разработчика.
  4. Поддержка Практически любой сервер в Интернете поддерживает PHP
  5. Безопасность PHP позволяет создавать действительно защищённые сайты благодаря встроненной поддержке шифрования данных при хранении и передаче.

Однако за свои преимущества PHP платит некоторыми органичениями. Например, использовать PHP для доступа к системным функциям очень неудобно по сравнению с Perl или Python (поэтому многие сисадмины так любят Perl).Есть ещё несколько ограничений, о которых мы поговорим при изучении соответствующих разделов.