Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

рабочая тетрадь(3)

.pdf
Скачиваний:
40
Добавлен:
10.02.2016
Размер:
5.34 Mб
Скачать

Соединение с удаленными узлами через сокеты

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

Сокеты (sockets) позволяют осуществить доступ к используемым сетевым протоколам

Варианты использования:

Подключение к службе, для которой отсутствует соответствующая обёртка (file wrapper)

Осуществление действий, невозможных при использовании потоков, но возможных при использовании сетевых протоколов

$fp = fsockopen("www.site.ru", 80, $errno, $errstr, 30);

if (!$fp) {

echo $errstr . ($errno) . "<br />"; } else {

$out = "HEAD /file.html HTTP/1.1\r\n"; $out .= "Host: www.site.ru\r\n";

$out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out);

while (!feof($fp)) {

echo fgets($fp, 128);

}

fclose($fp);

}

Лабораторная работа 5

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

Упражнение 1: Создание универсальной функции открытия сокета

В текстовом редакторе откройте файл C:\Users\Public\OpenServer\domains\localhost\xml-rpc-client.php

В начале файла введите следующий текст:

function call_socket($remote_server, $remote_server_port,$remote_path, $request) { $sock = fsockopen($remote_server, $remote_server_port, $errno, $errstr, 30); if (!$sock) die("$errstr ($errno)\n");

$out = "POST $remote_path HTTP/1.1\r\n"; $out .= "User-Agent: PHPRPC/1.0\r\n"; $out .= "Host: $remote_server\r\n"; $out .= "Content-type: text/xml\r\n";

$out .= "Content-length: " . strlen($request) . "\r\n"; $out .= "Accept: */*\r\n\r\n";

$out .= "$request\r\n\r\n"; fputs($sock, $out);

$headers = "";

while ($str = trim(fgets($sock, 4096))) $headers .= "$str\n";

$data = "";

while (!feof($sock))

$data .= fgets($sock, 4096); fclose($sock);

return $data;

}

Упражнение 2: Использование сокетного соединения в XML-RPC-клиенте

В начале функции make_request() введите следующий текст:

$retval = call_socket('mysite.local', 80, '/xml-rpc/xml-rpc-server.php', $request_xml);

Закомментируйте весь код между комментариями /* НАЧАЛО ЗАПРОСА */ и /* КОНЕЦ ЗАПРОСА */

Сохраните файл xml-rpc-client.php

Запустите браузер

Наберите в адресной строке браузера http://localhost/xml-rpc-client.php

Убедитесь, что данные выводятся корректно

Если есть ошибки, найдите их и исправьте

Получение имени хоста по IP-адресу

$hostname = gethostbyaddr('127.0.0.1');

Получение IP-адреса (адресов) по имени хоста

$ip = gethostbyname('www.example.com');

$ips = gethostbynamel('www.example.com');

Получение номера порта и имени службы

$port = getservbyname('http', 'tcp');

$service = getservbyport(80, 'tcp');

Получение DNS записей

$dns = dns_get_record('www.example.com');

$mx = getmxrr('www.example.com');

$exists = checkdnsrr('www.example.com');

Соединение с удаленными узлами через сокеты

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

Игорь Борисов http://igor-borisov.ru

Введение в графические форматы

Вопросы генерации графики на PHP 5

Использование расширения GD2

Базовые функции для работы с графикой

С помощью PHP можно генерировать изображения «на лету»

Библиотека GD2

http://www.boutell.com/gd/

Расширение php_gd2.dll

Поддерживаемые форматы

GIF (< 1.6 и > 2.0.28)

JPEG (все версии)

PNG (> 1.6)

<img src="create_image.php">

Создание изображения (256 цветов)

$im = imageCreate(500, 300);

Создание изображения (17 млн. цветов)

$im = imageCreateTrueColor(500, 300);

Генерация GIF-изображения

header('Content-Type: image/gif');

imageGif($im); //imageGif($im, 'test.gif');

Генерация PNG-изображения

imagePng($im); //imagePng($im, 'test.png');

Генерация JPEG-изображения

imageJpeg($im); //imageJpeg($im, '', 75);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]