Как сделать программу на php

Обновлено: 07.07.2024

Начиная с текущего урока мы начнем создавать простейшее веб приложение с использованием php и mysql. Оно будет основано на базе данных sport, которую мы создали на прошлых уроках при знакомстве с Mysql. В этом уроке мы определим структуру нашего приложения, напишем скрипт соединения с базой данных, а также построим скелет нашего приложения.

Структура:
Конфигурация (db.php — подключение к БД)
1. Главная страница — index.php (форма авторизации)
2. Команды (teams.php — список команд с возможностью редактировать информацию о команде)
3. Игроки (players.php — список игроков с возможностью редактировать информацию об игроке)
4. Страны (countries.php — список команд по странам)

В своих проектах я использую универсальный драйвер PDO для работы с базой данных. Есть и другие варианты работы с базами данных, например mysql и mysqli. Сразу отмечу, что расширение mysql с версии php 5.5 считается устаревшим, а с версии 7 удалено.
Почему я использую PDO? Главным его преимуществом является универсальность: PDO может свободно работать с разными производителями СУБД, что делает переход из одной СУБД в другую с точки зрения php мене затратным. Дальнейшие детали и особенности работы с PDO мы рассмотрим в следующих уроках, в процессе написания нашего приложения.

Также в уроке вы узнаете о конструкции try…catch. Когда используется данная конструкция? В процессе создания программ возникают ошибки (ошибки логики, опечатки и т.п), но могут возникать ошибки, которые вы изначально можете предусмотреть. Например, вы прекрасно понимаете, что соединение с БД может закончиться ошибкой, и эту ошибку необходимо предусмотреть.

Пример try. catch

Создание исполняемых приложений на PHP


Создание исполняемых приложений на PHP

Мы привыкли, что язык PHP используется для web-разработки, и в большинстве случаев это действительно так. Но при этом PHP обладает обширным арсеналом различных функций и инструментов, которые можно использовать не только в сайтостроительстве. Из PHP-скриптов можно делать полноценные приложения для Windows в виде привычных нам EXE-файлов. Для PHP4 в свое время были такие интересные штуки, как Roadsend Compiler Studio и Bambalam PHP EXE Compiler, которые делали из скриптов консольные приложения. Были даже такие инструменты, как PHP-GTK и WinBlider, позволявшие создавать на PHP программы с графическим оконным интерфейсом. Теперь, к сожалению, все эти проекты уже прекратили свое существование. Инструментов нет, но задачи никто не отменял! Значит надо искать какие-то новые решения.

Надо понимать, что язык PHP все-таки не подразумевает компиляцию, и все решения так или иначе представляют собой биндеры интерпретатора PHP с необходимыми библиотеками и самих скриптов, которые, собственно, и являются приложением. Из-за этого размер готового файла даже в упакованном виде получается слишком большим.

Для запуска PHP-скрипта на выполнение используется команда

php.exe -f скрипт.php
В ней заключается суть создания исполняемых приложений на PHP. Самый простой способ сделать подобие приложения на PHP - это использовать самораспаковывающийся архив RAR.

Создаем SFX-архив


Создаем SFX-архив

Предположим, что наше PHP-приложение содержится в единственном скрипте index.php. Запускаем архиватор, создаем новый архив, добавляем в него файл скрипта, а из папки с установленным PHP берем два файла - php.exe и php5ts.dll. Если в скрипте не используются функции работы с сетью, графикой и т.п., то этого набора должно хватить. В параметрах архива ставим галочку "Создать SFX-архив".

Параметры SFX-архива


Параметры SFX-архива

На следующей вкладке открываем дополнительные параметры архива.

Настройка параметров


Настройка параметров

В окне настроек проставляем галочки, как показано на скриншотах.

Настройка параметров


Настройка параметров

Настройка параметров запуска


Настройка параметров запуска

Последним шагом прописываем, что после распаковки должен быть запущен интерпретатор PHP с нашим скриптом. Для большей изящности в настройках архива можно выбрать собственную иконку, которая будет у созданного приложения. Вот и все, создаем архив, запускаем его на выполнение. Скрипт запускается и отрабатывает как надо.

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

[PHP]
extension_dir = "."
extension=php_curl.dll
и упаковать его вместе с расширениями в этот же архив. Вообще, такие комплекты удобнее всего собирать в отдельной папке, там можно сразу проверять работоспособность скрипта, а главное, наличие всех зависимых библиотек и расширений. Например, указанное расширение php_curl потянет за собой паровозом еще библиотеки libeay32.dll, libssh2.dll и ssleay32.dll, которые также придется включать в архив.

Несмотря на простоту создания, у таких приложений есть существенные недостатки. Во-первых, кто угодно может открыть архив, ознакомиться с его содержимым, даже внести какие-то свои коррективы. Во-вторых, SFX-архивы не обрабатывают в чистом виде параметры командной строки, надо изворачиваться со специфическими ключами типа -sp . Поэтому приложения на базе SFX-архивов обычно могут выполнять только какие-то фиксированные действия, не предусматривающие взаимодействие с пользователем.

Более удобный вариант для создания приложений из PHP-скриптов - это коммерческая утилита MoleBox. Она упаковывает целое приложение в контейнер в виде единого exe-файла. Вместе с основным исполняемым файлом в контейнер помещаются необходимые для его работы библиотеки и прочие файлы, что нам и нужно. Несколько лет назад проект MoleBox прекратил существование, но это не значит, что его больше негде взять (пароль на архив "manhunter.ru").

Добавление файлов в проект


Добавление файлов в проект

Запускаем оболочку MoleBox, добавляем в корень проекта уже знакомый нам набор файлов для запуска интерпретатора PHP и нужные скрипты, затем открываем настройки проекта.

Настройки проекта


Настройки проекта

В настройках проекта в качестве главного исполняемого файла выбираем php.exe, из него же будет извлечена иконка для результирующего файла. В параметрах командной строки указываем имя запускаемого скрипта и дополнительный ключ , который означает, что кроме имени скрипта надо ретранслировать на обработку параметры, переданные файлу приложения. Для работы с параметрами командной строки в PHP предусмотрены две предустановленных переменных. В целочисленной переменной $argc содержится количество переданных параметров, а в массиве $argv хранятся сами параметры.

После сборки проекта получаем единый исполняемый файл. Увы, без недостатков тут тоже не обошлось. По причине популярности MoleBox у малварщиков, некоторые антивирусы очень плохо относятся к таким сборкам, сразу записывая их в подозрительные. В остальном же это очень хороший способ создания исполняемых приложений из PHP-скриптов.

Русский
Українська

Начнем с программы. Задача программы будет состоять в том, чтобы она здоровалась с нами. С помощью текстового редактора создаем файл, например, test.php. В нем пишем следующий код:

Теперь рассмотрим этот код. Он заключается в специальные теги php — и ?> . Далее мы видим оператор echo , который осуществляет вывод информации в браузер. Думаю, Вы уже знакомы с html тегами — и , именно их выводит оператор echo в начале и в конце сценария. $my_name – это переменная. Судить о том, что это переменная мы можем со знака доллара $, который ставится перед именами всех переменных.

Теперь сохраняем этот файл на локальном сервере, запускаем его с помощью браузера и смотрим на результат. Я использую сервер Denwer. О том, как установить бесплатный локальный сервер Denwer и как правильно сохранить наш файл test.php читаем здесь.

Одним из отличий PHP от других языков веб-программирования является возможность внедрять код в обычный HTML. Но для того чтобы php интерпретатор смог отличить php код от html-разметки надо использовать специальные теги, наиболее часто в данном языке web-программирования используются 4 виды таких тегов:

— Короткие теги
— Полные теги
— Теги скрипт
— Теги в стиле ASP

Короткие теги в первую очередь удобны своею краткостью при переходе в PHP. Они выглядят следующим образом:

Пример:

Но короткая запись не всегда является лучшим вариантом, так как на сервере может быть выключена поддержка коротких тегов, тогда надо редактировать файл php.ini (найти параметр short_open_tagи установить значение on) или же указать параметры конфигурации при компиляции php (необходимо указать ключ enable-short-tags).

Наиболее часто программистами используются полные или стандартные теги, так как они не требуют дополнительных настроек, однозначно указывают на язык веб-программирования и именно они используются в коде XHTML. Синтаксис:

При использовании этих тегов предыдущий пример будет выглядит следующим образом:

Довольно редко php-программисты используют теги в стиле ASP:

Они, как и короткие теги быстро выводят значения переменных PHP в тексте документа HTML. Аналогично в php.ini должен быть включен (должен иметь значение on) параметр asp_tags.

Последним вариантом тегов оформления перехода являются теги по-подобию скриптового языка JavaScript, они имеют следующий синтаксис:

PHP-выражение – это набор элементов языка, описывающий определенное действие. Все выражения в PHP разделяются точкой с запятой “;”, а завершаются закрывающим тегом ?> . Точка с запятой и закрывающий тег называют терминаторами (что в переводе с английского значит — завершать). Сравним 2 кода:

Почти все программисты при написании кода используют комментарии, это делается для того, чтобы потом было легче разбираться в сложном коде. В PHP используют 3 типы комментариев. Рассмотрим их на примерах:

Недавно на одном из форумов наткнулся на запись о том, что php — это язык для веб-разработки. Да, большинство сайтов (включая даже википедию) написаны именно на php, но этот язык можно использовать не только для веба.
Статья рассчитана на новичков php, на людей которые не знают, как писать консольные программы, поэтому, если вы гуру-программист, можете листать дальше. Под катом рассматривается пример простой консольной программы на php.
Что бы в unix системах в командной строке выполнить php скрипт, его нужно запустить следующей командой

С помощью параметров можно передавать нашему скрипту какие либо данные. Они будут хранится в массиве

Нулевой элемент этого массива — название php файла.

В качестве примера консольной php программы мы рассмотрим хранилище контактов, которое будет выдавать нам следующую информацию:


Данные будут хранится в MySQL базе данных. Создадим таблицу


Для работы с базой данных мы будем использовать класс SafeMySQL (GitHub)

Подключаем класс базы данных и описываем класс настроек

Не забываем поменять данные на свои.

В зависимости от параметра будем выполнять разные функции


Осталось описать класс action и все его функции.
Функция просмотра

Функция показа справки


Я старался написать понятный даже новичку код, комментировал почти каждую строчку и использовал ООП.
Программа не претендует на звание правильной и эффективной, но если кому понадобится — вот

Обложка: Разработка консольных приложений и автоматизация задач на PHP: старый добрый язык как знакомая замена Bash

Предполагается, что вы используете Linux и знаете PHP не ниже начального уровня:

original

Что такое PHP CLI

Итак, вот как выглядит самое простое приложение на PHP:

Но его можно запустить не только через браузер, но и через консоль. Если вы разместим этот код в файле с названием hello_world.php :

Вывод будет весьма ожидаемым:

В консольных PHP приложениях (CLI) вы можете использовать всё то, что и в обычных PHP приложениях, например, записывать и читать файлы функциями file_put_contents и file_get_contents .

Получение аргументов из командной строки

Менее знакомыми для обычных PHP-разработчиков являются функции для работы с командой строкой.

Если вы хотите передать из командой строки какие-либо аргументы в свой скрипт:

…то прочитать их из PHP можно с помощью глобальной переменной $argv. В данном случае её содержимое будет выглядеть вот так:

Заметьте, что значением с индексом 0 всегда является имя запускаемого скрипта. В некоторых случаях для чтения списка аргументов также может быть удобна функция getopt.

Чтение пользовательского ввода

Функция readline создана для запроса пользовательского ввода и используется следующим образом:

Выполнение сторонних приложений

Но когда возможностей стандартной библиотеки PHP не хватает, на помощь приходит функция system: с её помощью можно вызывать сторонние приложения.

Если нам, например, нужно стереть с экрана весь предыдущий вывод, то из PHP мы сможем сделать это вот так:

Это выполнит команду clear , как будто вы сами ввели её в консоль.

Форматирование вывода

Конечно, вы не можете выводить HTML-теги функцией echo, как вы делали раньше, и надеяться на отформатированный вывод, но возможность задать базовое оформление всё же остается благодаря так называемым эскейп-последовательностям:

Сокращенное написание

Ура, теперь вы знаете, как делать настоящие консольные приложения на PHP! Но, согласитесь, писать каждый раз

не очень то весело и даже немножко грустненько.

Итоговый файл должен получиться примерно таким:

Если назвать его myapp (без расширения), то при условии, что вы находитесь в папке с файлом, запустить его можно будет вот так:

А чтобы запускать ваше консольное приложение из любой существующей, нескольких несуществующих и одной невероятной папки, достаточно просто перенести его в каталог /usr/bin. Например, вот так:

Небольшой пример реального кода для закрепления знаний: FastAdminer — консольное PHP приложение, в котором используется всё описанное в статье.

Читайте также: