Обучение основам программирования на php с нуля

Вот решил написать небольшое пособие, по основам программирования на php с нуля, в помощь новичкам, для изучения азов программирования.

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

Речь пойдет о программировании на языке PHP.  Кстати если вы не новичок можете сразу проверить свои знания пройдя тест по PHP в сервисе WebShake.RU.
Ну приступим…
Обучение основам программирования на php с нуля Обучение
Что же такое программирование? Чем оно отличается, например от языков разметки?
Разметка – это правила, применяемые к содержимому тега .
< a href=»»>текст</a>
Т.е. правила показывает браузеру, что содержимое тега <a> — ссылка. И оформлять и выводить пользователю её следует тоже как ссылку.
Языком разметки мы можем только применять какие любо правила, но не можем динамически изменять данные. Т.е. мы меняем только одежду, но сделать из человека обезьяну мы не можем.

Программирование же – это написание скриптов, или иначе сценариев. Сценариев по которым будут обрабатываться входящие данные (данные которые мы предоставим программе). Писать сценарии намного сложнее чем форматировать текст. Ведь для этого мало знать синтаксис языка, нужно самому этот сценарий спланировать и реализовать средствами языка.

Перед началом изучения, нам нужно обзавестись веб сервером, с установленным PHP интерпритатором. Интерпретатор – это программа, которая читает наш код и «переводит» его на машинный язык. В качестве сервера может быть хостинг. А лучше скачать и установить денвер, тот тот же хостинг только локальный (доступен только вашему компьютеру, или вашей локальной сети). Скачать можно тут http://www.denwer.ru/ там же почитать про установку и инструкцию по работе с ним.

Теперь перейдем к началу изучения PHP.

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

Переменные
– переменная это участок памяти, где хранится какая-либо информация. Переменная имеет имя, по которому к ней обращаются, что бы прочитать или изменить её содержимое. По самому названию «переменная» можно догадаться что данные в ней можно изменять в ходе выполнения программы. Переменные бывают разных типов: числовые, строковые, массивы и т.д. Чтобы показать интерпретатору что данный символ(ы) являются именем переменной используется знак доллара $.

$peremennaya –это переменная
peremennaya –а это просто бессмысленный набор символов

Переменные чувствительны к регистру (заглавным и строчным символам). Т.е. $a и $A совсем разные вещи. Тип переменной PHP определяет сам, поэтому во избежание путаницы не делайте действий с переменными разных типов. Например не прибавляйте число к массиву, ибо результат не предсказуем.

Константы – постоянные. Смысл тот же что и переменная, только константы нельзя изменять. Т.е. то что в них один раз записали, то там и будет. Этими данными можно только пользоваться.

Операторы – действия. Например: +, -, *, /, = и т.д. Полный список можно почитать справочник. Следует заметь что выражение:

$a = $b

Означает не то, что значение переменной «а» равно значению переменной «b». А то что значению переменной «a» присвоили значение «b». То есть если было:

$a = 1;
$b = 2;
$a = $b;

То в итоге выполнения этой программы значение $a будет равно 2.

А для сравнивания есть другие операторы: == и ===

Так же есть операторы выполняющие определенные простейшие действия, например оператор вывода, цикла, условный оператор. Но тем не менее, на всех этих простейших действиях и построены все программы.

Оператор вывода: echo «» или echo», одинарные и двойные кавычки имеют несколько разный смысл. Для вывода значений переменных кавычки не используются (одних переменных без текста). Покажу на примере:

$a = "привет";
echo $a; // выведет на экран: привет
echo "$a"; // Тоже выведет: привет. Но делать так не правильно
echo "$a друг";  // выведет на экран: привет друг
echo '$a друг' //  выведет на экран: $a друг

Т.е. то что в одинарных кавычках воспринимается как простой текст.

Оператор условия:

 

If (условие) {
Код1;
}

else {
Код1;
}

Смысл его таков, если (if) условие верно (существует, имеет смысл) то выполняется код1, если не верно (else), то выполняется код2. Подробнее можно почитать в книжках, ибо тут писать много.

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

for ($i=0; $i<6; $i+2) {
Код;
}

Как это работает. Переменная $i это счетчик. Первым выражением $i=0 мы задаем начальное значение, второе выражение $i < 6 – это условие, т.е пока i меньше шести мы продолжаем выполнять код. Третье выражение $i+2 это действие которое выполняется после выполнения кода. Т.е. порядок действий таков (переменную $i буду писать «и», чтоб на русс. Англ. Не переключать каждый раз:)):

«и» равно нулю. Ноль меньше шести? – да. Выполняем код. К «И» прибавляем два. «и» рано 2. 2 меньше шести? – да. Выполняем код. К «И» прибавляем два. «и» рано 4. 4 меньше шести? – да. Выполняем код. К «И» прибавляем два. «и» рано 6. 6 меньше шести? – нет. Цикл останавливается.

Одно полное действие цикла — одна ступень («и» равно нулю. Ноль меньше шести? – да. Выполняем код. К «И» прибавляем два.) называется итерация.
Так же бывают другие типы циклов: с условием, пост условием. Понять их тоже не трудно.

Функции – это уже так сказать готовые мини программы, хотя некоторые совсем не мини. В функции подаются данные и они обрабатываются по определенным правилам. Например если мы функции cos() передадим число 1, или переменную содержащую это число:

$a = 1;
сos($a);

то эта функция вернет, высчитает нам значения косинуса из единицы.
Кстати о слове «вернет». Вернет значит передаст. Т.е. мы может значения косинуса передать например переменной.

$b = cos($a);

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

В запасе языка PHP есть множество встроенных функций. Они различаются по типам, по области применения и т.д. полный список и синтаксисом и описанием можно узреть тут http://php.su/functions/?page=cat

А тут можно прочитать про создание собственных (пользовательских) функций http://php.su/functions/custom/?1

Объекты .Так же есть еще объекты, но это уже намного сложнее, и для начала совсем не обязательно.

Есть еще переменные окружения. Эти переменные пользователю изменять нельзя. Можно только пользоваться данными. Их значение изменяет сам интерпретатор. Для получения данных из таких переменных есть специальная функция getenv(). Переменная SERVER_ADDR содержит айпи адрес пользователя исполняющего сценарий, например просматривающего например сайт. Например мы хотим чтоб на нашем сайте пользователи могли видеть свой IP, то мы создадим «модуль» примерно такого содержания:

$ip = getenv("SERVER_ADDR");
echo "ваш IP: $ip";

мы сначала присвоили переменной $ip значение IP адреса пользователя, а потом его вывели на экран с помощью оператора.

В функции getenv() имя переменной нужно указывать в кавычках, как в примере.

Таких переменных очень много, найти можно в справочниках.

Теперь еще хотел бы сказать отдельно за переменные типа массив. Массив это как бы таблица.
В одной строке которой содержаться индексы (номера или имена ячеек), в во второй строке соответственно значения.

Обучение основам программирования на php с нуля Обучение
основы PHP программирования
1.JPG (9.17 КБ) Просмотров: 8886

Создать такой массив можно с помощью функции array(), назовем его mass:

$mass = array ("привет", "пока",2+3, $ip = getenv("SERVER_ADDR") , cos($a));

Массивы можно создавать и непосредственно присвоением значений элементам (читайте дополнительную лит.ру). Только в случае, если содержимое — выражение или функция как в ячейках 2, 3 и 4 кавычки не пишутся. Иначе это уже будет не выражение а просто строка.

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

Элементы массива нумеруются с нуля. Не один, два ,три. А ноль, один, два и т.д.

Обращаться к элементам массива можно так:

Echo $mass[4];

На экран будет выведено значение косинуса, а не строка «cos($a);».

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

Например в файле test.txt у на такое содержание:

Вася
Пошел
В магазин

То:

$text = file(‘text.txt’);

Переменная $text становится массивом из трех элементов. Элемент с индексом 0, содержит «вася», с индексом 1 «пошел», и 2 «в магазин». Функции file() мы передаем путь к файлу. Путь должен быть верным! Данный путь действителен, только если файл лежит в одной папке со скриптом!

Вроде бы все..

Теперь давайте рассмотрим пару небольших примеров реального применения наших знаний.

Пример 1.

На днях я столкнулся с небольшой проблемой. Мне нужно было скачать все изображении со страницы http://www.volgograd.org.ru/maps/maps/rostov/ . их там очень много. По одной я бы сидел очень долго. С учетом моей скорости интернета. Подумав как можно автоматизировать задачу, вспомнил что в тоталкомандере можно автоматически загружать файлы по списку ссылок. Но опять загвоздка, как этот список от сюда вытащить. Сидеть выделять столько ссылок мышкой из исходного кода мучительно, в конце обязательно на нервах рука дрогнет и все насмарку. Посмотрев исходный код мы видим что содержание страницы – таблица. А значит, зажав кнопку ctrl мы сможем выделить столбец. Нас больше интересует столбец имен файлов.

Предварительно наведя на имя(ссылку) мы видим что имена совпадают с именами на сервере. Это уже очень хорошо. Теперь скопировав столбец имен в блокнот, получаем текстовый файл, где с каждой строки имя файла с расширением. Сохраняем файл к примеру text.txt. все фотки находятся в одном каталоге, что уже облегчает работу. Теперь нам нужно понять что же нам надо дальше делать. А делать надо следующее, с помощью функции file() мы прочитаем документ и имя каждого файла окажется в своей ячейке. потом с помощью цикла в каждый элемент массива в начало допишем адрес докаталога, и получим массив с готовыми ссылками. А потом опять циклом этот массив выведем на экран. И у нас готов список ссылок на загрузку! В блокноте глянем сколько получилось имен (строк). Их 137. И приступим.

Кстати, пока не забыл, двумя слешами // обозначаются комментарии, т.е.

echo "это код, который исполняется интерпретатором" ; // а это просто комментарий

И после каждой строки, кроме операторов правилами которых этого не предусмотрено должна ставиться точка с запятой — ;

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

<?php
Наш код;
?>

Теги <?php и ?> показывают границы нашего кода. Все что вне них, интерпретатор выполнять не будет и просто выведет их на экран текстом.
Код с комментариями:

<?php
$name=file('base.txt'); // создали массив имен
for ($i=0; $i<=136; $i++) { //
оператор <= значит меньше или равною. 136, то что массив начинается с
0, а не единицы. и последний элемент равен кол-во элементов минус один.
а оператор ++ прибавляет единицу. в циклах использовать +1 некорректно

$name[$i]="http://www.volgograd.org.ru/maps/maps/rostov/$name[$i]"; //обращаемся к каждому элементу по порядку, в качестве индекса используем счетчик $i. и дописываем в начало путь к каталогу.
}
for ($i=0; $i<=136; $i++) {
echo $name[$i]; //выводим поочередно каждый элемент массива
echo "<br>"// выводим тег <br>, чтобы каждая ссылка была с новой строки
}
echo "<br>Готово! А все оказывается просто!"; // от себя добавил ))
?>

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

<?php
$name=file('base.txt'); // создали массив имен
for ($i=0; $i<=136; $i++) { //
оператор <= значит меньше или равною. 136, то что массив начинается с
0, а не единицы. и последний элемент равен кол-во элементов минус один.
а оператор ++ прибавляет единицу. в циклах использовать +1 некорректно

$name[$i]="http://www.volgograd.org.ru/maps/maps/rostov/$name[$i]"; //обращаемся к каждому элементу по порядку, в качестве индекса используем счетчик $i. и дописываем в начало путь к каталогу.
echo $name[$i]; //выводим поочередно каждый элемент массива
echo "<br>"// выводим тег <br>, чтобы каждая ссылка была с новой строки
}
echo "<br>Готово! А все оказывается просто!"; // от себя добавил ))
?>

в итоге за считанные секунды я получил список урлов, поставил их на загрузку, а сам пошел пить кофе Обучение основам программирования на php с нуля Обучение   и заниматься другими делами

файлы программы можете скачать тут http://dl.dropbox.com/u/16037749/primer.rar
можете запустить её и убедиться, что все работает.

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

Во втором примере я опишу как я писал свой модуль http://ruseo.net/moy-modul-dlya-dle-bloki-dlya-opredelennih-stranic-t2535.html. Он уже имеет самое что именно есть прямое отношение к сео и оптимизации. Но это чуть позже, а то утомился Обучение основам программирования на php с нуля Обучение

Помните порой легче создать свой «мини сео софт», чем искать готовое. Его кстати может и не существовать вовсе Обучение основам программирования на php с нуля Обучение

Если вы действительно заинтересовались программированием на PHP, советую почитать книгу «PHP 5/6 и MySQL 6. Разработка Web-приложений» Дениса Колисниченко. Там очень много хорошего материала. Все понятно излагается. Читайте справочники, и главное учитесь думать и все себе представлять, и будет вам счастье! А все остальное как говорится придет с опытом

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *