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

  • 18.06.2019

Язык программирования PHP - Учебный курс - Савельева Н.В. - 2006.

PHP, в настоящее время, – один из наиболее популярных языков для реализации веб-приложений. Данный курс посвящен изучению его основ. Акцент делается на практическое применение полученных навыков.
Язык PHP был создан для решения конкретной практической задачи в среде интернет (какой именно можно узнать, прочитав первую лекцию курса). Мы тоже постараемся не отвлекаться слишком сильно на теоретические рассуждения, и будем стремиться к решению какой-нибудь конкретной задачи в каждой из лекций. Большинство примеров взяты из реально существующей системы: виртуального музея истории информатики. Первая часть курса посвящена изучению основ синтаксиса и управляющим конструкциям. После этого рассматривается технология клиент-сервер, как основная сфера приложения языка PHP. Затем переходим к изучению наиболее полезных на наш взгляд встроенных функций и решению с их помощью практических задач. Хотя объектная модель в языке PHP не самая богатая, ее принципиальное наличие позволяет естественным образом описывать объектные модели данных. В качестве базовой модели будет рассмотрена модель документа виртуального музея информатики. После этого будет рассмотрен ряд прикладных аспектов: работа с файловой системой, с БД, строками, сессиями, DOM XML - все это позволит рассмотреть ключевые задачи практического использования языка.

PHP, MySQL для начинающих - Энди Харрис - 2005.

Эта книга поможет вам научиться программировать на РНР и создавать базы данных на MySQL. Если вашей целью является написание программ для веб-серверов, то эта книга для вас. Вы узнаете все основные концепции языков программирования, в частности, изучите команды и синтаксис языка РНР. Вы также узнаете, как в современных средах используются данные, кроме всего этого, также обучитесь самому процессу программирования.


Скачать и читать PHP, MySQL для начинающих - Энди Харрис

PHP - Обучение на примерах - Кухарчик А.

PHP - Обучение на примерах - Кухарчик А. - 2004.

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

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

Представляю Вашему вниманию вольный перевод статьи 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?

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

Говоря простыми и доступными словами, 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.