Сделай Сам Свою Работу на 5

Функции преобразования регистра





 

Strtolower()

 

Производит преобразование символов строки в нижний регистр.

 

string strtolower(string str)

 

Пример 4.7.11.1.1:

 

<?

$str = "HELLO WORLD";

$str = strtolower($str);

echo $str; // выведет "hello world"

?>

 

Strtoupper()

 

Производит преобразование строки в верхний регистр.

 

string strtoupper(string str)

 

Пример 4.7.11.2.1:

 

<?

$str = "Hello World";

$str = strtoupper($str);

echo $str;

// выведет HELLO WORLD

?>

 

Ucfirst()

 

Производит преобразование первого символа строки в верхний регистр.

 

string ucfirst(string str)

 

Функция возвращает строку, с заглавным первым символом.

 

Пример 4.7.11.3.1:

 

<?

$str = "hello world";

$str = ucfirst($str);

echo $str;

// выведет Hello world

?>

 

Ucwords()

 

Производит преобразование первого символа каждого слова строки в верхний регистр.

 

string ucwords(string str)

 

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

 

Пример 4.7.11.4.1:

 

<?

$str = "hello world";



$str = ucwords($str);

echo $str;

// выведет Hello World

?>

 

Сетевые функции PHP

 

Доступ к переменным окружения интерфейса CGI

 

При использовании интерфейса CGI (Common Gateway Interface) программисту доступно множество переменных окружения. Рассмотрим несколько примеров переменных, содержащихся в массиве $_SERVER (используйте print_r($_SERVER), чтобы посмотреть всё его содержимое):

 

· HTTP_USER_AGENT – С помощью этой переменой можно определить браузер пользователя, а также его операционную систему. Например, для Netscape, запущенным под Linux, эта переменная будет содердать значение:

 

Mozilla/4.7 [en] (Linux; I)

Для Internet Explorer 5.0 и Win98:

Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)

 

· HTTP_HOST – Содержит доменное имя сервера, на котором запущен сценарий.

· SERVER_PORT – Порт сервера, к которому обратился браузер. Обычно используется порт 80.

· REMOTE_ADDR – Содержит IP-адрес клиента, то есть IP-адрес пользователя, который запустил браузер.

· REMOTE_PORT – Порт для получения ответа сервера. Этот порт закрепляется за каждой запущенной копией браузера.

 



Получение документа по протоколу HTTP

 

Получить документ по протоколу HTTP довольно просто в том случае, когда директива allow_url_fopen установлена в on.

 

Пример 4.8.2.1:

 

<?

$file = join( '', file( 'http://localhost/index.html' ) );

echo $file;

?>

 

В первой строке мы получаем весь документ в строку $file, а второй – отправляем документ в браузер. Функция file() возвращает массив строк. N-ый элемент этого массива соответствует N-ой строке файла.

Если нас интересует HTML-код получаемого документа, вывести код в браузер поможет такой код.

 

Пример 4.8.2.2:

 

<?

$fcontents = file( 'http://localhost' );

while ( list( $line_num, $line ) = each( $fcontents ) )

{

echo "<b>Line $line_num:</b> " . htmlspecialchars( $line) . "<br>\n";

}

?>

 

 

Работа с сокетами

 

Функция file() (равно как и fopen()) позволяет нам работать только с содержимым файла, который получен по тому или иному протоколу. Предположим, что нас интересуют заголовки, переданные сервером. Получить эти заголовки мы можем с помощью функции

 

int fsockopen(string $host, int $port, [, int &$errno] [, string &$errstr])

 

Данная функция позволяет инициализировать потоковое соединение с указанным хостом и программой, которая связана с указанным портом. Кроме того, эта функция поддерживает Unix-сокеты. При этом параметр $hostname будет использован как путь к файлу сокета, а параметр $port должен быть равен 0.

После установления соединения функция возвращает обыкновенный дескриптор файла. С этим дескриптором могут работать функции fread(), fwrite(), fgets(), feof() и другие.

В случае ошибки функция возвратит false и, если указаны необязательные параметры $errno и $errstr, соответственно, номер ошибки и текст сообщения об ошибке.



Рассмотрим пример: мы посылаем серверу HTTP-запрос GET и, получив ответ, выводим его в браузер.

 

Пример 4.8.3.1:

 

<?

// Подключаемся к серверу

$fsoc = fsockopen("localhost",80);

fputs($fsoc, "GET / HTTP/1.0\n\n");

echo "";

while (!feof($fsoc))

echo HtmlSpecialChars(fgets($fsoc,1000));

echo "";

// Отключаемся от сервера

fclose($fsoc);

?>

 

При использовании функции fsockopen мы получаем весь ответ сервера – вместе с заголовками. Функцию HtmlSpesialChars() мы используем для корректного отображения HTML-кода в текстовом формате. В браузере мы должны получить примерно следующее:

 

HTTP/1.1 200 OK

Date: Sat, 16 Mar 2002 10:46:59 GMT

Server: Apache/1.3.12 (Linux)

Last-Modified: Sat, 20 Nov 1999 13:29:40 GMT

ETag: "0-574-3836a244"

Accept-Ranges: bytes

Content-Length: 1396

Connection: close

Content-Type: text/html

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<HTML>

sp;<HEAD>

<TITLE>Test Page for Apache Installation</TITLE>

</HEAD>

...

 

Ответ сервера HTTP/1.1 200 OK соответствует коду ответа 200 и означает безошибочное выполнение операции (в данном случае передачи документа по запросу GET).

Установить нужный нам заголовок ответа мы можем с помощью функции Header().

 

Header("Location://www.softerra.ru/freeos");

 

Запретить кэширование можно с помощью установки заголовка Pragma: no-cache. К сожалению одного этого заголовка явно не хватит для запрещения кэширования. Для полного запрета нужно использовать целых четыре заголовка. Установить с помощью Header их можно так:

 

Header("Pragma: no-cache");

Header("Cache-control: no-cache, must-revalidate");

Header("Expires: Mon, 01 Jan 1990 01:01:01 GMT");

Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");

 

Первый из них устанавливает заголовок запрета кэширования согласно протокола HTTP/1.0, а второй – HTTP/1.1. Третий определяет задает дату в прошлом, а четвертый устанавливает дату последнего обновления документа. Функция gmdate() возвращает дату в нужном нам формате. Устанавливать все четыре заголовка крайне желательно, так как запрет кэширования может не сработать или на прокси-сервере или в браузере, и пользователь получит устаревшую версию документа.

 

Функции для работы с DNS

 

При написании сценариев вне зависимости от языка программирования часто возникает потребность преоразования IP-адреса в доменное имя и наоборот.

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

 

string gethostbyaddr(string $ip_address);

 

В случае ошибки возвращается IP-адрес.

 

Преобразование имени хоста в IP-адрес выполняет функция

 

string gethostbyname(string $host);

 

Если вам нужно получить все IP-адреса хоста с именем $host, используйте функцию

 

array gethostbynamel(string $host);

 

Пример 4.8.4.1:

 

<?

$host="www.yahoo.com";

$ips=gethostbynamel($host);

foreach($ips as $ip) echo $ip;

?>

 

Определить почтовый сервер для указанного хоста hostname можно с помощью функции

 

int getmxrr(string hostname, array mxhosts, array [weight]);

 

Данная функция запрашивает DNS на предмет наличия записей MX для указанного хоста.

 

Функции работы с протоколами

 

int getprotobyname(string name);

 

Возвращает номер протокола, который соответствует имени $name.

 

Пример 4.8.5.1:

 

<?

$protocol = 'tcp';

$get_prot = getprotobyname($protocol);

if ($get_prot == -1) {

// if nothing found, returns -1

echo 'Invalid Protocol';

} else {

echo 'Protocol #' . $get_prot;

}

?>

 

Обратная ей функция

 

string getprotobynumber(int number);

 

возвращает имя протокола по его номеру.

 

int getservbyname(string service, string protocol);

 

возвращает номер порта Internet-сервиса, название которого указано в параметре $service. Второй параметр функции – это протокол: tcp или udp.

 

Например

echo getservbyname("ftp", "tcp");

выведет в окно браузера число 21.

 

Для функции getservbyname() также существует обратная ей:

 

string getservbyport(int port, string protocol);

 

При использовании функции getservbyport() нужно указать номер порта и протокол (tcp или udp) и, как результат, вы получите название Internet-сервиса.

 

Например,

echo getservbyport(21, "tcp");

выведет в окно браузера название сервиса – ftp.

 

Функции протоколирования

 

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

 

int openlog(string ident, int option, int facility);

int syslog(int priority, string message);

int closelog(void);

 

Первая из них открывает соединение с демоном syslog. Вторая – порождает системное сообщение (другими словами записывает сообщение с указанным приоритетом в протокол). Функция closelog() закрывает соединение протокола.

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.