Курс программирования php с нуля. Основы основ PHP: обзор для начинающих
PHP (P HP: H ypertext P reprocessor , задумчивый препроцессор
Гипертекста ) - скриптовый язык программирования, oриентированный на web.
B 1 yрокe познакомимся с основным синтаксисом, а так же напишем свой первый скрипт.
Основы синтаксиса:
-...?> - начало и конец скрипта
оператор присваивания - =
Вывод текстовой информации - echo (может выводить html-код)
While(условие цикла){действие} - цикл
- if(условие){действие выполняемое при неверности условия}else{действие выполняемое при неверности условия} - условие
-
Урок 1. Создание первого скрипта
echo "Hello World"; //This is echo ?>
Как вы видите скрипт состоит из одной строчки.
Что бы выполнить скрипт необходимо соответствующее ПО, для пользователей Windows я рекомендую Denwer (http://denwer.ru)
После установки Denwera создаем в каталоге hosts папку Script.test, в которой в свою очередь создаем папку
WWW. В папке WWW создаем файл index.php? в который переносим содержимое нашего файла.
После сохранения файла перезапустите Denwer. Затем в строке браузера наберите script.test
И вауля! Мы видем надпись Hello World!
Как ненадо писать Hello World:
Hello World Не пишется так$a=0; if ($a=0){echo "Hello World"}; //This is echo ?>
Так:
$a="Hello World";
$count=count($a);
while($a[$b]!=""){echo $a[$b], b++}; //This is echo
?>
Ну уж точно не так:
if($_GET["oleg"] != ""){echo $_GET["oleg"]}else{header("Location: /?oleg="hello World"");}; //This is echo
?>
Завершение.
На этом наш урок подошел к концу, ну а в завершении небольшая подборка полезных ссылок:
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"; ?> ="Hello world"; ?> <% echo "Hello world"; %>
echo "Hello world" ; = "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
|
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 ) ; |
Несколько слов от авторов материалов:
Уроки 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 :
- 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 выбился в лидеры по популярности, чему есть несколько причин:
- Простота. Язык очень легко воспринимается, особенно начинающими программистами.
- Скорость разработки. Благодаря простоте и интуитивной понятности, PHP позволяет очень быстро создавать довольно сложные сайты.
- Наличие библиотек Существует огромное количество готовых примеров и библиотек классов. Созданы и проверены сотни библиотек, существенно упрощающих жизнь разработчика.
- Поддержка Практически любой сервер в Интернете поддерживает PHP
- Безопасность PHP позволяет создавать действительно защищённые сайты благодаря встроненной поддержке шифрования данных при хранении и передаче.
Однако за свои преимущества PHP платит некоторыми органичениями. Например, использовать PHP для доступа к системным функциям очень неудобно по сравнению с Perl или Python (поэтому многие сисадмины так любят Perl).Есть ещё несколько ограничений, о которых мы поговорим при изучении соответствующих разделов.