![]() |
Внимательно смотрим и учимся
перенесено от сюда http://second.udomlya.ru/uf/showpost...2&postcount=12
PHP (произносится пи-эйч-пи___769;) — скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных. В настоящее время поддерживается подавляющим большинством предоставителей хостинга. Входит в LAMP — «стандартный» набор для создания вебсайтов (Linux, Apache, Mysql, PHP (Python или Perl)). В области программирования для Сети PHP — один из популярнейших скриптовых языков (наряду с JSP, PERL и языками, используемыми в ASP) благодаря своей простоте, скорости выполнения, богатой функциональности и распространению исходных кодов на основе лицензии PHP. PHP особенен наличием ядра и подключаемых модулей, «расширений»: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и т. п. Любой желающий может разработать своё собственное расширение и подключить его. Существуют сотни расширений, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя. Интерпретатор PHP подключается к веб-серверу либо через модуль, созданный специально для этого сервера (например, для Apache или IIS), либо в качестве CGI-приложения. Кроме этого, он может использоваться для решения административных задач в операционных системах UNIX, Linux, Windows и Mac OS X. Однако в таком качестве он не получил распространение, отдавая пальму первенства Perl, Python и VBScript. Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl. Ныне PHP используется сотнями тысяч разработчиков. Несколько миллионов сайтов сообщают о работе с PHP, что составляет более пятой доли доменов Интернета. Группа разработчиков PHP состоит из множества людей, добровольно работающих над ядром и расширениями PHP, и смежными проектами, такими, как PEAR или документация языка. Название PHP — рекурсивная аббревиатура, означающая «PHP: Hypertext Preprocessor» (ранее акроним расшифровывался как «Personal Home Page Tools»). Изначально PHP создавался в качестве надстройки над Perl для облегчения разработки веб-страниц. PHP/FI В 1994 году датский программист (ныне живущий в Канаде) Расмус Лердорф (Rasmus Lerdorf) написал набор скриптов на Perl/CGI для вывода и учёта посетителей его онлайн-резюме, обрабатывающий шаблоны HTML-документов. Лердорф назвал набор Personal Home Page (Личная Домашняя Страница). Вскоре функциональности и быстроты Perl — интерпретатора скриптов перестало хватать, и Лердорф написал на языке C новый интерпретатор шаблонов PHP/FI (англ. Personal Home Page / Forms Interpreter — «Личная Домашняя Страница / Интерпретатор форм». PHP/FI включал базовую функциональность сегодняшнего PHP: оформление переменных в стиле Perl ($имя_переменной для вывода значения), автоматическую обработку форм и встраиваемость в HTML-текст и многое другое. Новорожденный язык отличался от своего прародителя более простым и ограниченным синтаксисом. В 1997 году после длительного бета-тестирования вышла вторая версия обработчика, написанного на C — PHP/FI 2.0. Её использовали около 1 %(приблизительно 50 тысяч) всех интернет-доменов мира. PHP 3 PHP 3.0 была первой версией, напоминающей PHP, каким мы знаем его сегодня. В 1997 году два израильских программиста Энди Гутманс (Andi Gutmans) и Зев Сураски (Zeev Suraski), два разработчика из израильского института технологий (Technion), переписали код с нуля: разработчики сочли PHP/FI 2.0 непригодным для разработки приложения электронной коммерции, над которым они работали для проекта Университета расположенного в Хайфе, Израиль. Для совместной работы над PHP 3.0 с помощью базы разработчиков PHP/FI 2.0 Энди, Расмус и Зев решили объединиться и объявить PHP 3.0 официальным преемником PHP/FI, разработка же PHP/FI была практически полностью прекращена. Одной из сильнейших сторон PHP 3.0 была возможность расширения ядра. Впоследствии интерфейс написания расширений привлёк к PHP множество сторонних разработчиков, работающих над своими модулями, что дало PHP возможность работать с огромным количеством баз данных, протоколов, поддерживать большое число API. Фактически, это и был главный ключ к успеху, но стоит добавить, что немаловажным шагом оказалась разработка нового, намного более мощного и полного синтаксиса с поддержкой ООП. Абсолютно новый язык программирования получил новое имя. Разработчики отказались от дополнения о персональном использовании, которое имелось в аббревиатуре PHP/FI. Язык был назван просто PHP — аббревиатура, содержащая рекурсивный акроним (англ. PHP: Hypertext Preprocessor — «PHP: Препроцессор Гипертекста»). К концу 1998 года PHP использовался десятками тысяч пользователей. Сотни тысяч веб-сайтов сообщали о том, что они работают с использованием этого языка. В то время PHP 3.0 был установлен приблизительно на 10 % веб-серверов Интернета. PHP 3.0 был официально выпущен в июне 1998 года после 9 месяцев публичного тестирования. PHP 4 К зиме 1998 года, практически сразу после официального выхода PHP 3.0, Энди Гутманс и Зев Сураски начали переработку ядра PHP. В задачи входило увеличение производительности сложных приложений и улучшение модульности базиса кода PHP. Расширения дали PHP 3.0 возможность успешно работать с набором баз данных и поддерживать большое количество различных API и протоколов, но PHP 3.0 не имел качественной поддержки модулей и приложения работали неэффективно. Новый движок, названный Zend Engine (от имён создателей, Зева и Энди, также основателей Zend Technologies), успешно справлялся с поставленными задачами и впервые был представлен в середине 1999 года. PHP 4.0, основанный на этом движке и принёсший с собой набор дополнительных функций, официально вышел в мае 2000 года, почти через два года после выхода своего предшественника PHP 3.0. В дополнение к улучшению производительности, PHP 4.0 имел ещё несколько ключевых нововведений, таких как поддержка сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций. PHP 5 Пятая версия PHP была выпущена разработчиками 13 июля 2004 года. Изменения включают обновление ядра Zend (Zend Engine 2), что существенно увеличило эффективность интерпретатора. Введена поддержка языка разметки XML. Полностью переработаны функции ООП, которые стали во многом схожи с моделью, используемой в Java. В частности, введён деструктор, открытые, закрытые и защищённые члены и методы, окончательные члены и методы, интерфейсы и клонирование объектов. Нововведения, однако, были сделаны с расчётом сохранить наибольшую совместимость с кодом на предыдущих версиях языка. На данный момент самыми стабильными и часто используемыми являются именно версии 5.xx, даже несмотря на то, что уже имеется dev-версия PHP 6. PHP 6 Шестая версия PHP находится на начальной стадии разработки. В ней уже сделано[1] множество нововедений, как, например, исключение из ядра POSIX-регулярных выражений и «длинных» суперглобальных массивов, удаление safe_mode, php_magic_quotes и register_globals. Также много внимания уделено поддержке Юникода.[2]. Получить текущую версию разрабатываемого кода для Linux/BSD и скомпилированные версии для Windows можно на PHP Snapshots. http://ru.wikipedia.org/wiki/PHP |
Базовый Синтаксис
Базовый Синтаксис
Синтаксис PHP заимствован непосредствено из C. Java и Perl также повлияли на синтаксис данного языка. Переход из HTML 1. <? echo("простейший способ"); ?> 2. <?php echo("при работе с XML документами делайте так\n"); ?> 3. <script language="php"> echo ("некоторые редакторы (подобные FrontPage) не любят обрабатывающие инструкции"); </script>; 4. <% echo("От PHP 3.0.4 можно факультативно применять ASP-тэги"); %> Операторы разделяются также как в C или Perl - точкой с запятой. Если оператор в скрипте последний или единственный, стоящий перед "?>", то точку с запятой ставить необязательно. Следующие записи эквивалентны: <php echo "Это тест"; ?> <php echo "Это тест" ?> Типы переменных integer - целое double - число с дробной частью string - строковая переменная array - массив object - объектная переменная pdfdoc - PDF-документ (только при наличии поддержки PDF) pdfinfo - PDF-инфо (только при наличии поддержки PDF) Тип переменной обычно не устанавливается программистом; вместо этого, он определяется PHP во время выполнения программы, в зависимости от контекста в котором данная переменная используется. Если вам нравится указывать тип переменной непосредственно, вы можете использовать для этого инструкцию cast либо функцию settype(). Учтите, что переменная может вести себя по разному в определенных ситуациях, в зависимости от того, какой тип определен для нее в данное время. Более подробно это описано в разделе Изменение типа. Инициализация переменной Для инициализации переменной в PHP вы просто присваиваите ей значение. Общий вид переменной выглядит так: $bar = 'foo'; Обратите внимание на знак доллара ($). Он то и означает, что данный оператор является переменной. Переменные могут содержать любые латински буквы и цифры или знак подчеркивания "_", однако первый символ переменной быть цифрой не может. Переменные так же чувствительны к регистру, к примеру две переменные $a и $A будут абсолютно разные. Примеры правильных переменных: $bar = 'foo'; $_bar = 'foo'; $PeRReMenNayA = "foo"; примеры неправильных переменных: bar = 'foo'; $ bar = 'foo'; $45 = foo; Изменяемые переменные Иногда бывает удобно давать переменным изменяемые имена. Такие имена могут изменяться динамически. Обычная переменая устанавливается так: $a = "hello"; Изменяемая переменная берет некое значение и обрабатывает его как имя переменной. В приведенном выше примере значение hello может быть использовано как имя переменной, посредством применения двух записанных подряд знаков доллара, т.е.: $$a = "world"; С этой точки зрения, две переменных определены и сохранены в символьном дереве PHP: $a с содержимым "hello" и $hello с содержимым "world". Так, инструкция: echo "$a ${$a}"; осуществляет то же самое, что и инструкция: echo "$a $hello"; а именно, обе они выводят: hello world. Объединение в блоки (группы) Некоторые операторы могу быть объедененны в группы, делается ето для того, чтобы определенной функции задать или ограничить область ее действия. Для етого используется открывающийся и закрывающийся символ "{" и "}" соответсвенно. Пример использования функции if: if ($bar == 'foo') { сдесь могут находиться любые операторы и функции, которые будут выполнены, если переменной $bar присвоено значение foo } Выше был приведен только основной (базовый) синтаксис, все остальное будет опубликовываться по мере освоения php :) |
Технология CGI
Технология CGI
Технология CGI (Common Gateway Interface) подразумевает использование в составе ресурса Интернет интерактивных элементов на базе приложений, обеспечивающих передачу потока данных от объекта к объекту. Именно так организовано во Всемирной сети большинство чатов, конференций, досок объявлений, гостевых книг, поисковых машин и систем подсчета рейтинга. В общем случае принцип работы CGI выглядит следующим образом: пользователь заполняет на web-страничке ту или иную форму и нажимает на кнопку, после чего встроенная в код HTML строка вызова CGI-скрипта запускает соответствующую программу CGI и передает ей управление процессом обработки информации. Введенные пользователем данные отсылаются этой программе, а она, в свою очередь, встраивает их в другую страницу, отправляет по почте или трансформирует каким-либо иным способом. Отправить данные на сервер можно двумя способами POST и GET. Метод GET отличается от метода POST тем, что данные передаваемые на сервер присоединаются в конец URL (URL - это то что вы вводите в броузере), например http://www.udomlya.ru/~ruble/_/?show=13, в выделении первый символ "?" - с этого символа начинается GET данные, в общем виде они выглядят так :имя переменной=значение&имя переменной2=значение&имя переменной3=значение& и т.д. Метод POST передаёт данные в HTTP заголовках. |
Пример передачи данных на сервер:
PHP код:
|
Хочу добавить, для тех кто может быть что-то не совсем хорошо понял :)
PHP код:
Получить данные, можно с помощью переменных, которые создаются автоматически, при отправке формы, ети переменные $_POST и $_GET, в зависимости от используемого способа передачи. Из вышеприведенного примера, создаются переменные $_POST['text'] и $_GET['text'], индекс, который указывается в квадратных скобках и в кавычках берется отсюда: Код:
<INPUT type="text" name="text">При использовании метода GET, необязательно использовании формы, можно, допустим, сделать ссылку Код:
<a href="index.php?name=value&name2=value2">ссылка</a> |
народ, вы пробуйте, одной теории мало, если есть вопросы - задавайте :)
|
вылажена последня версия официальной документации по PHP на русском
многие просят её себе в руки так что можно взять тут или тут если повезёт. весит 3мб. |
Цитата:
может кто нибудь что нибудь покажет, спросит, а? |
Цитата:
з.ы. кто не понял, то я имел ввиду тех, кто ответил "нужны", на опрос "Нужны ли нам уроки php". |
|
Цитата:
|
Уроки дальше будут, или всё на этом?!
|
Никогда не интересовался PHP но документ по нему почитал с интересом. А с чего вдруг начались уроки, это конечно здорово знаниями делится, но здесь имхо народ в основном любит сразу получать результат а не создавать что либо. Ну чтоб не просто так писать этот пост, к примеру в визуал C++ есть среда программирования, где можно создать интерфейс, оттестировать скрипты, скомпилировать эгзешник и т.д. В PHP я думаю тоже есть нечто подобное, в общем дайте прогу или линк если весит немного, попробовать че ето такое, мне в грядущим отпуске времени навалом будит может от нечего делать язык освою…
|
Цитата:
|
Урок 2
Гостевая книга
часть первая. Сообщения гостевой книги будут храниться в текстовом файле (messages.dat). Одно сообщение - одна строка, т.е. ДАТА<split>ИМЯ<split>СООБЩЕНИЕ ДАТА<split>ИМЯ<split>СООБЩЕНИЕ ДАТА<split>ИМЯ<split>СООБЩЕНИЕ <split> - это разделитель, нужен он что бы мы в программе могли отделить ДАТУ от ИМЕНИ и от СООБЩЕНИЯ : ) он может быть любым. Код:
<? |
местоположение поменялось...
Цитата:
|
re
Цитата:
а если нужно какая помощь то просто лазаем по форумам. http://php.ru http://phpinside.ru http://phpclub.ru http://php.net - официальный сайт php ! |
Цитата:
|
re:
Цитата:
Да, но без него порой не оботись. Наверное еще стот переодически посещать данный сайт php5 - неплохо написанно ну и читать нужно между строк ))) |
Цитата:
|
re:
Цитата:
Жаль, что у меня нет электронной версии книги, а то слил бы . Но на форуме который идет как дополнее книге есть все и даже больше. с того же сайта можно слить исходники кода приведенного в книге. На форуме где то видел, что парень пытался прикрутить Perl к дензверю, да это возможно сделать но возникает резонный вопрос, а зачем ? ну вообщем это форум из разряда тех, что у вас есть вопросы и вы туп... как пробка , но все равно мы вам все расскажем разжуем и покажем ! |
Цитата:
вот она в электронном виде http://download.openlib.org.ua/1219561 |
Цитата:
Цитата:
|
Цитата:
PHP код:
|
Цитата:
Только нельзя доверять тому что шлют с внешнего мира на сервер. Предлагаю добавить addslashes для защиты от специально составленных символов и htmlspecialchars для защиты от взлома дизайна сюда: $name = htmlspecialchars(addslashes($_POST['name'])); $text = htmlspecialchars(addslashes($_POST['text'])); , так же могут подменить POST значение , предлагаю добавить после условия "if(isset($_POST['knopka']))", ещё одно условие на проверку значения $_POST['knopka'], т.е. if(addslashes($_POST['knopka'])==="Отправить") |
Цитата:
PHP код:
|
Всё разобрался в чём дело. У меня сначала файл считывался, а потом я в него информацию добавлял и поэтому эта инфа только после следующего обновления появлялась. Немного ещё код переделал:
PHP код:
|
С Гостевой книгой более менее разобрались.
Меня всё мучает вопрос, как же сделать так что бы, когда было написанно допустим более 10 сообщений в гостевой книге, они разделялись на сраницы? |
Цитата:
|
Цитата:
PHP код:
|
Хоть эта тема последнее время сильно запылилась.... я всеравно задам свой вопрос!
По мере изучения php (начал ток сегодня!! Такчто за примитивность неосмеивать!) наткнулся на функцию gettype(). Вспомнив скрипт отправки данных на сервер решил чутьчуть его усовершенствовать... Усовершенствование заключается в том чтоб определять тип введённого значения (Нетрудно догодатся))!Присвоил $type присвоил значение gettype($get).И в HTML коде прописал отображение этой переменной! Тип передачи POST убрал! (частично! Т.К. без строк Код:
if(isset($_POST['go'])) Вот полный код и ссылка на этот скрипт на моём сервере! Вот полный код: PHP код:
Помогите ПОЖАЛУЙСТА! |
Цитата:
PHP код:
|
Цитата:
Пытался поставить значение переменной $get поставить $_GET['text'] а "Методом GET передано:" добавить в HTML код! P.S. Незнаю как у тебя но твой код тоже какойто карявый! |
Цитата:
|
Цитата:
И кстати почему она обязательно тока STRING?! |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
используй интерпретатор php |
Цитата:
|
Цитата:
Но так как я основывался на твой код, то вот это я для себя меняю PHP код:
PHP код:
|
После того как Малыш сказал что посланное значение всегда STRING (по крайней мере так понял!!) и в ЭТОМ
PHP код:
|
Цитата:
|
to RUBLE
Может продолжишь уроки?! Оч понравился язык. Вот в данный момент пытаюсь освоить PHP+MySQL, если бы ты дал парочку примерчиков и немного их объяснил было бы проще изучать. |
Цитата:
|
Цитата:
П.С.: просто думаю что может кто ещё на PHP подсядет, просматривая данные уроки. |
Цитата:
Но досихпор не могу опять начать изучать!(ет после 2 недельной паузы!!) |
Тут недавно опять занялся PHP. Так вот у меня возник один вопрос....
Вот если я добавляю из какойто переменной к массиву какоето значение, например PHP код:
|
Цитата:
<?php $colors = array('красный', 'синий', 'зеленый', 'желтый'); foreach ($colors as $color) { echo "Вам нравится $color?\n"; } ?> Результат работы приведенного скрипта будет следующий: Вам нравится красный? Вам нравится синий? Вам нравится зеленый? Вам нравится желтый? |
Кстати помогите разобратся с моим кодом!
PHP код:
$enter_user-правильность ввода Юзернайма(1-true,0-false) для $enter_pass тоже самое. Сделано ето для того чтоб сообшать пользователю, кагда он ввел правильное имя, но не правильный пасс. или когда все неправильно, или кагда все верно... Проблема в том, что я не могу проверить правильность обеих переменный одновременно! Способ знаю(он и есть в коде), но всеравно чтото неполучается! В любам случае он говорит ,что переменные равны 1ому! Но ето не так, потомучто я их вывел сбоку!:) ПОМОГИТЕ! |
Цитата:
|
| Текущее время: 15:35. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot