Содержание
- 1 Для чего нужен PHP
- 2 Что такое PHP скрипт
- 3 Будущее PHP: восьмая версия
- 4 Первое свойство: интерпретируемость
- 5 Подключение PHP-скриптов (файлы с расширением *.php) к сайту
- 6 PHP Exam — Get Your Diploma!
- 7 W3Schools’ Online Certification
- 8 Как получить часть строки (подстроку)
- 9 День недели и месяц по-русски на PHP
- 10 Функции в PHP
- 11 PHP — Overriding Inherited Methods
- 12 Установите MAMP/WAMP
- 13 PHP — What is Inheritance?
- 14 PHP Case Sensitivity
- 15 С чего начать изучение
- 16 Округление дробных чисел
- 17 Мифы о PHP
- 18 PHP MySQLi Functions
- 19 Как получить ключи или значения ассоциативного PHP массива
- 20 Плюсы, минусы и особенности PHP
- 21 Кэшируйте страницы, управляемые базой данных
- 22 Общий обзор языка программирования PHP
- 23 Удаление символов на концах строки
- 24 PHP — Static Methods
- 25 PHP $_GET
Для чего нужен PHP
Собирать страницы из модулей. Если помните, PHP-код можно встраивать в HTML-страницы, а можно сохранять как отдельные файлы. В этом случае мы получаем мини-модули, каждый из которых отвечает за что-то одно. Например, в одном мы пишем, как будет выглядеть шапка сайта, в другом — меню, третий файл будет отвечать за подвал, четвёртый — за блок с отзывами о товарах.
<div>
<? include(«/includes/»); ?>
Тут можно вставить ссылку на модуль карточки товара или заполнить раздел информацией вручную. Но лучше модулем, как выше и ниже.
<? include(«/includes/»); ?>
</div>
PHP возьмёт файл header.php, в котором мы написали, как должна выглядеть шапка сайта, и поставит её в начало страницы. То же самое сделает и с подвалом — файлом footer.php, и так будет на каждой странице товара. Получается, что нам не нужно писать один и тот же код шапки и подвала на каждой странице, достаточно сделать это в одном месте, а потом подключать одной строчкой.
Создавать CMS и движки для сайтов. Такие модульные возможности PHP привели к тому, что большинство современных систем управления контентом на сайтах написаны на PHP. Смотрите сами:
Если вы на бесплатном хостинге используете какой-то инструмент для создания или поддержки сайта, скорее всего, он тоже будет написан на PHP.
Работать с формами и данными на странице. HTML плохо умеет работать с формами и отправлять куда-то данные, которые вы вводите в поля регистрации. PHP справляется с этим гораздо лучше: вы говорите, из какого поля что нужно взять и по какому адресу отправить, а всё остальное интерпретатор делает за вас.
Запоминать пользователей и делать формы авторизации. Если вам нужно быстро написать свою форму регистрации на сайте или запоминать посетителей даже без регистрации, то PHP — самый простой вариант решения этой задачи. Единственное, что нужно знать — как работать с базами данных, где хранятся записи о пользователях, потому что PHP это тоже умеет.
Что такое PHP скрипт
PHP-скрипт — это обычный текстовый файлик с расширением .php. Точно такой же, как html и css.
Но есть одно важное отличие:
Скрипты запускаются только через http-запросы в браузере. Это значит, что для запуска скрипта script.php необходимо в адресной строке браузера написать site.ru/script.php
Если скрипт не работает — проверь текущий URL. Если там будет что-то вроде file:///D:/openserver/domains/site.ru/script.php — это значит, что ты пытаешься не перейти на страницу сайта, а открыть сам PHP файлик в браузере. Это неправильно.
Веб-серверы чаще всего настроены так, что при заходе на главную страницу (например site.ru) автоматически запускается файл index.php или index.html, лежащий в корне сайта.
Создай в корневой папке сайта файл с названием index.php и открой его в своём текстовом редакторе. При наличии файла index.html его нужно удалить.
Если у тебя пока нет текстового редактора — рекомендую лёгкий и бесплатный Notepad++, он гораздо удобней встроенного в Windows блокнота.
Обязательно следи за кодировкой скриптов. Кодировка должна быть либо UTF-8 без BOM (если такая доступна в твоём редакторе), либо просто UTF-8.
Выбор кодировки в Notepad++
Будущее PHP: восьмая версия
Главная задача — сделать PHP быстрым при сохранении гибкости динамического языка. Разработчики понимают, что в дальнейшем нужно приходить к статической типизации. Сейчас рассматривают опциональный вариант, когда ее можно включать в определенных частях скрипта. Это наилучший путь из возможных.
Восьмая версия появится ориентировочно в 2020–2022 годах. На open source-платформах изменения принимаются общим голосованием совета разработчиков. Сейчас идет тестирование нововведений в PHP 8.
В мире PHP ничего не происходит без движения сообщества.
Расмус Лердорф
создатель PHP
Статическую типизацию планировали ввести в седьмой версии, но она не прошла голосование: нашлись изъяны. Ошибки исправили, и теперь мир разработки ждет возможность ее отключения одной командой в коде.
PHP частично написан на языке С, и в восьмой версии хотят полностью отойти от него. Также реализуют работу с матрицами: она ускорится в пять раз по сравнению с седьмой версией.
Первое свойство: интерпретируемость
Главная характеристика PHP — интерпретируемость. В отличие от Java, которая компилируется, а затем запускается в работу, PHP создается во время обращения к нему. Человек открывает сайт, на сервер посылается запрос, и в это время компилируется код. Каждый скрипт компилируется в реальном времени, а затем выполняется.
Приводим пример кода:
<?php /** * Класс для сохранения файлов, кроме изображений */ class Application {protected $_image = null; // файл, с которым нужно работать /** * метод сохраняет файл на диск * * string $path — путь к файлу новый * srting $imagePath — путь старый * boolean */ public function saveFile($imagePath, $path){ $result = file_get_contents($imagePath, $path); $nameDir = explode(‘/’,$path); $newNameDir= ‘files/’.$nameDir.’/’.$nameDir.’/’.$nameDir; mkdir($newNameDir, 0777, true); $resultWrite = file_put_contents($path, $result); return $resultWrite; } }
Благодаря этому свойству PHP — очень гибкий язык. Например, Java-программист вводит название класса один раз — теперь оно неизменно. PHP же компилируется в рантайме RuntimeСреда выполнения компьютерной программы. и можно подставить любое название класса из переменной.
Однако ради гибкости разработчик жертвует скоростью работы сайта. В случае с Java программу создают, а затем запускают. В случае с PHP приходится занимать время пользователя на процесс компиляции кода.
Подключение PHP-скриптов (файлы с расширением *.php) к сайту
Подключение PHP-скриптов осуществляется уже тремя способами:
1
Первый – это та же вставка кода в саму страницу сайта (обратите внимание, что если вы имеете страницу с расширением *.html – вам необходимо сменить расширение на *.php) с помощью тегов:. 2
С помощью файла (в таком случае подключение можно осуществлять и на странице с *.html расширением):
2. С помощью файла (в таком случае подключение можно осуществлять и на странице с *.html расширением):
Но для работы этого способа в файл .htaccess, который находится в корне вашего сайта, в самый верх, необходимо добавить эти строки:
Если такого файла нет на хостинге — создайте его через любой текстовый редактор.
3. Третье – с помощью JS-скрипта. В этом случае вы также можете получить результат выполненного PHP-скрипта на сервере.
Реализация будет следующая:
Где «.result» – это класс, куда будут грузиться данные, а «/main.php», соответственно, адрес до PHP-скрипта.
Если вы грузите данные с другого сервера, то поддержка PHP на вашем сервере не обязательна. Не забывайте подключить к вашему сайту библиотеку jQuery.
Здесь правила абсолютно те же: полный адрес к файлу, если он находится на внешнем сервере, относительный – если на вашем.
Обратите внимание! Если вы хотите подключить PHP-скрипт к вашему сайту, то на сервере должна быть поддержка PHP. О том, есть ли у вас такая возможность – узнайте у своего хостинг-провайдера
Если вы осуществляете подключение скриптов первый раз – попробуйте подключить скрипты из архива, который прикреплен в конце статьи. Если в обоих случаях вы получили сообщение «Hello World!» – значит, вы все сделали правильно.
PHP Exam — Get Your Diploma!
W3Schools’ Online Certification
The perfect solution for professionals who need to balance work, family, and career building.
More than 25 000 certificates already issued!
The HTML Certificate documents your knowledge of HTML.
The CSS Certificate documents your knowledge of advanced CSS.
The JavaScript Certificate documents your knowledge of JavaScript and HTML DOM.
The Python Certificate documents your knowledge of Python.
The jQuery Certificate documents your knowledge of jQuery.
The SQL Certificate documents your knowledge of SQL.
The PHP Certificate documents your knowledge of PHP and MySQL.
The XML Certificate documents your knowledge of XML, XML DOM and XSLT.
The Bootstrap Certificate documents your knowledge of the Bootstrap framework.
Как получить часть строки (подстроку)
Чтобы получить подстроку можно использовать: , или .
Все эти функции одинаковые, если нужно обрабатывать латиницу. А отличия начинаются когда нужно обработать например кириллицу или другой язык, тут подходят только: и , потому что в них можно указать кодировку и они работают с символами в указанной кодировке.
Однако нужно знать, что скорость их работы в разы ниже: работает с одинаковой скоростью для строки любой длинны. А вот и работают тем медленнее чем длине строка в них указывается… В среднем они в 5-10 раз медленнее, однако альтернатив нет, если нужно обработать кириллицу, придется использовать их…
// синтаксис: // mb_substr ( $string, $start, $length, $encoding ) $str = "Поиск текстов"; // 3 символа начиная с третьего (отсчет идет от нуля) $sub_1 = mb_substr( $str, 2, 3 ); // обычно кодировку указывать не обязательно... // Берем подстроку, начиная с первого символа и до третьего с конца $sub_2 = mb_substr( $str, 6, -2, 'utf-8' ); // результат echo $sub_1 .' - '. $sub_2; //> бой - текст
Всевозможные варианты:
// Латиница $str = 'abcdef'; echo substr( $str, 1); // bcdef echo substr( $str, 1, 3); // bcd echo substr( $str, 0, 4); // abcd echo substr( $str, 0, 8); // abcdef echo substr( $str, -1, 1); // f // Кириллица $str = 'абвгдеж'; echo mb_substr( $str, 1); // бвгдеж echo mb_substr( $str, 1, 3); // бвг echo mb_substr( $str, 0, 4); // абвг echo mb_substr( $str, 0, 8); // абвгдеж echo mb_substr( $str, -1, 1); // ж // с указанием кодировки, обычно это не обязательно echo mb_substr( $str, 1, null, 'utf-8'); // бвгдеж echo mb_substr( $str, 1, 3, 'utf-8'); // бвг echo mb_substr( $str, 0, 4, 'utf-8'); // абвг echo mb_substr( $str, 0, 8, 'utf-8'); // абвгдеж echo mb_substr( $str, -1, 1, 'utf-8'); // ж // iconv_substr(), обычно для нее нужно указать кодировку // iconv_* медленнее чем mb_* echo iconv_substr( $str, 1, 9999999, 'utf-8'); // бвгдеж echo iconv_substr( $str, 1, 3, 'utf-8'); // бвг echo iconv_substr( $str, 0, 4, 'utf-8'); // абвг echo iconv_substr( $str, 0, 8, 'utf-8'); // абвгдеж echo iconv_substr( $str, -1, 1, 'utf-8'); // ж
День недели и месяц по-русски на PHP
В php, функция , умеет выводить дату и время в огромном количестве форматов, но, к сожалению, вывод по-русски не предусмотрен. Поэтому для вывода дня недели или месяца по-русски, необходимо написать свою функцию.
Месяц по-русски
/** * функция для получения названия месяца по-русски. * * @param integer Номер месяца, необязательный параметр, если параметр не задан, * то функция вернет название текущего месяца. * @return string Название месяца */ function get_rus_month( $num_month = 0 ) { // если не задан номер месяца if( ! $num_month ) { $num_month = date('n'); // номер текущего месяца } // массив с названиями месяцев $monthes = array('', 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'); return $monthes; } // пример использования echo get_rus_month(1); // Январь echo get_rus_month(); // Апрель
День недели
## получает день недели по-русски function get_rus_day(){ $days = array('Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота' ); // номер дня недели: с 0 до 6. 0 - воскресенье, 6 - суббота $num_day = date('w'); return $days; } // пример использования echo get_rus_day(); //> Среда
—
Есть что добавить? Милости прошу в комментарии…
Функции в PHP
Функция — это команда, которая выполняет какие-либо действия, например расчёты, управление файлами и т.д.
Определить функцию просто — у неё после названия идут круглые скобки:
Функция phpinfo() выводит на экран информацию с текущими настройками PHP.
Результат работы функции phpinfo
Некоторые функции ожидают, что им передадут какое-нибудь значение. Например, функция округления ceil() ожидает число, которое она округлит:
Функция ceil() получает переданное нами значение 91.5, обрабатывает его (округляет до 92) и возвращает результат. А команда echo получает возвращённое функцией значение и выводит его на экран. Результатом работы этого скрипта будет 92.
Функции будут подробно рассмотрены в отдельном уроке.
PHP — Overriding Inherited Methods
Inherited methods can be overridden by redefining the methods (use the same name) in the child class.
Look at the example below. The __construct() and intro() methods in the child class (Strawberry) will override the __construct() and intro() methods in the parent class (Fruit):
Example
<?phpclass Fruit { public $name; public $color; public function __construct($name, $color) { $this->name = $name; $this->color = $color; } public function intro() { echo «The fruit is {$this->name} and the color is {$this->color}.»; }}class Strawberry extends Fruit { public $weight; public function __construct($name, $color, $weight) { $this->name = $name; $this->color = $color; $this->weight = $weight; } public function intro() { echo «The fruit is {$this->name}, the color is {$this->color}, and the weight is {$this->weight} gram.»; }}$strawberry = new Strawberry(«Strawberry», «red», 50);$strawberry->intro();?>
Установите MAMP/WAMP
MySQL — самый популярный вид базы данных, используемый с PHP (хотя и не единственный). Если нужно настроить локальное окружение для разработки и тестирования ваших PHP-приложений на компьютере, предусмотрите установку MAMP (Mac) или WAMP (Windows). Установка MySQL на ваш собственный компьютер может стать утомительным процессом, а оба этих программных пакета содержат MySQL. Ловко и просто.
12. Установите лимиты своим скриптам
Установка лимита времени на PHP-скрипты – очень ответственная вещь. Бывают моменты, когда скрипты выходят из строя, и когда это произойдет, вам придется использовать свойство set_time_limit (установить лимит времени), чтобы избежать бесконечно повторяющихся циклов и истечения таймаутов времени соединения с базой данных. Set_time_limit устанавливает лимит времени на максимальное количество секунд, за которое выполняется скрипт (по умолчанию 30). По истечении этого времени возбуждается неустранимая ошибка.
PHP — What is Inheritance?
Inheritance in OOP = When a class derives from another class.
The child class will inherit all the public and protected properties and methods from the parent class. In addition, it can have its own properties and methods.
An inherited class is defined by using the keyword.
Let’s look at an example:
Example
<?phpclass Fruit { public $name; public $color; public function __construct($name, $color) { $this->name = $name; $this->color = $color; } public function intro() { echo «The fruit is {$this->name} and the color is {$this->color}.»; }}// Strawberry is inherited from Fruitclass Strawberry extends Fruit { public function message() { echo «Am I a fruit or a berry? «; }}$strawberry = new Strawberry(«Strawberry», «red»);$strawberry->message();$strawberry->intro(); ?>
Example Explained
The Strawberry class is inherited from the Fruit class.
This means that the Strawberry class can use the public $name and $color properties as well as the public __construct() and intro() methods from the Fruit class because of inheritance.
The Strawberry class also has its own method: message().
PHP Case Sensitivity
In PHP, keywords (e.g. , , , , etc.), classes, functions, and user-defined functions are not case-sensitive.
In the example below, all three echo statements below are equal and legal:
Example
<!DOCTYPE html> <html> <body> <?php ECHO «Hello World!<br>»;echo «Hello World!<br>»; EcHo «Hello World!<br>»;?> </body> </html>
Note: However; all variable names are case-sensitive!
Look at the example below; only the first statement will display the value of the variable! This is because , , and are treated as three different variables:
Example
<!DOCTYPE html> <html> <body> <?php$color = «red»; echo «My car is » . $color . «<br>»;echo «My house is » . $COLOR . «<br>»;echo «My boat is » . $coLOR . «<br>»;?> </body> </html>
С чего начать изучение
PHP легко изучить самостоятельно за счет низкого порога входа. Буквально за вечер можно прочитать документацию и написать скрипт, который будет возвращать данные на сайт. Другие языки (C#, Java) имеют более высокий порог вхождения, и одного дня мало, чтобы создать работающий код. Сегодня на российском рынке труда из-за низкого порога входа PHP-кодеров много, и большинство — невысокого уровня.
Хороший разработчик PHP фактически применяет те же паттерны программирования, что и в статически типизированных языках. На PHP даже сложнее программировать, и вот почему. Если в Java или C# допустить алгоритмическую ошибку, например, присвоить переменной не тот тип, — они «дадут по рукам». PHP же это пропустит, и программист сломает голову: что не так? Ведь все работает, но неправильно. Из-за этого на современном рынке хорошим программистам PHP готовы платить чек не ниже, чем другим разработчикам. Но хорошего специалиста сложно найти.
Чтобы учить язык, нужно задать себе вопрос: «Для чего он мне?» Учить ради процесса учебы — бесполезно, ведь без практического применения знания забудутся. Нужно поставить конкретную задачу и искать решение.
Начинайте изучать PHP в интернете: сегодня выпускается много видеоуроков, онлайн-лекций и тренажеров. Рекомендуем наш курс «PHP-разработчик», где вы прокачаете свой уровень с нулевого до профессионального.
Курс «PHP-разработчик» Обширная программа для изучения PHP, состоящая из4 курсов. Поможет с нуля овладеть популярным языком программирования, устроиться в IT-компанию вашей мечты или стать независимым разработчиком.
- Живая обратная связь с преподавателями
- Неограниченный доступ к материалам курса
- Стажировка в компаниях-партнёрах
- Дипломный проект от реального заказчика
- Гарантия трудоустройства в компании-партнёры для выпускников, защитивших дипломные работы
Округление дробных чисел
Округление до целых
Чтобы округлить число в php существует несколько функций:
-
— округляет число в большую или меньшую сторону в зависимости от значения дробной части. Если дробная часть больше или равна пяти, то округлит в большую сторону, иначе в меньшую.
-
— независимо от дробной части, округляет в большую сторону.
- — независимо от дробной части, округляет в меньшую сторону.
// round echo round( 5.2 ); //> 5 echo round( 5.5 ); //> 6 echo round( 5.6 ); //> 6 // ceil echo ceil( 5.1 ); //> 6 // floor echo floor( 5.9 ); //> 5
Округление до дробных
Для округления чисел, до определенного количество знаков после запятой, используем функцию . Во втором параметре нужно указать сколько оставить знаков после запятой.
echo $round = round( 5.555, 1 ); //> 5.6 echo $round = round( 5.555, 2 ); //> 5.56
Округление последнего числа происходит как в математики: если следующее больше или равно 5 то в большую сторону, в остальных случаях в меньшую…
Мифы о PHP
Перейдём к мифам. Их, как и вокруг любой популярной технологии, скопилось немало, но мы остановимся на четырёх самых интересных.
1. PHP — решето
«Программы на PHP небезопасны» — распространённый повод для критики PHP.
Важно понимать, что безопасность приложения зависит от разработчика и его профессионального уровня, а плохой код можно написать на любом языке программирования. Но в примере с веб-приложениями некачественный код может привести не только к потере производительности, но и к проблемам с безопасностью
Кстати, на курсе «Профессиональный PHP, уровень 1» мы сразу объясняем студентам только «лучшие практики» разработки на PHP, в том числе подробно затрагиваем и вопросы безопасности.
Конечно, иногда уязвимости находят и на уровне ядра PHP, но с другими языками происходит то же самое. Исследователи и хакеры ищут, а авторы языка быстро реагируют на такие проблемы, оперативно исправляют ошибки и закрывают уязвимости.
2. PHP медленный
Вопрос производительности любой технологии всегда вызывает бурные дискуссии.
Facebook, Wikipedia и «ВКонтакте» строят на PHP приложения разного масштаба, а скорость их работы может легко оценить любой наш читатель. При этом повышение производительности всегда стоит среди приоритетных задач разработчиков. Например, при переходе с версии 5.6 на 7 производительность PHP выросла от 15 до 20%. В последних, минорных версиях языка, работа над повышением скорости исполнения кода продолжается.
3. Технология X скоро вытеснит PHP
Миф о серебряной пуле особенно любят муссировать в IT-сообществе: технология X скоро вытеснит Y, и тому подобное. Инструментов, с помощью которых можно выполнять те же самые задачи, что и на PHP, много: JavaScript, Ruby, Python, C#, да и мало ли что ещё.
У каждой технологии есть свои фанаты и хейтеры, с любой из них можно писать плохой код или делать шедевры. Вопрос в другом.
PHP популярен уже много лет, и на нём работают продукты многих больших компаний. Это хорошее доказательство того, что язык востребован и будет востребован ещё долгое время. Здесь, конечно, меньше ажиотажа, чем в JavaScript-фреймворках, но PHP находится в зрелой стадии своего развития: эволюция вместо революции. Регулярно выходят новые версии, фреймворки развиваются, и вся экосистема в целом растёт.
А серебряной пули вообще не существует. Мы советуем своим читателям более прагматично относиться к выбору языка разработки: не слепо следовать моде, а здраво оценивать все плюсы и минусы.
4. На PHP пишут плохой код
Плохой код можно написать на любом языке программирования, и PHP здесь не исключение. Странно скрывать, что на нём действительно написано много плохого кода.
Начать программировать на PHP очень просто. Начинающий программист может легко решить многие задачи, но код будет с нюансами и вообще так себе. Помните — качество кода в первую очередь зависит от разработчика, его опыта и навыков. Чем он опытней, тем более качественный код напишет.
Вторая причина, почему о коде на PHP говорят гадости: этот язык был пионером среди инструментов для массового создания веб-приложений. Задачи, которые решались с помощью PHP, опережали развитие языка, и это тоже приводило к появлению грязных хаков и не очень хорошего кода.
К счастью всех нас, те времена давно прошли, и появилась культура написания хорошего кода. Теперь у нас есть руководства по стилю, стандарты кодирования, линтеры и другие вещи, которые помогают писать хорошо.
PHP MySQLi Functions
Function | Description |
---|---|
affected_rows() | Returns the number of affected rows in the previous MySQL operation |
autocommit() | Turns on or off auto-committing database modifications |
begin_transaction() | Starts a transaction |
change_user() | Changes the user of the specified database connection |
character_set_name() | Returns the default character set for the database connection |
close() | Closes a previously opened database connection |
commit() | Commits the current transaction |
connect() | Opens a new connection to the MySQL server |
connect_errno() | Returns the error code from the last connection error |
connect_error() | Returns the error description from the last connection error |
data_seek() | Adjusts the result pointer to an arbitrary row in the result-set |
debug() | Performs debugging operations |
dump_debug_info() | Dumps debugging info into the log |
errno() | Returns the last error code for the most recent function call |
error() | Returns the last error description for the most recent function call |
error_list() | Returns a list of errors for the most recent function call |
fetch_all() | Fetches all result rows as an associative array, a numeric array, or both |
fetch_array() | Fetches a result row as an associative, a numeric array, or both |
fetch_assoc() | Fetches a result row as an associative array |
fetch_field() | Returns the next field in the result-set, as an object |
fetch_field_direct() | Returns meta-data for a single field in the result-set, as an object |
fetch_fields() | Returns an array of objects that represent the fields in a result-set |
fetch_lengths() | Returns the lengths of the columns of the current row in the result-set |
fetch_object() | Returns the current row of a result-set, as an object |
fetch_row() | Fetches one row from a result-set and returns it as an enumerated array |
field_count() | Returns the number of columns for the most recent query |
field_seek() | Sets the field cursor to the given field offset |
get_charset() | Returns a character set object |
get_client_info() | Returns the MySQL client library version |
get_client_stats() | Returns statistics about client per-process |
get_client_version() | Returns the MySQL client library version as an integer |
get_connection_stats() | Returns statistics about the client connection |
get_host_info() | Returns the MySQL server hostname and the connection type |
get_proto_info() | Returns the MySQL protocol version |
get_server_info() | Returns the MySQL server version |
get_server_version() | Returns the MySQL server version as an integer |
info() | Returns information about the last executed query |
init() | Initializes MySQLi and returns a resource for use with real_connect() |
insert_id() | Returns the auto-generated id from the last query |
kill() | Asks the server to kill a MySQL thread |
more_results() | Checks if there are more results from a multi query |
multi_query() | Performs one or more queries on the database |
next_result() | Prepares the next result-set from multi_query() |
options() | Sets extra connect options and affect behavior for a connection |
ping() | Pings a server connection, or tries to reconnect if the connection has gone down |
poll() | Polls connections |
prepare() | Prepares an SQL statement for execution |
query() | Performs a query against a database |
real_connect() | Opens a new connection to the MySQL server |
real_escape_string() | Escapes special characters in a string for use in an SQL statement |
real_query() | Executes a single SQL query |
reap_async_query() | Returns result from an async SQL query |
refresh() | Refreshes/flushes tables or caches, or resets the replication server information |
rollback() | Rolls back the current transaction for the database |
select_db() | Select the default database for database queries |
set_charset() | Sets the default client character set |
set_local_infile_default() | Unsets user defined handler for load local infile command |
set_local_infile_handler() | Set callback function for LOAD DATA LOCAL INFILE command |
sqlstate() | Returns the SQLSTATE error code for the error |
ssl_set() | Used to establish secure connections using SSL |
stat() | Returns the current system status |
stmt_init() | Initializes a statement and returns an object for use with stmt_prepare() |
store_result() | Transfers a result-set from the last query |
thread_id() | Returns the thread ID for the current connection |
thread_safe() | Returns whether the client library is compiled as thread-safe |
use_result() | Initiates the retrieval of a result-set from the last query executed |
warning_count() | Returns the number of warnings from the last query in the connection |
Как получить ключи или значения ассоциативного PHP массива
Чтобы получить только ключи или только значения ассоциативного массива можно воспользоваться двумя php функциями: и . Они возвращают простой индексный массив, содержащие все ключи или значения соответственно.
$array = array( 'key_1' => 'val_1', 'key_2' => 'val_2', 'key_3' => 'val_3', 'key_4' => 'val_4', 'key_5' => 'val_5' ); // получение всех ключей массива $keys = array_keys( $array ); /* Array( => key_1 => key_2 => key_3 => key_4 => key_5 )*/ // получение всех значений массива $values = array_values( $array ); /* Array( => val_1 => val_2 => val_3 => val_4 => val_5 )*/
Это может пригодится когда нужно сделать поиск по ключам массива. В PHP такой встроенной функции нет.
Плюсы, минусы и особенности PHP
Начнём с особенностей. У PHP слабая динамическая типизация: это значит, что типы переменных определяются во время выполнения программы, разные типы можно использовать вместе, а неявные преобразования выполняются автоматически.
Такая типизация — это и плюс, и минус. С одной стороны, код проще, гибче, он лучше читается и его легче писать, но, с другой стороны, вероятность ошибок выше, а найдёте вы их уже после запуска программы.
Плюсы
- PHP бесплатный, а его код лежит в открытом доступе.
- Для PHP создано множество библиотек, баз данных и фреймворков.
- PHP совместим почти со всеми современными серверами.
- PHP гибкий и даёт много свободы.
- PHP хорош для новичков, ему легко научиться.
- Простая и элегантная система классов и объектов.
- Простой синтаксис. Вот пример кода, выводящего надпись «Hello, World», в PHP:
Как видите, синтаксис очень простой, но обычно PHP вставлен в HTML, и тогда то же самое выглядит вот так:
Несмотря на то что этот код уже значительно длиннее, он всё равно простой и легко читается.
Кэшируйте страницы, управляемые базой данных
Кэширование PHP-страниц, управляемых базой данных – отличная идея для улучшения скорости загрузки и производительности своего скрипта. В действительности не так уж трудно создать и извлечь статические файлы содержимого при помощи нашего доброго друга ob_start(). Вот пример, взятый со Snipe.net:
PHP
// TOP of your script $cachefile = ‘cache/’.basename($_SERVER); $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 «<!— Cached «.date(‘jS F Y H:i’, filemtime($cachefile)).» —>»; 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// 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»<!— Cached «.date(‘jS F Y H:i’,filemtime($cachefile)).» —>»; 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 |
Этот кусок кода использует кэшированную версию страницы, если с момента ее генерации прошло менее 2 часов.
Общий обзор языка программирования PHP
Последнее обновление: 20.10.2017
На сегодняшний день PHP является наиболее распространенным языком веб-программирования. Подавляющие большинство сайтов и веб-сервисов в интернете написано с помощью PHP. По некоторым оценкам PHP применяется более чем на 80% сайтов, среди которых такие сервисы, как facebook.com, vk.com, baidu.com и другие. И такая популярность неудивительна. Простота языка позволяет быстро и легко создавать сайты и порталы различной сложности.
PHP был создан в 1994 году датским программистом Расмусом Лердорфом и изначально представлял собой набор скриптов на другом языке Perl. Позже этот набор скриптов был переписан в интерпретатор на языке Си. И с самого возникновения PHP (сокращение от PHP: Hypertext Preprocessor — PHP: Препроцессор гипертекста) представлял удобный набор инструментов для упрощенного создания веб-сайтов и веб-приложений.
Какие преимущества предоставляет PHP?
Для всех наиболее распространенных операционных системам (Windows, MacOS, Linux) есть свои версии пакетов разработки на PHP, а это значит, что вы можете создавать веб-сайты на любой из этих операционных систем.
PHP может работать в связке с различными веб-серверами: Apache, Nginx, IIS
Простота и легкость освоения. Как правило, уже имея небольшой опыт в программировании на PHP, можно создавать простенькие веб-сайты
PHP похож на язык Си, поэтому, зная Си или один из языков с сиподобным синтаксисом, будет проще овладеть PHP
PHP поддерживает работу с множеством систем баз данных (MySQL, MSSQL, Oracle, Postgre, MongoDB и другие)
Распространенность хостинговых услуг и их дешевизна. Так как, как правило, хостинговые компании размещают веб-сайты на PHP на веб-серверах Apache или Nginx, которые работают на одной из операционных систем семейства Linux. И веб-серверы, и операционные системы на базе Linux бесплатны, что снижает общую стоимость использования хостинга
-
Постоянное развитие. PHP продолжает развиваться, выходят все новые версии, которые несут новые функции, адаптируя язык программирования к новым вызовам. И, как правило, перейти на новую версию не составляет труда.
К настоящему моменту (октябрь 2017) текущей стабильной версией PHP является PHP 7.1.
А теперь создадим первый маленький сайт на PHP. Но перед его созданием нам надо загрузить и установить все необходимые инструменты для разработки сайтов.
Вперед
Удаление символов на концах строки
Чтобы прочистить концы строки от пробелов, табов и переносов есть функция . Но не все знают что этой функции можно передать второй параметр, чтобы удалить с концов строки указанный символ.
Также, не все знают что есть аналогичные функции:
- — удаляет только справа строки
- — удаляет только слева строки
Удаление пустых символов на концах строки
$str = ' Короткая строка. '; // Удалим все пустые символы: таб, пробел, перенос echo trim( $str ); // 'Короткая строка.' // Удалим все пустые символы справа echo rtrim( $str ); // ' Короткая строка.' // Удалим слева echo ltrim( $str ); // 'Короткая строка. '
Удаление указанных символов в начале и конце строки
$str = '1122Короткая строка.2211'; // Удалим один символ echo trim( $str, '1' ); // '22Короткая строка.22' // Удалим несколько символов echo trim( $str, '12' ); // 'Короткая строка.' echo trim( $str, '21' ); // 'Короткая строка.' // тоже самое только на концах строки // Удалим справа echo rtrim( $str, '1' ); // '1122Короткая строка.22' echo rtrim( $str, '21' ); // '1122Короткая строка.' // Удалим слева echo ltrim( $str, '1' ); // '22Короткая строка.2211' echo ltrim( $str, '21' ); // 'Короткая строка.2211'
PHP — Static Methods
Static methods can be called directly — without creating an instance of a class.
Static methods are declared with the keyword:
<?php class ClassName { public static function staticMethod() { echo «Hello World!»; }}?>
To access a static method use the class name, double colon (::), and the method name:
ClassName::staticMethod();
Let’s look at an example:
Example
<?phpclass greeting { public static function welcome() { echo «Hello World!»; }}// Call static method greeting::welcome();?>
Example Explained
Here, we declare a static method: welcome(). Then, we call the static method by using the class name, double colon (::), and the method name (without creating a class first).
PHP $_GET
PHP $_GET is a PHP super global variable which is used to collect form data after submitting an HTML form with method=»get».
$_GET can also collect data sent in the URL.
Assume we have an HTML page that contains a hyperlink with parameters:
<html> <body> <a href=»test_get.php?subject=PHP&web=W3schools.com»>Test $GET</a> </body> </html>
When a user clicks on the link «Test $GET», the parameters «subject» and «web» are sent to «test_get.php», and you can then access their values in «test_get.php» with $_GET.
The example below shows the code in «test_get.php»:
Example
<html> <body> <?php echo «Study » . $_GET . » at » . $_GET;?> </body> </html>
Tip: You will learn more about $_GET in the PHP Forms chapter.
С этим читают
- Class yii\grid\actioncolumn
- Синтаксис php
- Advanced & beautiful html5 / javascript color picker
- Юнит-тестирование для чайников
- The role of color in product design: ux of color palettes
- Система сеток
- Ну что, можно уже использовать css-переменные?
- Глобальные переменные в wordpress
- Работа с конструкциями if-else, switch-case в php
- Отправка e-mail в php