Урок 1. PHP — Синтаксис

Прежде чем мы поговорим о синтаксисе PHP, давайте сначала определим, что имеется ввиду под словом синтаксис.
Синтаксис — правила, которые необходимо соблюдать, чтобы писать правильно структурированный код.
Синтаксис PHP и его семантика похожи на большинство других языков программирования (C, Java, Perl). С той лишь разницей, что код PHP встраивается в html разметку страницы. Весь код PHP должны содержаться в следующих тегах:
<?php
?>
Или просто:
<?
?>

Если вы не хотите проблем, то пишете по стандартной форме (т.е. ?php), а не в сокращенном виде. Это гарантирует, что ваши скрипты будут работать на серварах с разными настройками.

Как сохранять ваши PHP страницы

Если у вас есть PHP код, который включен в HTML и вы хотите, чтобы браузер интерпретировал все правильно, то вы должны сохранить файл с расширением .php, вместо стандартного .html. Так что не забудьте проверить, что вы сохраняете файлы правильно. Например, вместо index.html должно быть index.php.

Пример простой html страницы с PHP кодом

Ниже приведен пример простой странички, которая содержит в себе php код. Вы можете брать ее за основу для своих проектов:
<html>
<head>
<title>My First PHP Page</title>
</head>
<body>
<?php
echo "Hello World!";
?>
</body>
</html>
Вот что мы получим в результате:
Hello World!
Если вы сохраните этот файл (например, helloworld.php) и закинете его на сервер с поддержкой PHP, а затем загрузите ее в браузере, то вы должны увидеть надпись «Hello World!». Если этого не произошло, пожалуйста, проверьте, что Вы все сделали правильно и четко следовали примеру. Или задавайте вопросы в комментариях.
Мы использовали команду echo, чтобы написать «Hello World!». Конечно, мы вернемся к этой команде чуть позже, в следующих уроках.

Точка с запятой!

Как вы можете заметить, в приведенном выше примере не было точки с запятой после строки кода PHP. Точка с запятой означает конец операции в PHP и никогда не стоит о ней забывать. Например, если бы мы повторили нашу команду вывода надписи «Hello World!» несколько раз, то мы должны поставить точку с запятой в конце каждой строки.
<html>
<head>
<title>My First PHP Page</title>
</head>
<body>
<?php
echo "Hello World! ";
echo "Hello World! ";
echo "Hello World! ";
echo "Hello World! ";
echo "Hello World! ";
?>
</body>
</html>
Результат:
Hello World! Hello World! Hello World! Hello World! Hello World!

Пробелы

Как и в HTML, пробелы между PHP выражениями игнорируются. То есть если в коде 20 пустых строк, например, для форматирования, то ничего страшного, они не будут видны в результате. Так же как и табуляция (Tab).
<html>
<head>
<title>My First PHP Page</title>
</head>
<body>
<?php
echo "Hello World!";        
 
 
 
 echo "Hello World!";
 
 
?>
</body>
</html>
Результат:
Hello World!Hello World!
Ну вот и все на этот раз. Вы научились встраивать php код в html страницу, сохранять их с соответствующим расширением .php. Рассмотрели несколько примеров построения страницы, а том числе и с использованием команды echo, к которой мы обязательно вернемся чуточку позже. Ну все, практикуйтесь и переходите к следующему уроку!

Php начинающим

Php - это язык сценариев. Зачем он нужен? Для того, чтобы Ваш сайт был более интересен. Используя Php, который работает на стороне сервера, мы добиваемся того, что текст html-странички меняется "на лету". Далее мы приведем несколько примеров для начинающих.

1. Надо разбить html текст на: верх страницы и низ страницы, то есть создать шаблоны. В этом случае, будет меняться только центр странички, что немаловажно.

Следующий файл "top.htm" - верх странички
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><HEAD><TITLE>%title%</TITLE></HEAD><body>

Этот файл "end.htm" - низ странички
</body></html>

Сам сценарий будет такой
<?
//вставляем верхний шаблон и изменяем в нем Title.
$title = "Php-web-дизайн";
$t_mha = @file ('top.htm');
for($mha = 0 ; $mha < count($t_mha); $mha++)
{
$t_mha[$mha] = str_replace("%title%",$title,$t_mha[$mha]);
echo "$t_mha[$mha]";
}
//здесь вставляем центр странички
include("zentr.htm");
//вставляем низ странички
include("end.htm");
?>

При обращении к этому сценарию сервер выдаст броузеру
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><HEAD><TITLE>Php-web-дизайн</TITLE></HEAD><body>
середина странички, которая будет меняться, то есть zentr.htm.
</body></html>

Мы добились того, что в верхней части меняем title, выводим саму меняющуюся информацию (zentr.htm) в центр html кода и добавляем низ. Теперь мы будем менять только центральную часть, не заботясь о шаблонах. В этом простом примере мы научились разбивать текст странички, менять его и вставлять файлы. Теперь один раз записав файл верх, по разным ссылкам мы спокойно изменим в нем title или что-нибудь еще, вставим центральную часть и закончим нижней.

У нас на сайте переписывается в верху: title, статистика (левый нижний угол), затем мы вставляем сам текст в центр, а в нижней части переписывается время генерации странички сервером. В итоге, странички получаются всегда разные, хотя мы используем всего два html файла (верх и низ), центр странички разный. То же самое относится и к центральной части, в которой тоже можно создать шаблон, а сервер сам будет менять в нем данные, что придаст сайту больше интерактивности.

2. Как организовать php-ссылки. Очень просто, например, у нас весь скрипт записан в одном файле all.php. Ссылки в html коде выглядят так "all.php?act=omsk&fon=velikie". Все что стоит за знаком вопроса это и есть ссылка. Если нажать на эту ссылку, скрипту all.php автоматически методом Get будут переданы две переменные: "$act=omsk" и "$fon=velikie". Программа начнет движение по срипту сверху вниз и когда достигнет того места, где мы будем спрашивать о этих двух переменных срипт исполнится.
<?
//если переменная $act равна "omsk" и $fon не пусто, то есть существует
//выводим одну страничку в броузер
//ссылка выглядит так: "all.php?act=omsk&fon=velikie"
if($act == "omsk" and $fon != "") { include("one.htm"); }
//если переменная $act равна "omsk" и $fon пусто, то есть не существует
//выводим другую страничку в броузер
//ссылка выглядит так: "all.php?act=omsk"
if($act == "omsk" and $fon == "") { include("too.htm"); }
?>
То есть, все очень просто.

3. Как работают формы? Из формы переменные передаются скрипту методом Get или Post, если мы в форме что-то пропишем и активизируем кнопку submit. Если будет использоваться метод Get, то все переменные, которые передаются скрипту будут прописаны в командной строке: all.php?1_переменная=значение&2_переменная=значение&3_переменная=значение. Если будет использован метод Post, то эти же переменные будут переданы скрипту скрыто вне командной строки. То есть, метод Get нельзя использовать, если переменная большого объема, то есть в ней много букв. Например, когда вы направляете нам письмо с сайта, скрипту будут преданы три переменные: имя, email пользователя и сам текст письма. Две первые переменные маленькие, а вот последняя большая, поэтому программа будет виснуть, если в форме отсылки применить метод Get. Формы Php передают скрипту переменные, только после активации, в этом отличие от Javascript, который исполняется при загрузке, самого текста html, в броузер.

4. Как организовать Администрирование? Создаем файл, например, administ.php. Он должен быть закрыт паролем.
<?
//функция форма пароля
function form()
{
echo "
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<html><HEAD>
<title>Админ</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\">
</head><body>
<form action=administr.php method=post>
<table border=0 width=600 align=center cellspacing=1 cellpadding=1 bgcolor=#333399>
<tr><td align=center bgcolor=#D7DCF7>
<font face=verdana size=2 color=de0000>Введите пароль</font></td></tr>
<tr><td align=center bgcolor=#D7DCF7><input type=password name=p size=25></td></tr>
<tr><td align=center bgcolor=#D7DCF7><input type=submit value=Войти></td></tr></table>
</form>";
}
//если пароль правильный скрипт исполняется
if ($p == "$password")
{
//здесь текст нашего скрипта
echo "</body></html>";
exit;
}
//если пароль неправильный скрипт не исполняется, записываем нарушителя в базу
if ($p != "$password")
//определяем ip нарушителя, записываем в лог файл и выводим форму для пароля
{ if(empty($log_ip)){ if (getenv('HTTP_X_FORWARDED_FOR'))
{$log_ip=getenv('HTTP_X_FORWARDED_FOR'); }
else {$log_ip=getenv('REMOTE_ADDR'); }}
else {$log_ip=getenv('REMOTE_ADDR'); }
$log_host=gethostbyaddr("$log_ip");
$log_date=date('d\.m\.Y, H:i:s');
$log_file = fopen("admin.log","a+");
$p = eregi_replace("<","&lt;","$p");
$p = eregi_replace(">","&gt;","$p");
if($p == "") { $p = "не вводил"; }
fputs ($log_file,"$log_ip<>$log_host<>$log_date<>$p\n");
fclose ($log_file);
form();
echo "</body></html>";
}
?>
Мы всегда можем увидеть нарушителей и потом, если надо, закрыть им доступ, при условии определения ip нарушителя. Все ссылки в скрипте должны идти с паролем, который надо вручную прописать в отдельном текстовом файле, из которго скрипт и будет потом считывать пароль и сравнивать его с тем, который был послан из формы.

5. Что такое цикл и зачем он нужен?
функция for - цикл, очень важная для привязки баз данных, которые лежат в текстовых файлах. В нашем базовом файле данные лежат построчно и разделяются каким-то разделителем, в нашем случае разделитель - "::". То есть, база данных выглядит так:
1 строка - Иванов::директор::40 лет::в/о::
2 строка - Петров::зам.директора::35 лет::в/о::
3 строка - Сидоров::нач.отдела::45 лет::в/о::
Чтобы произвести манипуляции с этой базой (добавить, удалить, изменить данные), и, требуется цикл for. Сначала мы считаем всю базу в массив строк, причем каждая строка в этом массиве будет иметь свой номер, ф-ия file, затем мы посчитаем сколько строк в считанном массиве, откроем файл базу на запись, полностью стирая ее и запустим цикл, в котором, в данном случае будем удалять ненужные нам строки, при этом нужные записывая в ту же базу данных. Далее по тексту, $base - база данных, в которой лежат наши данные.
<?
// считываем всю базу в переменную $general
// Тогда $general - это массив строк из базы, выглядит так:
// $general[0] - все, что в 1 строке базы
// $general[1] - все, что во 2 строке базы
// $general[2] - все, что в 3 строке базы
// итд, до последней строки, то есть функция
// file дает нам возможность считать базу построчно
// в массив строк со своим номером по порядку
$general = file("$base");
// стираем всю базу и открываем ее на запись
// функция fopen, если "w", то вся база стирается,
// ну и пусть, ранее мы считали ее в переменную $general,
// а потом из $general перезапишем
$fp = fopen("$base","w");
// count($general) - количество строк в считанной базе,
// то есть в переменной $general. Назначаем цикл от
// нулевой строки, до последней в базе: $j = 0 до $j < forum'>count($general)
for ($j = 0; $j < count($general); $j++) {
// запускаем цикл, в первый проход цикла,
// $general[$j] - это все, что записано в 1 строке $general[0]
// во второй проход $general[$j] - все, что записано
// во 2 строке $general[1]. счет идет не с 1, а с 0.
// В последний проход, все что записано в поледней строке.
// Так продолжается пока $j < count($general), то есть
// счетчик - перменная $j не станет больше количества строк в базе,
// тогда цикл прекращается. С каждым проходом цикла $j++, то есть эта
// переменная увеличивается на один, а в самом начале она равна 0.
// Если номер строки и номер для стирания той строки, что хотим удалить
// совпадают игнорируем, то есть не записываем в базу,
// остальные строки пишем в файл-базу fputs($fp,$general[$j])
// то есть записываем по новому все строки $general[$j],
// в том же порядке, кроме той, которую хотим стереть
if ($j != ($del)){ $erg = fputs($fp,$general[$j]); }
}
// цикл будет крутиться пока $j < count($general), потом он закончится
// и программа придет к этой отметке. Здесь мы закрываем файл-базу
fclose($fp);
?>
В этом очень простом примере мы научились использовать file, count, for, fopen, fclose. Более подробно как добавить-удалить строки из базы прочитайте здесь в нашем форуме.


Эту страничка будет дописываться, может быть вы что-нибудь найдете на ней интересное.

Уроки PHP для начинающих

Каждый, кто всерьез хочет зарабатывать в сети, должен знать хотя бы основы php. Не обязательно быть в нем профессионалом и днями напролет писать тонны кода. Достаточно ознакомиться с этим языком и он ни раз вам пригодится. Элементарно что-то подправить на блоге даже с установленной CMS вы не сможете, если не знаете азов php. Именно поэтому я написал для вас хорошие уроки по php, которые быстро введут вас в курс дела! Начинайте с первого урока и двигайтесь с удобной для вас скоростью:
Урок 1. PHP — Синтаксис
Урок 2. PHP — Переменные
Урок 3. PHP — Echo
Урок 4. PHP — Строки
Урок 5. PHP — Операторы
Урок 6. PHP — Комментарии
Урок 7. PHP — Include
Урок 8. PHP — Условный оператор
Урок 9. PHP — Switch
Урок 10. PHP — Функции
Урок 11. PHP — Массивы
Урок 12. PHP — Цикл While
Урок 13. PHP — Цикл For
Урок 14. PHP — Цикл Foreach
Урок 15. PHP — Цикл Do while
Урок 16. PHP — POST & GET
Урок 17. PHP — htmlentities
Урок 18. PHP — Файлы
Урок 19. PHP — str_replace
Урок 20. Работа с cURL в PHP
Практический урок 1. Пишем парсер статистики Liveinternet на PHP
Практический урок 2. Авторизация на liveinternet с помощью cURL

BIGdot - Блог программера, которому порой нечего делать

Статьи, полезные советы по программированию и не только