Сайт о телевидении

Сайт о телевидении

» » Как открыть код php. Выполнение PHP-файлов

Как открыть код php. Выполнение PHP-файлов

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

Как запустить php-скрипт из командной строки?

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

Php script.php

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

C:\php\php.exe script.php

Для UNIX-подобных систем:

/usr/bin/php script.php

Обратите внимание, что путь к интерпретатору PHP на вашей системе может быть другим, поэтому это тоже надо учесть. Например, для пользователей популярного пакета WampServer путь может быть таким:

C:\wamp\bin\php\php5.3.8\php.exe

Ну и наконец, чтобы не вводить полный путь каждый раз, следует добавить путь к интерпретатору в переменную окружения PATH вашей операционной системы.

Пишем простой скрипт для проверки кода ответа сервера

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

Сразу после запуска скрипт выбирает все файлы с расширением *.txt из папки files . Затем выводит данный список пользователю в формате номер => имя и ждет от пользователя ввода номера интересующего его файла.

Получение всех файлов по маске делается просто, для этого воспользуемся стандартной функцией glob , а вот с чтением данных из консоли всё немного интересней. Дело в том, что после запуска скрипта из командной строки в нем открываются три стандартных потока: для вывода (STDOUT), ввода (STDIN) и ошибок (STDERR). Указатели на эти потоки доступны для скрипта в виде одноименных констант и работать с ними можно так же как, например, с обычными файлами. Таким образом, чтобы прочитать данные из консоли достаточно просто прочитать строку из потока ввода: fgets(STDIN) .

$files = glob("files/*.txt"); $files or exit("No files to check.".PHP_EOL); echo "Files in folder: ".count($files).PHP_EOL; foreach ($files as $index => $name) { echo "[{$index}] => {$name}".PHP_EOL; } echo "Choose the file: "; $choice = intval(fgets(STDIN));

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

Array_key_exists($choice, $files) or exit("Wrong file selected.".PHP_EOL); $file = $files[$choice]; echo "Processing file "{$file}"...".PHP_EOL; $start_time = microtime(true); $code_stats = array(); $f = fopen($file, "r");

С помощью цикла while начинаем перебирать все строки в файле. Строки должны быть корректными url-адресами иначе мы не сможем определить правильный код ответа сервера. Заголовки для каждого адреса получаем с помощью стандартной функции get_headers , а код ответа находится обычно в первой строке заголовка.

While ($url = trim(fgets($f))) { $headers = get_headers($url); if (is_array($headers)) { array_key_exists($headers, $code_stats) or $code_stats[$headers] = 0; $code_stats[$headers]++; echo date("H:i:s")." HTTP code "{$headers}" for url "{$url}"".PHP_EOL; } else { array_key_exists("Unknown", $code_stats) or $code_stats["Unknown"] = 0; $code_stats["Unknown"]++; echo date("H:i:s")." Problem with url "{$url}"".PHP_EOL; } } fclose($f);

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

$elapsed_time = round(microtime(true) - $start_time, 3); echo "File processed in {$elapsed_time}s".PHP_EOL; echo "Code stats are:".PHP_EOL; print_r($code_stats);

Результатом работы такого приложения может быть, например, такой вывод:

$ php check.php Files in folder: 1 => files/db.txt Choose the file: 0 Processing file "files/db.txt"... 18:33:43 HTTP code "HTTP/1.0 200 OK" for url "http://mail.ru/" 18:33:45 HTTP code "HTTP/1.1 301 Moved Permanently" for url "http://yandex.ru/" 18:33:46 HTTP code "HTTP/1.1 302 Moved Temporarily" for url "http://rambler.ru/" 18:33:47 HTTP code "HTTP/1.0 301 Moved Permanently" for url "http://google.ru/" File processed in 5.558s Code stats are: Array ( => 1 => 1 => 1 => 1)

Выводы

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

Само приложение можно скачать .

В этой статье приводится пошаговое руководство по установке PHP для совместной работы с HTTP-сервером Apache на Windows . Эта процедура была протестирована как на Windows XP и Vista . Предполагается, что вы уже завершили установку Apache .

Этапы настройки PHP 5

1. Загрузите PHP 5

Прежде чем приступать к работе, скачайте копию PHP 5 со страницы загрузки . Загрузите защищенный пакет VC6 из раздела «Windows Binaries » — то есть не скачивайте установщик. Например, выберите пакет с пометкой «PHP 5.2.5 zip package », если на данный момент текущая версия — 5.2.5 .

Примечание : обратите внимание, что я не тестировал описанную ниже процедуру с версиями PHP 5.3 , только с 5.2.5 , которая была последней версией на момент написания статьи. Теоретически, те же действия должны выполняться и для установки PHP 7 .

2. Установите PHP 5

Создайте на жестком диске папку для PHP . Я предлагаю c:php , хотя вы можете использовать другое название и расположение папки. Лично я предпочитаю не использовать имена с пробелами.

Извлеките все файлы из загруженного архива в эту папку. Для этого просто дважды кликните по zip-файлу . А затем перетащите все файлы в папку c:php .

3. Тем, кто обновляет пакет: Удалите старый файл PHP.INI из каталога Windows

Если вы переходите на PHP 5 с более старой версии, перейдите в каталог Windows , (обычно это c:windows ), и удалите все файлы php.ini , которые вы ранее там размещали.

4. Настройка PHP

Перейдите в папку c:php и создайте копию файла php.ini-recommended . Назовите новый файл php.ini . Теперь у вас должен быть файл c:phpphp.in с содержимым, идентичным файлу c:phpphp.ini-recommended .

Примечание . Если вы используете Apache 1 нужно либо перенести файл php.ini в каталог Windows (c:windows ), либо настроить переменную среды PATH , чтобы включить в нее c:php . Если вы не знаете, как это сделать, просто переместите файл php.ini в папку c:windows . Не нужно этого делать, если используете Apache 2 , так как позже мы укажем в файле конфигурации Apache 2 директиву с расположением файла php.ini .

Для установки PHP на Windows 7 c помощью текстового редактора (например, такого как «Блокнот», который можно найти в разделе «Служебные» меню «Пуск» )? откройте файл php.ini . Возможно, придется внести следующие изменения в файл:

а) Включение коротких открывающих тегов

Найдите следующую строку:

short_open_tag = Off

Если для short_open_tag задано значение off , теги типа «

Поскольку многие сторонние PHP-скрипты используют формат «

short_open_tag = On

b) Волшебные кавычки

При установке Apache PHP по умолчанию входящие данные автоматически не экранируются с помощью слэша. Если вы хотите, чтобы входные данные имели префикс обратной косой черты («»), например, чтобы воспроизводить настройки хостинга, найдите следующую строку:

magic_quotes_gpc = Off

и замените ее на:

magic_quotes_gpc = On

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

c) Использование глобальных переменных

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

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

register_globals = Off

и изменить ее на:

register_globals = On

Предупреждение : при установке PHP на Windows не делайте этого, если у вас нет сторонних скриптов, для работы которых это необходимо. При написании новых скриптов лучше всегда исходить из того, что для элемента register_globals установлено значение «Off «.

d) Отображение ошибок

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

Чтобы PHP отображал сообщения об ошибках прямо в окне браузера, найдите следующую строку:

display_errors = Off

и измените ее на:

display_errors = On

Для этого параметра на работающем сайте всегда должно быть установлено значение Off .

e) Путь сессии

Если скрипт использует сессии, найдите следующую строку:

;session.save_path = "/tmp"

session.save_path задает папку, в которой PHP сохраняет файлы сессии. Поскольку папка /tmp в Windows не существует, то нужно установить другую папку. Один из способов — создать папку с именем c:tmp (как ранее мы создали c:php ) и указать для этого параметра данную папку. Если сделаете это, измените данную строку следующим образом:

session.save_path = "c:tmp"

Обратите внимание, что в дополнение к изменению пути я также удалил из строки префикс точки с запятой («;») .

Также можно использовать текущую папку TEMP на своем компьютере. Или создайте папку tmp в каталоге PHP , например c:phptmp и соответствующим образом настройте файл конфигурации. Возможных вариантов может быть много. Если вы не можете решить, какой из них выбрать, просто создайте c:php и сделайте, как я сказал выше.

f) Сервер SMTP

При установке PHP 5 5 если скрипт использует функцию mail() , и нужно, чтобы функция успешно отправляла почту на локальном компьютере, найдите следующий раздел:

; For Win32 only. SMTP = localhost smtp_port = 25 ; For Win32 only. ;sendmail_from = [email protected]

Измените его, указав адрес вашего SMTP-сервера и учетную запись электронной почты. Например, если ваш SMTP-сервер mail.example.com , а адрес электронной почты [email protected] , измените код так:

SMTP = mail.example.com smtp_port = 25 sendmail_from = [email protected]

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

Как настроить Apache для PHP 5

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

a) Запуск PHP 5 в качестве модуля Apache

Чтобы настроить Apache для загрузки PHP в качестве модуля для анализа PHP-скриптов , используйте текстовый редактор ASCII , чтобы открыть файл конфигурации Apache , httpd.conf .

Если вы используете Apache 1.x , файл находится в папке c:Program FilesApache GroupApacheconf . Пользователи Apache 2.0.x могут найти его в папке C:Program FilesApache GroupApache2conf , а пользователи Apache 2.2.x — в папке C:Program FilesApache Software FoundationApache2.2conf . Как правило, он находится в папке conf каталога, где установлен Apache .

Найдите раздел файла с операторами LoadModule . Объявления, перед которыми стоит символ хэша «#» , считаются закомментированными.

Если используете Apache 1.x , добавьте следующую строку после всех операторов LoadModule :

LoadModule php5_module "c:/php/php5apache.dll"

Если вы используете Apache 2.0.x , добавьте следующую строку после всех операторов LoadModule :

LoadModule php5_module "c:/php/php5apache2.dll"

Если вы используете Apache 2.2.x , добавьте следующую строку:

LoadModule php5_module "c:/php/php5apache2_2.dll"

Обратите внимание, что в этом примере установки PHP используется символ прямой косой черты («/» ) вместо традиционной обратной косой черты Windows («») . Это не опечатка.

Если вы используете Apache 1.x , найдите серию операторов «AddModule » и добавьте после всех строк следующую.

AddModule mod_php5.c

Затем найдите в файле блок AddType и добавьте приведенную ниже строку после последнего оператора AddType . Это нужно сделать независимо от того, какую версию Apache вы используете. Для Apache 2.2.x нужно найти строки AddType в разделе . Добавьте строку непосредственно перед закрытием для этого раздела.

Если необходима поддержка других типов файлов, например «.phtml », добавьте их в список, например, так:

Тем, кто использует одну из версий Apache 2 , нужно указать местоположение ini-файла PHP . Добавьте следующую строку в конец httpd.conf .

PHPIniDir "c:/php"

Если вы использовали другой каталог, нужно будет изменить c:/php на правильный путь. Не забудьте применить косую черту («/» ).

Если используете Apache 1 , вы уже разместили файл php.ini в папке Windows или где-нибудь в PATH . Поэтому PHP должен будет найти его самостоятельно.

Запуск PHP 5 в качестве бинарного файла CGI

Если вы настроили для PHP 5 загрузку в качестве модуля Apache , можете пропустить данный раздел. Он предназначен для тех, кто хочет настроить для PHP запуск в качестве бинарного CGI .

Процедура для этого при установке PHP 7 одинаковая как для Apache 1.x , так и для всех версий серии 2.x .

Найдите часть конфигурационного файла Apache , в которой находится раздел ScriptAlias . Добавьте приведенную ниже строку сразу после строки ScriptAlias для «cgi-bin ». Если используете Apache 2.2.x , убедитесь, что строка расположена до закрытия для раздела .

Обратите внимание : если вы установили PHP в другом месте, например c:Program Filesphp , нужно указать соответствующий путь вместо c:/php/ (например, c:Program Filesphp) . Не забудьте, что здесь мы используем простую косую черту («/» ) вместо обратной косой черты Windows («» ).

ScriptAlias /php/ "c:/php/"

Apache нужно настроить MIME тип PHP . Найдите блок комментариев AddType , поясняющий его использование, и добавьте следующую строку ниже него. Для Apache 2.2.x найдите строки AddType в разделе . Добавьте приведенную ниже строку непосредственно перед закрытием для этого раздела.

AddType application/x-httpd-php .php

Как и в случае установки PHP в качестве модуля Apache , можно добавить любые расширения, чтобы Apache распознавал их как скрипты PHP , например:

AddType application/x-httpd-php .phtml

Затем вам нужно указать серверу выполнять исполняемый файл PHP каждый раз, когда он встречает скрипт PHP . Добавьте в файл следующий код, например, после блока комментариев, поясняющих «Action «.

Если вы используете Apache 2.2.x , то добавьте код сразу после инструкции AddType , описанной выше; в Apache 2.2.x нет блока комментариев «Action «.

Action application/x-httpd-php "/php/php-cgi.exe"

Примечание : часть «/php/» будет распознана как ScriptAlias , своего рода макрос, который будет расширен Apache до «c:/php/» (или «c:/Program Files/php/» , если вы установили PHP там ). Другими словами, не помещайте в эту директиву путь «c:/php/php.exe» или «c:/Program Files/php/php.exe» , а используйте «/php/php-cgi.exe» .

Если используете Apache 2.2.x , найдите следующий раздел в файле httpd.conf :

Добавьте приведенные ниже строки сразу после раздела, который только что нашли.

AllowOverride None Options None Order allow,deny Allow from all

c) Настройка индексной страницы по умолчанию

Этот раздел относится к варианту установки PHP на Windows в качестве модуля Apache , так и двоичного CGI .

Если вы создаете файл index.php и хотите, чтобы Apache загружал его как главную страницу сайта, придется добавить еще одну строку в файл httpd.conf . Найдите строку, которая начинается с «DirectoryIndex », и добавьте «index.php » в список файлов. Например, если у вас был такой код:

DirectoryIndex index.html

измените его на:

DirectoryIndex index.php index.html

При следующем входе на веб-сервер через имя каталога, например «localhost » или «localhost/directory/ », Apache отправит все скрипты из index.php или содержимое файла index.html , если index.php недоступен.

Перезапустите веб-сервер Apache

Перезагрузите сервер Apache . Это необходимо, чтобы Apache считал новые директивы конфигурации PHP , которые вы поместили в файл httpd.conf . Сервер Apache 2.2 можно перезапустить, дважды кликнув по иконке Apache Service Monitor в панели задач и нажав в появившемся окне кнопку «Перезапустить ».

Тестирование установки PHP

После установки PHP 5 5 или другой версии языка создайте php-файл со следующей строкой:

Сохраните в каталог Apache htdocs файл с именем test.php . Если используете «Блокнот », не забудьте сохранить имя «test.php » с кавычками. Иначе программа самостоятельно добавит расширение .txt .

Откройте данный файл в браузере, введя в адресную строку «localhost / test.php » (без кавычек ). Не открывайте файл напрямую через проводник — вы увидите только код, введенный ранее. Вам нужно использовать указанный выше URL-адрес , чтобы браузер попытался получить доступ к веб-серверу Apache , который запускает PHP для интерпретации скрипта.

Если все пройдет успешно, вы увидите страницу с информацией о настройке PHP . Поздравляю — вы успешно установили PHP и настроили Apache для работы с ним. Вы можете загрузить этот же файл test.php на свой хостинг и запустить его там, чтобы узнать, как хостинг настроил PHP у себя, и попытаться воспроизвести эти настройки на своей машине.

Если это не сработает, проверьте, не выдает ли установка PHP или установка Apache ошибок. Для этого откройте окно командной строки и запустите php-cgi.exe для файла test.php , например, c:phpphp-cgi test.php .

Если вы вызвали PHP из командной строки и увидели большой HTML-файл со всей информацией о конфигурации PHP , значит, PHP настроен правильно. Вероятно, проблема связана с конфигурацией Apache . Убедитесь, что вы перезапустили Apache после внесения изменений в конфигурацию и что вы правильно настроили веб-сервер.

В CLI SAPI есть три различных способа запуска PHP-кода:

    Указывание конкретного файла для запуска.

    $ php my_script.php $ php -f my_script.php

    Оба способа (с указыванием опции -f или без) запустят файл my_script.php . Нет ограничений, какой файл запускать, и PHP-скрипты не обязаны иметь расширение .php .

    Замечание :

    Если необходимо передать аргументы в скрипт, то при использовании опции -f первым аргументом должен быть -- .

  1. Передать PHP-код напрямую в командной строке.

    $ php -r "print_r(get_defined_constants());"

    Необходимо быть особо осторожным при использовании этого способа, так как может произойти подстановка переменных оболочки при использовании двойных кавычек.

    Замечание :

    Внимательно прочтите пример: в нем нет открывающих и закрывающих тегов! Опция -r просто в них не нуждается. Их использование приведет к ошибке парсера.

  2. Передать запускаемый PHP-код через стандартный поток ввода (stdin ).

    Это дает мощную возможность создавать PHP-код и скармливать его запускаемому файлу, как показано в этом (вымышленном) примере:

    $ some_application | some_filter | php | sort -u > final_output.txt

Вы не можете комбинировать любой из этих трех способов запуска кода.

Как и любое другое консольное приложение, бинарный файл PHP принимает аргументы, но PHP-скрипт также может получать аргументы. PHP не ограничивает количество аргументов, передаваемых в скрипт (оболочка консоли устанавливает некоторый порог количества символов, которые могут быть переданы; обычно этого лимита хватает). Переданные аргументы доступны в глобальном массиве $argv . Первый индекс (ноль) всегда содержит имя вызываемого скрипта из командной строки. Учтите, что если код вызывается на лету из командной строки с помощью опции -r , значением $argv будет просто дефис (- ). То же самое верно и для кода, переданного через конвейер из STDIN .

Вторая зарегистрированная глобальная переменная - это $argc , содержащая количество элементов в массиве $argv ((а не количество аргументов, переданных скрипту).

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

# Эта команда не запустит данный код, но покажет информацию об использовании PHP $ php -r "var_dump($argv);" -h Usage: php [-f] [...] # Эта команда передаст аргумент "-h" в скрипт, предотвратив показ справки PHP $ php -r "var_dump($argv);" -- -h array(2) { => string(1) "-" => string(2) "-h" }

Однако, в Unix-системах есть еще один способ использования PHP для консольных скриптов. Можно написать скрипт, первая строка которого будет начинаться с #!/usr/bin/php (или же другой корректный путь к бинарному файлу PHP CLI). После этой строки можно поместить обычный PHP-код, заключенный в открывающие и закрывающие теги PHP. Как только будут установлены корректные атрибуты запуска на файл (например, chmod +x test ), скрипт может быть запущен как обычный консольный или perl-скрипт:

Пример #1 Запуск PHP-скрипта как консольного

#!/usr/bin/php
var_dump ($argv );
?>

Подразумевая что этот файл называется test и находится в текущей директории, можно сделать следующее:

$ chmod +x test $ ./test -h -- foo array(4) { => string(6) "./test" => string(2) "-h" => string(2) "--" => string(3) "foo" }

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

Исполняемый PHP-файл может использоваться для запуска PHP-скриптов независимо от веб-сервера. В случае, работы в Unix-подобной системе, необходимо добавить ко всем скриптам особую строку #! (называемую также "shebang") в начало файла и сделать их исполняемыми, чтобы указать, какая из программ должна обрабатывать эти скрипты. На Windows-платформах можно назначить обработчик php.exe для файлов с расширениями .php либо создать пакетный (.bat) файл для запуска скриптов посредством PHP. Строка, добавляемая в начале скрипта для Unix-систем, не влияет на их работу в ОС Windows, таким образом можно создавать кроссплатформенные скрипты. Ниже приведен простой пример скрипта, выполняемого из командной строки:

Пример #2 Скрипт, предназначенный для запуска из командной строки (script.php)

#!/usr/bin/php

If ($argc != 2 || in_array ($argv [ 1 ], array("--help" , "-help" , "-h" , "-?" ))) {
?>

Это консольный PHP-скрипт, принимающий один аргумент.

Использование:

} else {
echo $argv [ 1 ];
}
?>

Скрипт приведенный выше включается в себя специальную Unix строку, указывающую на его запуск с помощью PHP. Работа ведется с CLI -версией, поэтому не будет выведено ни одного HTTP -заголовка.

Также приведенный пример проверяет количество переданных аргументов. В случае, если их больше или меньше одного, а также в случае, если переданный аргумент был --help , -help , -h или -? , выводится справочное сообщение с использованием $argv , которое содержит имя выполняемого скрипта. В противном случае просто выводится полученный аргумент.

Для запуска приведенного примера в Unix-системе, необходимо сделать его исполняемым и просто выполнить в консоли script.php echothis или script.php -h . В Windows-системе можно создать пакетный файл:

Пример #3 Пакетный файл для запуска PHP-скрипта из командной строки (script.bat)

@echo OFF "C:\php\php.exe" script.php %*

Предполагая, что скрипт называется script.php и полный путь к CLI php.exe совпадает с C:\php\php.exe , приведенный пакетный файл запустит скрипт с переданными параметрами: script.bat echothis либо script.bat -h .

Также можно ознакомиться с расширением Readline , которое можно использовать для усовершенствования консольного PHP-скрипта.

В Windows запуск PHP можно настроить без необходимости указывать C:\php\php.exe и расширение .php . Подробнее эта тема описана в разделе

Всех приветствую. Сегодня я начинаю писать в новую рубрику — PHP ! В основном здесь будут основы и азы этого языка. И для начала я вам расскажу, как открыть php-файл в браузере?

Почему php не открывается так, как html?

Дело вот в чем: php — это серверный язык. Html и javascript — клиентские. Соответственно, для выполнения php-кода нужно запускать сервер, только в этом случае файл можно будет открыть. Собственно, тут только 2 пути:

  1. Создать на реальном хостинге сайт, на котором вы будете экспериментировать с php
  2. Создать локальный сервер, на котором вы сможете создавать бесплатно неограниченное количество сайтов у себя на компьютере и экспериментировать сколько душе угодно.

И я всячески советую вам именно второй вариант. Соответственно, перед тем, как начать открывать php файлы, нужно поставить себе такой сервер. Только не думайте, что это тяжело — справитесь буквально за пару минут. Из самых известных локальных серверов для Windows могу выделить такие:

  1. OpenServer
  2. Denwer
  3. Xammp

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

Как открыть php файл после установки сервера?

Сервер установлен? Отлично, теперь у вас все есть для запуска php-файлов. Собственно, чтобы это делать, ваш локальный сервер должен быть запущен. Вот такой ярлычок у вас должен быть на рабочем столе:

Теперь вам нужно создать новый сайт для локального сервера. Опять же, я показываю только как это делать на денвере. Заходим в корневую папку сервера, тут находим папку home . В ней будут все ваши сайты. Нужно создать новую папку, ее название и будет названием нового сайта. В созданной папке обязательно нужно создать папку www , без этого ничего работать не будет. Последний этап — кидаем нужные php-файлы (которые нужно открыть) в папку www. Она является корневой для сайта.

Способ открытия php-файлов отличается от того, как открывать html. Вы не можете открыть их в браузере напрямую, в таком случае вы увидите только код. Чтобы открыть файл, нужно прописать сайт, на котором он находится, а также путь к файлу на сайте. Хочу подчеркнуть, что если ввести просто название сайта (без http:// , но со слешем), то сервер запустит index.php , если такой имеется.

Пример:
Я создал на локальном сервере папку phptest , в ней — www , а уже в нее закинул нужные файлы. Отлично, теперь нужно перезапустить денвер, если он у вас был запущен. Если нет, просто запускаем. Теперь в браузерной строке нужно набрать: phptest/

Так вы попадаете на главную страницу сайта. Этот файл нужно назвать index.php . Например, я создал на php калькулятор, поместил его в phptest под названием calc.php . Прописываю адрес до этого файла:

Отлично, открылся калькулятор. Можно тестировать приложение.

Как не нужно открывать php?

Это не нужно делать так, как html-файлы. То есть не через «Открыть с помощью» «Браузер» . Так вы увидите только исходный код файла, но ни в коем случае не результат его выполнения.

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

В CLI SAPI есть три различных способа запуска PHP-кода:

    Указывание конкретного файла для запуска.

    $ php my_script.php $ php -f my_script.php

    Оба способа (с указыванием опции -f или без) запустят файл my_script.php . Вы можете выбрать любой файл для запуска, и ваши PHP-скрипты не обязаны иметь расширение .php и могут иметь любое имя и расширение, какое вы пожелаете.

    Замечание :

    Если вам нужно передать аргументы вашим скриптам, то при использовании опции -f первым аргументом должен быть -- .

  1. Передать PHP-код напрямую в командной строке.

    $ php -r "print_r(get_defined_constants());"

    Необходимо быть особо осторожным при использовании этого способа, так как может произойти подстановка переменных оболочки при использовании двойных кавычек.

    Замечание :

    Внимательно прочтите пример, в нем нет открывающих и закрывающих тегов! Опция -r просто в них не нуждается. Их использование приведет к ошибке парсера.

  2. Передать запускаемый PHP-код через стандартный поток ввода (stdin ).

    Это дает мощную возможность динамически создавать PHP-код и скармливать его запускаемому файлу, как показано в этом (ненастоящем) примере:

    $ some_application | some_filter | php | sort -u > final_output.txt

Вы не можете комбинировать любой из этих трех способов запуска кода.

Как и любое другое консольное приложение, бинарный файл PHP принимает аргументы, но ваш PHP-скрипт также может получать аргументы. PHP не ограничивает количество аргументов, передаваемых в ваш скрипт (оболочка консоли устанавливает некоторый порог количества символов, которые могут быть переданы; обычно этого лимита хватает). Переданные аргументы доступны в глобальном массиве $argv . Первый индекс (ноль) всегда содержит имя вызываемого скрипта из командной строки. Учтите, что если код вызывается на лету из командной строки с помощью опции -r , значением $argv будет просто дефис (- ). То же самое верно и для кода, переданного через конвеер из STDIN .

Вторая зарегистрированная глобальная переменная - это $argc , содержащая количество элементов в массиве $argv ((а не количество аргументов, переданных скрипту).

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

# Эта команда не запустит данный код, но покажет информацию об использовании PHP $ php -r "var_dump($argv);" -h Usage: php [-f] [...] # Эта команда передаст аргумент "-h" в ваш скрипт, предотвратив показ справки PHP $ php -r "var_dump($argv);" -- -h array(2) { => string(1) "-" => string(2) "-h" }

Однако, в Unix-системах есть еще один способ использования PHP для консольных скриптов. Можно написать скрипт, первая строка которого будет начинаться с #!/usr/bin/php (при необходимости подставьте корректный путь к вашему бинарному файлу PHP CLI). После этой строки можно поместить обычный PHP-код, заключенный в открывающие и закрывающие теги PHP. Как только вы установите корректные атрибуты запуска на файл (например, chmod +x test ), ваш скрипт может быть запущен как обычный консольный или perl-скрипт:

Пример #1 Запуск PHP-скрипта как консольного

#!/usr/bin/php
var_dump ($argv );
?>

Подразумевая что этот файл называется test и находится в текущей директории, мы можем сделать следующее:

$ chmod +x test $ ./test -h -- foo array(4) { => string(6) "./test" => string(2) "-h" => string(2) "--" => string(3) "foo" }

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

Исполняемый PHP-файл может использоваться для запуска PHP-скриптов независимо от веб-сервера. В случае, если вы работаете в Unix-подобной системе, вам необходимо добавить ко всем скриптам специальную первую строку и сделать их исполняемыми, чтобы указать, какая из программ должна обрабатывать эти скрипты. На Windows-платформах вы можете назначить обработчик php.exe для файлов с расширениями .php либо создать пакетный (.bat) файл для запуска скриптов посредством PHP. Строка, добавляемая в начале скрипта для Unix-систем, не влияет на их работу в ОС Windows, таким образом вы можете создавать кроссплатформенные скрипты. Ниже приведен простой пример скрипта, выполняемого из командной строки:

Пример #2 Скрипт, предназначенный для запуска из командной строки (script.php)

#!/usr/bin/php

If ($argc != 2 || in_array ($argv [ 1 ], array("--help" , "-help" , "-h" , "-?" ))) {
?>

Это консольный PHP-скрипт, принимающий один аргумент.

Использование:

} else {
echo $argv [ 1 ];
}
?>

В приведенном примере мы используем специальную первую строку для указания на то, что этот скрипт необходимо запускать при помощи PHP. Поскольку мы работаем с CLI -версией, то HTTP -заголовки выводиться не будут. При написании консольных приложений на PHP вам доступны две переменные: $argc и $argv . Первая - количество переданных аргументов плюс один (имя выполняемого скрипта). Вторая - массив переданных аргументов, начиная с имени скрипта с нулевым индексом ($argv).

Также в приведенном примере мы проверяем количество переданных аргументов. В случае, если их более или менее одного, а также в случае, если переданный аргумент был --help , -help , -h или -? , мы выводим справочное сообщение, подставляя имя выполняемого скрипта динамически. В обратном случае мы просто печатаем полученный аргумент.

Если вы хотите выполнить приведенный пример в Unix-системе, вам необходимо сделать его исполняемым и просто выполнить из консоли script.php echothis или script.php -h . В Windows-системе вы можете создать для этого пакетный файл:

Пример #3 Пакетный файл для запуска PHP-скрипта из командной строки (script.bat)

@echo OFF "C:\php\php.exe" script.php %*

Предполагая, что скрипт называется script.php и полный путь к CLI php.exe совпадает с C:\php\php.exe , приведенный пакетный файл запустит скрипт с переданными вами параметрами: script.bat echothis либо script.bat -h .

Вы также можете ознакомиться с расширением Readline , которое может быть использовано для усовершенствования консольного PHP-скрипта.