Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен / web / example1 / Введение в PHP.doc
Скачиваний:
103
Добавлен:
18.05.2015
Размер:
3 Mб
Скачать

Включения удаленных файлов

PHP позволяет работать с объектами URL, как с обычными файлами. Упаковщики, доступные по умолчанию, служат для работы с удаленными файлами с использованием протокола ftp или http.

Для того, чтобы удаленное включение файлов было доступно, необходимо в конфигурационном файле (php.ini) установить allow_url_fopen=1.

<?php

/* Здесь предполагается, что www.example.com сконфигурирован для разбора .php файлов, а не .txt файлов. Также 'Works' здесь означает, что переменные $foo и $bar доступны в подключённом файле. */

// Не будет работать, так как file.txt не обрабатывается //www.example.com как PHP

include 'http://www.example.com/file.txt?foo=1&bar=2';

// Не будет работать, поскольку ищет файл //'file.php?foo=1&bar=2' в локальной файловой системе.

include 'file.php?foo=1&bar=2';

// Следующий пример работает:

include 'http://www.example.com/file.php?foo=1&bar=2';

$foo = 1;

$bar = 2;

include 'file.txt'; // Работает

include 'file.php'; // Работает

?>

Различные приложения и полезные скрипты на php

Рассмотрим некоторые полезные скрипты для определения типа браузера, определения версии браузера, проверки формы ввода емайл. Необходимая информация хранится в суперглобальных переменных $GLOBALS, $_SERVER, $_GET, $_POST, $_FILES, $_COOKIE, $_SESSION, $_REQUEST, $_ENV . Имена конкретных переменных являюся ключами-индексами этих массивов. Например, в стандартной преременной $HTTP_USER_AGENT хранятся различные сведения о браузере и операционной системе пользователя-клиента. Эту информацию можно вывести на экран одним из двух способов:

<?PHP

$ip = $_SERVER['HTTP_USER_AGENT'];

echo $ip,"<br>";

$agent=getenv("HTTP_USER_AGENT");

echo $agent;

?>

Вывод:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.8 (KHTML, like Gecko)Chrome/5.0.396.0Safari/533.8 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.8 (KHTML, like Gecko) Chrome/5.0.396.0 Safari/533.8

Всю необходимую информацию можно извлечь из строки.

Пример. Определение типа и версии браузера

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

<? //app2.php

$agent=getenv("HTTP_USER_AGENT");

if(strstr($agent,'MSIE 8.0'))

{ echo " Код для IE 8.0","<br>"; }

else{

if (strstr($agent,'Chrome/5.0'))

{ echo " Код для Chrome/5.0","<br>"; }

else {

echo " Код не для IE и не для Chrome","<br>";

echo " Браузер иной версии ","<br>";

}

}

echo $agent;

?>

Вывод для Chrome/5.0:

Код для Chrome/5.0

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.8 (KHTML, like Gecko) Chrome/5.0.396.0 Safari/533.8

В следующем примере возвращается тип и версия браузера и ОС:

<?php

// Назначение: Возвращает тип и версию браузера

function browser_info ($agent) {

// Определить тип браузера

// Искать сигнатуру Internet Explorer

if (ereg('MSIE ([0-9].[0-9]{1,2})', $agent , $version))

{$browse_type = "IE";

$browse_version= $version[1];

}

// Искать сигнатуру Opera

elseif (ereg( 'Opera ([0-9].[0-9]{1,2})', $agent, $version))

{$browse_type = "Opera";

$browse_version = $version[1];}

// Искать сигнатуру Netscape. Проверка браузера Netscape

// *должна* выполняться после проверки Internet Explorer и Opera,

// поскольку все эти браузеры любят сообщать имя

// Mozilla вместе с настоящим именем.

// Если это не Internet Explorer, Opera или Netscape.

// значит, мы обнаружили неизвестный браузер,

else

{$browse_type = "Unknown";

$browse_version = "Unknown";}

// Вернуть тип и версию браузера в виде массива

return array ($browse_type, $browse_version);

} // Конец функции browser_info

// Функция: opsys_info

// Назначение: Возвращает информацию об операционной системе пользователя

function opsys_info($agent) {

// Идентифицировать операционную систему

// Искать сигнатуру Windows

if ( strstr ($agent , 'win') ) :

$opsys = "windows";

// Искать сигнатуру Linux

elseif ( strstr($agent, 'Linux') ) :

$opsys = "Linux";

// Искать сигнатуру UNIX

elseif ( strstr ($agent, 'Unix') ) :

$opsys = "Unix";

// Искать сигнатуру Macintosh

elseif ( strstr ($agent, 'Mac') ) :

$opsys = "Macintosh";

// Неизвестная платформа else :

$opsys = "Unknown";

endif;

// Вернуть информацию об операционной системе

return $opsys;

} // Конец функции opsys_info

// Сохранить возвращаемый массив в списке

list($browse_type,$browse_version)=browser_info ($HTTP_USER_AGENT);

$operating_sys = opsys_info ($HTTP_USER_AGENT);

print "Browser Type: $browse_type <br>";

print "Browser Version: $browse_version <br>";

print "Operating System: $operating_sys <br>";

?>

Соседние файлы в папке example1