Простые примеры php
Несомненно, php поднял развитие сайтов на новый уровень, я уже не могу себе представить свои проекты без php. Вспоминаю как раньше я делал сайты на html и ужасаюсь, хватало же терпения редактировать постоянно одни и те же элементы ради хоть какого-то изменения сайта.
Эта статья для тех, кто до сих пор делает сайты на html, тут я покажу несколько полезных и простых примеров на php, чтобы показать что вы теряете. Статья также будет хорошей шпаргалкой для тех, кто уже начал изучать программирование на php.
Я постараюсь преподнести вам эти примеры в порядке возрастания их сложности.
Какая версия php у меня установлена
Прежде чем работать с php было бы неплохо узнать установлин ли у вас php и узнать какая именно версия. Выполнять поставленную задачу будем с помощью встроенной функции phpinfo(), которая кроме версии php покажет нам детальный отчёт о всех его настройках.
Посмотрите пример вывода информации данной функции, чтобы вывести подобное на своём сайте, создайте страницу с расширением .php и вставьте туда следующий код:
<?php
echo phpinfo();
?>
Время на сайте (сервере)
С помощью php легко узнать текущее время на сервере, например, во время загрузки на сервере было 09:46:53 21.11.2024, но в отличии от javascript это время не меняется онлайн, т.е. отображается то время, которое было на сервере в момент загрузки данной страницы.
Чтобы вывести дату на сайте нужно воспользоваться функцией date().
<?php
echo date('H:i:s d.m.Y');
?>
Маленькая хитрость: обычно в конце страницы ставят копирайт так Copyright © computerlessons.mega8.ru, 2007 - 2024. Обратите внимание на вторую дату, она выводится с помощью php и в этом случае не нужно каждый год вручную подправлять число.
Как определить IP-посетителя
При написании скрипта для добавления комментариев неплохо бы кроме вводимых пользователем данных писать в базу данных ещё и его IP-адрес, мало ли пригодится. Узнать IP адрес пользователя можно с помощью функции getenv('REMOTE_ADDR')
<?php
echo getenv('REMOTE_ADDR');
?>
Ваш IP: 18.117.166.193
Вычисляем время выполения php-скрипта (загрузки страницы)
При программировании на php немаловажно уделить внимание скорости загрузки срипта. Слишком долго выполняющиеся скрипты могут сильно грузить сервер, при высокой посещаемости ресурса будут происходить сбои всего сайта из-за таких скриптов. Чтобы узнать сколько времени работает скрипт (грузится страница), воспользуйтесь таким примером php-кода:
<?php
define('ST_T', microtime(true));//начало
echo '<p>Контент страницы, скрипты и т.п.</p>';
printf('Страница сгенерирована за %.5f сек.', microtime(true)-ST_T);//конец
?>
Для примера откройте главную страницу моего сайта, там внизу есть информация о том, сколько времени заняла загрузка страницы, подобная информация есть практически на всех страницах моего сайта. В среднем время загрузки не должно превышать 0,1 сек., если скрипт выполняется более чем за 0,5 сек, то вам стоит пересмотреть ваш скрипт. Время загрузки зависит не только от скрипта, но и от самого сервера, так на локальном компьютере скрипт может работать в разы быстрее, чем на виртуальном хостинге.
Подсветка php-кода
Вы наверное уже обратили внимание, что на этой странице я привожу примеры php-кодов в цветном варианте. Цветной код удобно читать, нежели чёрно-белый. Например, я мог бы показывать вам коды так:
<?php
echo highlight_file('color_code.php', true);
?>
Но всё же согласитесь, цветной код лучше! Выше я привожу вам пример функции highlight_file(), с её помощью можно выводить на страницу php-код из другого файла. Ниже посмотрите функцию highlight_string(), где можно раскрашивать код непосредственно на странице.
<?php
echo highlight_string("#тут вводим код, который станет цветным#");
?>
Маленькая поправочка: следите за ковычками внутри этих функций, если используете двойную ковычку ", то внутри используйте только одинарные ', если нужно использовать двойную ковычку, то её необходимо экранировать обратным слешем \". То же касается и одинарыных ковычек.
php-скрипт случайных чисел
При написании скриптов случается нужно сгенерировать случайное число, это можно сделать при помощи функции rand().
<?php
echo rand(1,100);
?>
В данном случае будет генерироваться случайное число от 1 до 100.
Список файлов из папки
С помощью php можно просканировать папку с файлами и вывести результат на экран, возможно вам пригодится это при создании всевозможных файловых хранилищ.
<?php
$files_arr = scandir('14');
//выведем содержимое массива на экран
echo '<pre>';
print_r($files_arr);
echo '</pre>';
?>
Вот вам пример работы этого скрипта:
Array
(
[0] => .
[1] => ..
[2] => date.php
[3] => file_get_contents.php
[4] => load.php
[5] => phpinfo.php
[6] => rand.php
)
Это файлы из папки с примерами к этой статье.
Какой размер файла
Если нужно узнать размер файла, например картинки, то воспользуемся функцией filesize(), она покажет нам размер файла в байтах.
<?php
echo filesize('image.jpg').' байт';
?>
Скачать файл скриптом
Если нужно зашифровать для каких-то целей исходную папку с файлами, но дать возможность пользователям скачивать из неё файлы, т.е. сделать нечто похожее на файлообменник, то можно воспользоваться следующим примером кода:
<?php
$filename = 'file.zip';//файл для скачивания
$filefolder = 'folder/';//секретная папка
$filesize = filesize($filefolder.$filename);
header('HTTP/1.1 200 OK');
header('Connection: close');
header('Content-Type: application/octet-stream');
header('Accept-Ranges: bytes');
header('Content-Disposition: attachment; filename='.$filename);
header('Content-Length: '.$filesize);
readfile($filefolder.$filename);
?>
Если обратиться к файлу с таким скриптом, то начнётся скачивание файла file.zip из папки folder, но пользователь никогда не узнает из какой же папки происходит скачивание, а значит и не узнает его истиного пути, в нашем случае это http://сайт.ру/folder/file.zip
Вот вам живой пример, ссылка ведёт на страницу /lessons/php/14/load.html, но будет скачиваться файл, откуда, попробуйте догадаться.
Чтобы защитить нашу секретную папку от тех, кто всё же узнает про неё, воспользуйтесь файлом htaccess, с помощью которого можно запретить доступ ко всем файлам, находящимся в этой папке, но при этом их можно будет скачивать нашим скриптом.
Транслитерация слов с помощью php
Наверное не нужно объяснять зачем нужно транслитерировать русские буквы, это и так понятно.
Пример работы скрипта можно посмотреть в моих сервисах.
<?php
function transliterate_text($tt)
{
$tt = strtr($tt, array('а'=>'a','А'=>'A','б'=>'b','Б'=>'B',
'в'=>'v','В'=>'V','г'=>'g','Г'=>'G','д'=>'d','Д'=>'D',
'е'=>'e','Е'=>'E','ё'=>'e','Ё'=>'E','ж'=>'zh','Ж'=>'ZH',
'з'=>'z','З'=>'Z','и'=>'i','И'=>'I','й'=>'y','Й'=>'Y',
'к'=>'k','К'=>'K','л'=>'l','Л'=>'L','м'=>'m','М'=>'M',
'н'=>'n','Н'=>'N','о'=>'o','О'=>'O','п'=>'p','П'=>'P',
'р'=>'r','Р'=>'R','с'=>'s','С'=>'S','т'=>'t','Т'=>'T',
'у'=>'u','У'=>'U','ф'=>'f','Ф'=>'F','х'=>'h','Х'=>'H',
'ц'=>'ts','Ц'=>'TS','ч'=>'ch','Ч'=>'CH','ш'=>'sh',
'Ш'=>'SH','щ'=>'shch','Щ'=>'SHCH','ъ'=>'','Ъ'=>'','ы'=>'i',
'Ы'=>'I','ь'=>''','Ь'=>''','э'=>'e','Э'=>'E','ю'=>'yu',
'Ю'=>'YU','я'=>'ya','Я'=>'YA'));
return $tt;
}
$line = 'Привет, мир!';
echo transliterate_text($line);
?>
Код вы сможете без труда изменить на своё усмотрение.
Сканируем чужие сайты
Вот уж где находка вора, с помощью функции file_get_contents() вы можете открывать на своих страницах чужие сайты.
<?php
echo file_get_contents('http://modelmen.ru/p2808');
?>
Злоупотреблять этой функцией не нужно, иначе можно доиграться!
Адрес сайта
С помощью функции $_SERVER['HTTP_HOST'] можно сказать пользователю на каком сайте он находится или использовать для подставновки в своих скриптах.
<?php
echo 'Вы находитесь на сайте '.$_SERVER['HTTP_HOST'];
?>
Результат: Вы находитесь на сайте computerlessons.mega8.ru
На этом простые примеры я закончу, а вам желаю творческих успехов в вашей работе и надеюсь полученная информация вам пригодится.