308РНР-шаг за шагом, глава1

увлечения и хобби Богданова Игоря, для всех самоделкиных

Поиск
 
 

Результаты :
 

 


Rechercher Расширенный поиск

Талисман 2021 года

гороскоп
Гороскопы и Сонники
⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂⁂Погода
!!!Погода в Рощино

влажность:

давление:

ветер:

⁂⁂
Похожие темы
Социальные закладки
Социальные закладки reddit      

Поместите адрес форума Песочница Увлечённых Самоделкиных в редакции Гарика на вашем сайте социальных закладок (social bookmarking)

Андрей Щедрин рулит...index.php (336×448)Ремонт ГБЦ на Дельте=и ЛеночкаРНР-шаг за шагом, глава1 0_fcbb3_a46da45a_XXXL
Посмотреть на Яндекс.ФоткахРНР-шаг за шагом, глава1 0_fcbbc_adb6f71f_M
Посмотреть на Яндекс.Фотках
Фото131.jpg 110kv Фото129.jpg
моя фея

и ДЖИН

фортуна

Вы не подключены. Войдите или зарегистрируйтесь

РНР-шаг за шагом, глава1

Перейти вниз  Сообщение [Страница 1 из 1]

1РНР-шаг за шагом, глава1 Empty РНР-шаг за шагом, глава1 Вт Окт 29 2013, 00:05

Gor

Gor
Admin

Что такое PHP?
PHP - это скриптовый server-side язык программирования, предназначенный в основном для включения в html страницу и выполняемый сервером перед выдачей страницы браузеру. Это не CGI, но вполне заменяет его! PHP очень похож на ASP (существует даже конвертор asp2php), но приспособлен к unix-likeсистемам и чаще всего употребляется с web-сервером apache, хотя  может работать и с MS IIS и в принципе с любым другим веб-сервером. Кроме того, PHP3является объектно-ориентированным.
На мой взгляд, основное преимущество PHP - простота, гибкость и скорость выполнения. Мне, например, понадобилось минут 15 для просмотра мануалов и примеров, для того, чтобы перевести весь контент моего сайта на SQL (подробнее следующих ШАГ-ах) и написать php-скрипт для выдачи его в html коде с шаблонным дизайном. Зачем так сложно? А вовсе и не сложно. Теперь, чтобы выложить на сайт новую статью или просто новость, я всего лишь добавляю новую запись на sql сервере с помощью MS Access или web-интерфейса sql, написанного кстати тоже на php, а при запросе страницы пользователем соответствующий php-скрипт выуживает из sql то, что ему надо и выдает уже красиво оформленную, готовую страницу.
SQL. Вот это является еще одним преимуществом PHP, такое впечатление, что он просто рожден существовать в связке apache+php+sql. Для свой работы я выбрал MySQL, который также существует и под linux и под win9x/NT.
В качестве иллюстрации простоты php, предлагаю  пример, передающий список файлов в текущем каталоге.



Список файлов:


$dir = opendir(".");

while($file = readdir($dir))

   echo "$file
";

closedir($dir); 

?>






Код, помещенный в теги  и ?> не передается браузеру, а выполняется непосредственно на стороне сервера. А выдается то, что выводит команда echo. Я думаю, что человек, мало-мальски знающий хотя бы один язык программирования, поймет этот пример без проблем. Кажется, PHP похож на C? или Perl? илиBasic? А вот к стати тот же пример в ООП варианте:


$dir = dir(".");

while($file = $dir->read())

   echo "$file
";

$dir->close();

?>


И ведь вы можете это писать в своем любимом html редакторе! Лично я настолько
полюбил этот язык, что пишу в нем и скрипты для linux shell (хотя это уже из
области XXX Winkи даже под dos/win. А запустить скрипт из шела проще некуда: php3 -q  получается отличный интерпретатор.
А вот, для наглядности, еще пример для работы с MySQL:


$conn=mysql_connect("127.0.0.1");

if (mysql_select_db("db",$conn)) {

   $res=mysql_query("select * from tabl", $conn);

   while(($data=mysql_fetch_row($res)))

      echo("$data[0] $data[1]\\n");

} else 

echo "Error!\\n";

?>


Этот скрипт выводит таблицу tabl из базы данных db на локальном MySQL сервере.
Ссылки на тему php:




  • http://phpclub.unet.ru - русский клуб программистов на PHP, здесь вы можете найти любую интерсующую вас информацию и пообщаться с профессионалами на эту тему (а так же связка PHP-SQL).


  • http://www.php.org - сайт производителя.


  • Неплохая документация по php (и кажется под php для win) лежит на http://www.citforum.ru



Установка.
В первых строках своего письма хочу сообщить, что хотя инсталяция PHP - дело совсем не хитрое и по крайней мере линуксоиды, отличающиеся умом и сообразительностью ;-), а так же уменем вникать в тексты документации на любом языке, с этим делом справляются на р-р-р-р-аз, у виндозистов зачастую возникают странные, на мой взгляд, вопросы. В таком случае целесообразно все-таки рассмотреть инсталяцию PHP, но только под windos. Сразу предупрежу, что способов работы с php существует несколько и я не буду здесь описывать каждый из них, а лишь один и самый простой, на мой взгляд. Также учтите и то, что этот способ не является безопасным (всмысле вашего сервера, читайте security.shtml в мануале от PHP), да и о какой безопасности под виндами может идти речь. Хотя линчо у меня на моей WindowsNT стоят ApacheMySQL и PHP - они естественно используются лишь для отладки скриптов, перед выкладыванием их на сервер и эта комбинация не является полноценным вебсервером, поэтому к неу нет доступа извне. Зато очень даже здорово отлаживать скрипты и дизайн, таким образом, всем рекомендую.
Начнем с того, что вам не стоит скачивать и компилировать PHP из исходного кода, это лишнее. Возьмите готовый дистрибутив (у меня он назывался php-3.0.11-win32.zip) и просто скопируйте все файлы туда, где вы хотите содержать php (лично у меня это c:/php3/). Пол дела сделано! Кстати, кроме самого дистрибутива, вам понадобится еще и документация, валяющаяся на том же сервере (списокhtml-вариант).
Идем дальше. Теперь в первую очередь вам необходимо отредактировать файл php3.ini (оригинал php3.ini-dist). Измените в нем праметр extension_dir=<путь где лежит ваш PHP3 со всеми модулями> (у меня, как говорилось это c:/ php3/), а также уберите коментарии со строк extension= с теми модулями, которые вам будут необходимы (если вы не просекаете и смысл, значит вам они не нужны). И все! Теперь поместите этот файл (php3.ini) в корневой каталог вашейwindows (c:\\windows обычно). Собственно сам php3 - готов. Чтобы проверить его работу создайте файл со следующим содержимым:


echo "Список файлов\\n";

$dir = dir(".");

while($file = $dir->read())

echo "$file\\n";

$dir->close();


?>


И запустите его так <путь к вашему php>/php.exe -q <имя файла>. Для особо талантливых обьясняю подробнее. Если вы поместили все файлы из дистрибутива php в каталог c:/php3/, а созданный вами файл с вышеописанным скриптом называется test.php то запустить его вам нужно будет так:

c:/php3/php.exe -q test.php


Этот скрипт должен вывести список файлов в текущем каталоге.
Следующий шаг - конфигурирование вебсервера для работы с PHP. Если вы используете IIS - ваши проблемы Wink(используйте файл php_iis_reg.inf в поставкеPHP3), если вы используете apache, то сейчас я вам помогу.
Вообще идеология обработки php-сценариев сервером очень проста. Есть такое понятие как mime тип файла, который определяется по расширению, гляньте в файл mime.types и вы сами, надеюсь, все поймете. Файл имеет простой формат: <тип файла> <расширение файла>. Вот мы и вставим в него следующие три строчки:

application/x-httpd-php3 php

application/x-httpd-php3 php3

application/x-httpd-php3 phtml


Что мы этим имеем ввиду? Что файлы с расширением phpphp3 и phtml являются приложением (application) типа x-httpd-php3 (а можете и сами название этого типа придумать, дальше поймете зачем это вообще нужно). Есть, к стати, и второй вариант прописывания mime-типов, напрямую в httpd.conf вот так:

AddType application/x-httpd-php3 .php

AddType application/x-httpd-php3 .php3

AddType application/x-httpd-php3 .phtml


После того. Как мы покончили с определением типов (и все знают этих типов). Нам осталось добавить в httpd.conf всего одну строчку для запуска этих сценариев. Вот эту: Action application/x-httpd-php3 <путь и имя php транслятора>, которая означает, что для файлов типа application/x-httpd-php3запускать указанную вами прогу. У меня под win эта строчка выглядит так:

Action application/x-httpd-php3 /cgi-bin/php.exe


То есть я положил сам php.exe в директорию прописанную как /cgi-bin/ и не мучался (добавить три лишние строки) с прописыванием разрешения на запуск из собствненой директории php.
Собственно вот и все. Запускайте ваш вебсервер и пробуйте скрипты из архива с документацией от php или описанные мной. Если у вас все таки что-то неработает - смотрите логи от вебсервера. Опишу вкратце еще раз все необходимые действия:




  1. скопировать php дистрибутив в выранную вами директорию;


  2. соответсвенное конфигурирование php3.ini (добвление этой самой директории) и помещение его в директорию windows;


  3. добавление новых mime типов для распознавания документов, содержащих сценарии php;


  4. сообщение серверу что делать с документами этих типов (запускать для них php.exe)



С чего начинается Родина?
С картинки в родном букваре Wink, то есть с чтения (или хотя бы просмотра) документации. Не пугайтесь. В конце - концов, если вы собираетесь работать на phpвам когда-либо все равно придется заглянуть туда и лучше, если вы это сделаете сейчас, благо мануал у php очень удобный, легкий, не требующий длительного штудирования, но основы языка нужно знать и без чтения тут никак не обойтись.
Вообще я потратил не мало времени за написанием скриптов на php и если это время можно измерить сотнями часов, то время, потраченное на поиск нужных функций или решение проблем с осуществлением каких-либо специфических операций, в общем время просиженной за документаций, как ни странно, не более одного часа! Так что еще раз повторю - не пугайтесь и флаг (очки) вам в руки.
Начнем с того, что для PHP существует четыре способа отделения его от общего кода HTML (имеется ввиду для интерпретации)

1.  



2.  

3.   

        echo ("специально для FrontPage");

    


4.  <% echo ("ASP-стиль"); %>

    <%= $variable; # Комментарий "<%echo .." %>


Далее необходимо конечно сказать и о том, что инструкции в PHP отделяются друг от друга сишно-паскалевско-перловым способом - точкой с запятой. Хотя перед закрывающим тегом (?>) точку с запятой ставить не обязательно.


echo "This is a test also" ?>


PHP поддерживает комментарии в стиле CC++ и Unix shell. Например:


    echo "test"; // Комментарий в стиле C++

    /* Это многострочный

комментарий в стиле C++*/

    echo "test2";

    echo "Test3"; # Это unix-shell комментарий

?>



ТИПЫ
PHP поддерживает следующие типы данных:




  • integer - целочисленные


  • floating-point numbers или double - числа с плавающей запятой


  • string - строки, текст


  • array - массивы


  • object - обьекты

Преобразование типов происходит следующим образом. Если переменной приравнивается строка (текст в кавычках), то эта переменная становится строковой. Если же с ней совершается одна из многих математических функций или она приравнивается численной переменой, она становится численной, причем если приравнивается не целому значению - то станет типом double. Пример:

$foo = "0";  // $foo строка (ASCII 48)

$foo++;      // $foo тоже строка "1" (ASCII 49)

$foo += 1;   // $foo теперь integer (2)

$foo = $foo + 1.3;  // $foo теперь double (3.3)

$foo = 5 + "10 поросят"; // $foo теперь снова integer (15)

$foo = 5 + "10 ящиков";     // $foo и по прежнему integer (15)

// значение в скобках - результирующее значение переменной


Преобразовывать типы можно чистА в сишном стиле:

$foo = 10;   // $foo это integer

$bar = (double) $foo;   // $bar это double


Разрешенные преобразования:




  • (int), (integer) - преобразование в integer


  • (real), (double), (float) - преобразование в double


  • (string) - преобразование в string


  • (array) - преобразование в array


  • (object) - преобразование в  object

Кстати, определить тип переменной можно функциями gettype()is_long()is_double()is_string()is_array() и is_object().

ОБЛАСТЬ ВИДИМОСТИ ПЕРЕМЕННЫХ
Во-первых, все переменные начинаются с символа $
Во-вторых, существуют границы определения переменных. Например, чтобы использовать глобальные переменные в функциях, необходимо их сначала декларировать как глобальные, иначе вы будете использовать локальные переменные. Поясню на примере:

$a = 1; /* глобальное определение */

Function Test (){

$a=2;

    echo $a; /* локальная переменная */

}

Test ();

echo $a;


Таким образом в функции используется локальная, собственная переменная и результатом программы будет вывод чисел 2 и 1, а не 2 и 2, как некоторые могли подумать.
Ну, а если вы хотите в функции использовать глобальные переменные, необходимо сделать так (декларировать с помощью оператора global):

$a = 1; /* глобальное определение */

Function Test (){

global $a;

$a=2;

    echo $a; /* локальная переменная */

}

Test ();

echo $a;


Теперь в функции вы переопредилили глобальную переменную и вывод будет числа 2 и 2. Но есть и другой способ добраться до глобально-определенных данных - через ассоциативный массив $GLOBALS[ ]. Пример предыдущей программы, реализованный новым способом:

$a = 1; /* глобальное определение */

Function Test (){

$GLOBALS["a"]=2;

    echo $a; /* локальная переменная */

}

Test ();

echo $a;


Обратите внимание, что переменная в массиве указывается без символа $. Кроме этого PHP предоставляет возможность использовать статические переменные. Все как в C/C++:

Function Test (){

    static $a = 0;

    echo $a;

    $a++;

}


Test();

Test();

Test();


Результатом выполнения этого скрипта будет вывод чисел 0,1 и 2.

ПЕРЕМЕННЫЕ ПЕРЕМЕННЫЕ
Скорее всего скоро вам понадобятся переменные c динамически (в ходе работы скрипта) изменяемым наименованием. Поясню на примере, что я имею в виду:

$a = "hello";

$$a = "world";


Данная запись означает, что переменной с именем a мы присваиваем значение "hello". Следующей операцией переменной с именем, хранящимся в переменной с именем a, то есть - переменной hello мы присваиваем значение "world".

echo "$a ${$a}";


тоже самое, что и

echo "$a $hello";


    
В результате мы получим на экране hello world.
Дело немного усложняется, если вы хотите использовать подобные массивы. Ведь если вы запишете $$a[1] - интерпретатору надо будет знать, что использовать в качестве переменной - $a или $$a (имя, хранящееся в $a). В таком случаем вам придется использовать следующий синтаксис - ${$a[1]} в случае, если вы хотите использовать переменную с именем, хранящимся в массиве $a с индексом 1 и ${$a}[1] в другом случае (если вы хотите использовать 1 элемент массива с именем, хранящимся в переменной $a.
Надеюсь все понятно.


или прыжок на месте.
Мы продолжаем наш концерт, а заодно и рассматривать основы PHP. Сегодня начнем с внешних переменных.

HTML Формы (GET и POST)
После заполнения пользователем HTML формы PHP может получить доступ к этим данным через переменные, имеющие такие-же названия, что и поля в форме. Как всегда продемонстрирую на примере:


    Name:
    


Значит после того, как пользователь нажмет в форме кнопку submit в php-скрипт foo.php3 методом post передадутся данные из формы, а обратиться, например к текстовому полю, из этого скрипта можно будет через переменную $name. Кроме того, можно использовать и массивы в качестве названий полей.



    Name:

    Email:

    Beer:

    

    




В результате этот скрипт array.php может вывести полученные результаты так:

echo "Имя: ".$personal["name"];

echo "Email: ".$personal["email"];

for ($i=0;$i
echo $beer[$i]."
";


Кроме этого, как известно, в форме в качестве submit-кнопки можно применять картику . В таком случае скрипту передаются еще две дополнительные переменные, содержащие координаты точки, на которой кликнули мышкой. Это sub_x и sub_y.

http://igorb962007.ya.ru/

Вернуться к началу  Сообщение [Страница 1 из 1]

Права доступа к этому форуму:
Вы не можете отвечать на сообщения