Программирование на php с нуля самоучитель. Личный опыт как доказательство: язык программирования PHP – главный в Сети

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

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

Что же такое PHP?

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

Говоря простыми и доступными словами, php это язык программирования, специально разработанный для создания сценария веб-приложения, который исполняется на web-сервере. Это достаточно востребованный язык программирования, так как 85% веб-сайтов используют его.

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

Обучаемся эффективно

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

Затем нам нужно скачать компилятор. Это программа, которая построчно считывает ваш скрипт как инструкцию и исполняет ее.

Наиболее распространенный компилятор это denver – простой и бесплатный пакет нужных программ, с помощью которых вы сможете писать скрипты. Если вы спросите мое мнение, то я бы посоветовал вам скачать Open Server. Он сейчас набирает обороты. Он на голову выше денвера и в нем вам будет удобнее работать.

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

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

Книги для обучения

Скажу сказу, я не фанат книг. Когда речь идет о интернет-технологиях. Это все равно что объяснять человеку из племени Масаи что такое wi-fi. Никакие рисунки не помогут нормально все понять. И тем не мене, я хочу предоставить вам небольшой список книг по php для чайников, которые котируются среди профессионалов.

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

PHP и MySQL. Разработка Web-приложений – отличная книга которая подойдет новичку. Первым делом автор покажет как настроить Apache (HTTP-сервер), PHP и MySQL (база данных), затем подскажет, как выбрать редактор кода. В книге рассматривается: синтаксис языка, самые полезные функции, создание собственного движка и ряда других функций.


В общем, ничего удивительного не правда ли? Но тем не менее это настоящий учебник с уникальной информацией, которую вы больше нигде не найдете. Это уже пятое издание, то есть никаких устаревших сведений не будет. Книга выпущена в 2015 году. Для того, чтобы начинать самому знакомиться с кодом – самое оно.

HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера – Это более детальный учебник по изучению php. В нем затрагиваются несколько других полезных , без которых полноценное создание веб приложений невозможно.

Читается достаточно легко, подходит для самостоятельного изучения и обучения студентов. Автор затрагивает такие темы как: основы php, динамическое формирования страницы при помощи CSS (каскадная таблица стилей), администрирование баз данных, создания динамических страниц при помощи JavaScript.


Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5 данную книгу я бы посоветовал более продвинутым читателям, которые уже обладают основными навыками HTML верстки. Если вы когда-либо изучали это, и еще помнете основные принципы тогда эта книга для вас.


PHP и MySQL. От новичка к профессионалу – и завершает наш обзор книга Кевина Янка, в ней автор делает сильный уклон на создание веб-приложений с базой данных.


Книга очень легкая, отлично подойдет для самостоятельного обучения.

Видео с YouTube

По своему опыту скажу что, обучатся php по роликам из ютуба достаточно сложно. Хоть они и кажутся простыми. В отличии от уроков по фотошопу, которые я обожаю, изучать языки программирования в ютубе просто невозможно. Даже видео длиной всего в 15 – 20 минут вызывает массу неудобств.

Такие видео могут отбить желание самому набирать код. Зачем, если за вас уже все сделал автор: набрал, запустил, показал на конкретном примере как все работает? В результате запомнить что-то практически невозможно.

Обучающий курс

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

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

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

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

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


Если вы мечтаете о том, чтобы научиться создавать сайты без , сами и на 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 ) ;

И снова здравствуйте. Давно я как-то не писал ничего путного, даже как-то самому неприятно. Так что сразу к теме. Давайте, товарищи умники, забудем такие слова, как XML, XHTML и прочий X…, и поговорим о вещах, приближенных к реальности.

Сужествует такая «проблема», как разделение оформления и содержания, и отделение исполняемого кода от получаемого html’я. Мухи - там, котлеты - тут. Грубо говоря, программист программирует, дизайнер дизайнит и никто никому не мешает жить. А если надо поменять что-то в оформлении, то сделать это сможет один оформитель, сиречь дизайнер, самостоятельно.

PHP хорош (хорош, собака!) тем, что позволяет встраивать исполняемые конструкции прямо в html. Плюсы понятны. Минусы, например: довольно сложно менять оформление в таком коде: echo « «.$boldtext.» «; Глупый дизайнер испугается и убежит, а умный программист скажет «я вам не глупый дизайнер, чтобы ерундой заниматься».

Чего хочется в идеале? Чтобы была html-страница, где все, как у людей: здоровые, полноценные html-тэги, а в тех местах, где выводится информация, стояли специальные, простые, понятные как для верстальщика, так и для движка/программиста указатели.

То есть, что-то вроде такого:

Там, где стоит , движок выводит заголовок, там, где - соответственно, текст.

Легко и просто. И все счастливы. И это правильно. Но! Тут и начинается маразм. Сначала пишется «движок шаблонов», что-то (я утрирую) вроде такого:

$page = str_replace ("", $title, $page); $page = str_replace ("", $text, $page);

Дальше - больше. Оказывается, что в некоторых случаях этого мало. Нужно больше функций! Например, нам нужно проверять: если пустой, то выводить одно, если не пустой, то выводить другое, то есть, фактически, вводить уже минимальную логику отображения. И мы пишем супер-пупер наророченый язык шаблонов. На PHP. И называем его SMARTASS (Super Mega And Revolutionary Totally Automatized Shablon System).

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

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

Поздравим друг друга. У нас получился PHP, написанный на PHP. Велосипед для велосипеда. Осмысление этого придет позже.

А теперь возвращаемся к первому примеру.

Помните? Сравним его со следующим примером и попробуем найти кардинальные различия.

<?=$title?>

Чем он кардинально отличается? Ни чем. Глупый верстальщик поймет, если ему сказать «нужно вставить переменную text - пиши » . Вместе с тем, это - не что иное, как сокращенная запись оператора echo. И никакого интерпретатора шаблонов не нужно.

То есть следующий пример php-страницы выведет все, как надо:

<?=$title?>

Идея понятна? В процессе исполнения php-скрипта нужные части выкладываем в переменные. Потом - инклюдим html-файл, где в нужных местах проставлено.

Верстальщику же, чтобы научиться работать с такими «шаблонами» , нужно всего 3–5 минут для ознакомления с основами синтаксиса PHP. И не надо учить какой-то навороченный язык шаблонов, который ему больше никогда не пригодится.

Ну что плохого в таком вот шаблоне страницы?

<?=strtoupper($title)?> Текста нет, пусто. Введеный текст:

Плюсы - налицо. Для его вывода не нужно никаких дополнительных вещей. Кроме PHP.

Вот, собственно, и все.

PS. Уважаемые умники. Данный способ «шаблонизации» действительно покрывает 95% нужд простых смертных. Если вам что-то не нравится - идите, побрейтесь бритвой Оккама.

Хорошо Плохо

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

Представляю Вашему вниманию вольный перевод статьи 30+ PHP Best Practices for Beginners

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

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

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

2. Включите вывод ошибок

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

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

7. Делайте код "ступенчатым"

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

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

Зачастую программисты пытаются использовать сокращенную форму объявления PHP скриптов. Вот несколько примеров:

<% echo "Hello world"; %>

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

9. Используйте осмысленные имена, в соответствии соглашением об именовании

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

10. Комментарии, Комментарии, Комментарии

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

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

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

12. Ограничивайте свои скрипты

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

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

14. Различайте двойные и одиночные кавычки

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

Замечание: На самом деле это не совсем так. Тесты показывают, что если строка не содержит переменных, то двойные кавычки дают выигрыш в производительности.

15. Не выкладывайте phpinfo() в вашей корневой директории сервера

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

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

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

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

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

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

Echo md5("myPassword"); // выведет -

Замечание: Имейте ввиду, что MD5 хеши уже научились взламывать. Они добавляют безопасности, однако атакующий может расшифровать хэш с помощью "радужных таблиц". Для повышения безопасности добавляйте "соль" (salt). "Соль" добавляет дополнительные символы к пользовательской строке.

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");

За дополнительной информацией обратитесь сюда

untitled

20. Защищайте скрипты от SQL-инъекций

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

Пример использования mysql_real_escape_string:

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

и подготовленной строки:

$id = $_GET["id"]; $statement = $connection->prepare("SELECT * FROM tbl_members WHERE id = ?"); $statement->bind_param("i", $id); $statement->execute();

Используя подготовленные конструкции мы предотвращаем прямую запись пользовательских данных в запрос. Вместо этого мы используем, метод "bind_param" для связывания значений с переменными в запросе. Более безопасно, быстрее, особенно при выполнении нескольких операторов CRUD (create read update delete - "Создание чтение обновление удаление" - прим.) за раз.

21. Используйте ORM

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

Одна из многих ORM-библиотек для PHP Propel , а так же ORM присутствует в PHP-фрейворках, например в CakePHP .

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

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

// начало скрипта $cachefile = "cache/".basename($_SERVER["SCRIPT_URI"]); $cachetime = 120 * 60; // 2 часа // используем кэш, если значение меньше $cachetime if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile))) { include($cachefile); echo ""; exit; } ob_start(); // начало буферизованного вывода // ваш скрипт и HTML должен быть здесь // конец скрипта $fp = fopen($cachefile, "w"); // открываем файл кэша для записи fwrite($fp, ob_get_contents()); // сохраняем содержимое буферизованного вывода в файл fclose($fp); // закрываем файл ob_end_flush(); // отправляем данные браузеру

Эта часть кода использует кэшированную версию страницы, если страница не "старше" 2х часов.

23. Используйте системы кэширования

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

  • Netbeans есть возможность профилирования PHP.

    27. Стандарты кодирования

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

    28. Держите функции вне циклов

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

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

    29. Не плодите переменные

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

    $description = strip_tags($_POST["description"]); echo $description;

    Echo strip_tags($_POST["description"]);

    Замечание: Говоря на счет удвоения расхода памяти, на самом деле заблуждение. PHP реализует управление памятью на основе подхода "копирование при записи". Это означает, что вы можете присвоить одно значение нескольким переменным и не беспокоится, что данные будут дублироваться в памяти. Можно поспорить, что "хороший" пример удачный пример хорошего кода, однако он точно не быстрее.

    30. Обновляйтесь до последней версии PHP

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

    31. Уменьшайте количество запросов в базе данных

    Чем меньше запросов к базе данных тем больше производительность PHP-скрипта. Такие утилиты как Stace (Unix) и Process Explorer (Windows) позволят найти избыточные процессы и устранить их.

    32. Не бойтесь спрашивать

    Только люди пытаются скрыть факт своего не знания в определенной области. Никто не хочет показаться глупым! Но как мы можем учиться не спрашивая? Чувствуйте себя свободнее используя форумы и IRC StackOverflow , спрашивайте у бывалых PHP разработчиков. На сайте PHP есть страница

От автора: необходимо ли знать язык программирования PHP? Если собираетесь связать свою судьбу с сайтостроением, то придется. Даже если очень не хочется! Почему так? На все распространенные «почему», связанные с этим языком, мы попытаемся ответить в нашем материале.

Раствор, который «скрепляет» интернет

Именно так охарактеризовал PHP один мой знакомый, занимающийся созданием интернет-ресурсов уже более десятка лет. И он прав, наверное, процентов на 200% (а может и больше).

Сама история возникновения данного языка говорит о том, что он был рожден, чтобы «слепить» нынешнюю версию Сети, к которой мы так привыкли. Наверное, поэтому некоторые так и не могут осознать его мощь, даже после изучения основ программирования PHP.

Доказывать роль PHP в создании интернет – вещь неблагодарная. Тут, как говорится, могут начать выступать сторонники других серверных языков. Мол, «препроцессор гипертекста» (так расшифровывается аббревиатура PHP) уже отжил свое. Многие из его функций реализованы даже в …

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

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

Если вас интересует, почему так скаканул Java, то отвечу: благодаря мобильной операционке Android, приложения под которую разрабатываются на этом языке.

Собственные грабли

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

Как язык программирования PHP для начинающих я не рассматривал в принципе. Он казался чересчур запутанным. Вот другое дело ASP.NET: коммерческий язык, основанный на C#. Ох, какие воздушные замки я тогда строил! И для этого были все предпосылки:

Технология разработана таким «гигантом мысли», как Microsoft.

Наличие специализированного ПО – мощного редактора Visual Studio.

Обширная и хорошо описанная документация.

Надежда на «здоровое» будущее.

ASP.NET в отличие от PHP давался мне намного легче. Visual Studio автоматизировала большое количество операций по написанию серверных скриптов. Например, благодаря отличному визуальному редактору на создание веб-страницы уходило всего несколько минут. Путем перетаскивания элементов управления и прописыванием в редакторе их стилей можно было сделать сайт меньше чем за час!

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

В общем, занялся я ASP.NET. Состряпал первый свой сайтик. Ну, в среде разработки вроде все функционирует. Кроссбраузерность проверил в нескольких популярных браузерах. Думаю, пришло время и «повоевать». Так сказать, показать свое «детище» всей стране (как минимум). Вот тут и оказались» грабли».

Мои попытки найти в Рунете хостинг с поддержкой ASP.NET так и не увенчались успехом. Было, конечно, несколько платных площадок, но цены за размещение на них сайта были явно не «студенческие».

Кое-как нарыл я в «Буржунете» бесплатный вариант хостинга (кстати, спонсируемого Microsoft). Ну «поклацал», насладился широтой своей мысли, а дальше дело не пошло. И все из-за того, что большая часть сайтов уже тогда делалась на PHP.

После того, как определитесь и точно поймете, что готовы изучать PHP язык программирования, поищите самоучитель для новичков «под себя». Главное, чтобы вы понимали, что автор издания хочет донести своим читателям. Сразу приготовьтесь «отвалить» хорошую сумму за качественную литературу.

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

Когда вы будете набирать примеры скриптов самостоятельно, то быстрее привыкните и запомните особенности синтаксиса PHP. Что касается литературы, то выбирайте самоучитель с основами программирования на PHP. И желательно, чтобы автор выкладывал код всех приводимых примеров на своем ресурсе в Сети.

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

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



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: