WMaster
Главная
SEO статьи
Статьи
Базы каталогов new
Книги
Скрипты
Программирование
Авторам
Карта сайта
Контакты
 

  Рекомендуем
 

  Рассылка


Подпишитесь на нашу рассылку и получайте на свой e-mail новости о публикации новых статей на нашем сайте, баз каталогов, скриптом и другого!
 

  Новые статьи
· 1: Сети сателлитов
Просмотров: [3054]
Комментариев: [0]
· 2: Курс "PHP с нуля". Часть 6
Просмотров: [5105]
Комментариев: [0]
· 3: Способы получения ссылок на сайт
Просмотров: [2615]
Комментариев: [0]
· 4: Курс "PHP с нуля". Часть 5
Просмотров: [8358]
Комментариев: [0]
· 5: Курс "PHP с нуля". Часть 4
Просмотров: [2972]
Комментариев: [1]
· 6: Курс "PHP с нуля". Часть 3
Просмотров: [3791]
Комментариев: [0]
· 7: Способы заработка на сайте
Просмотров: [2527]
Комментариев: [0]
· 8: Как сделать сеть каталогов и заработать на ней денег?
Просмотров: [12430]
Комментариев: [0]
· 9: Все о регистрации в каталогах
Просмотров: [2458]
Комментариев: [0]
· 10: Курс "PHP с нуля". Часть 2
Просмотров: [6987]
Комментариев: [0]
 


Курс "PHP с нуля". Часть 5

PHP и интернет

Очень часто встречаются ситуации, когда нужно подключится к удаленному
серверу, забрать какие-то данные или же отправить их. В этой статье мы
научимся это делать. Рассмотрим простейший пример, нам надо скачать
файл с другого сервера и вывести его содержимое на экран. Для этого мы
будем использовать функцию file_get_contents(). Для примера выведем
поисковую форму Яндекса.

<?php
$yandex = file_get_contents("http://ya.ru"); # В переменную yandex
скачиваем главную страницу Яндекса
echo $yandex; # Выводим ее на экран
?>

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

<?php
$file=file_get_contents("http://www.yandex.ru/yandsearch?Link=http://wmaster.net&numdoc=10&rd=0");
# Отправляем запрос Яндексу
if(preg_match("!не менее <b>(.*?) </b>!si",$file,$ok)) # Парсим
{
$link=$ok[1]; # В переменной link находиться количество обратных ссылок
}

echo 'У сайта wmaster.net <b>'.$link.' </b> обратных ссылок!';
?>

Этот код сложный, но я думаю, вы разберетесь. Рассмотрим пример
посложнее. Допустим нам надо подключится к WhoIs серверу и узнать
информацию по определенному домену. Для того чтоб подключится к
серверу whois.ripn.net (информация по доменам в русских зонах) мы
будем использовать функцию fsockopen(). Эта функция имеет 2
обязательных параметра: сервер и порт. Пример:

<?php
if($fp = @fsockopen("whois.ripn.net", 43))
{
fputs($fp, "yandex.ru\r\n");
while(!feof($fp))
{
echo fgets($fp,128);
}
fclose($fp);
}
?>

Данный листинг выведет на экран информацию по домену yandex.ru.
Рассмотрим код подробнее:
$fp = @fsockopen("whois.ripn.net", 43) - подключаемся к whois серверу.
Символ @ перед функцией означает, что если возникнут ошибки, они не
будут выведены на экран.
fputs($fp, "yandex.ru\r\n"); - посылаем на сервер запрос. В запросе
содержится имя домена и символ перевода каретки (\r\n). Если этот
символ не посылать, сервер будет считать, что команда не окончена.
while(!feof($fp)) - пока ответ не закончился
echo fgets($fp,128); - считываем ответ по 128 байт и выводим на экран.
fclose($fp); - закрываем соединение.

Как видите ничего сложного. С помощью fsockopen() можно скачивать
страницы, и этот метод лучше чем с file_get_contents(). Пример:

<?php
if($fp = @fsockopen("ya.ru", 80))
{
fputs($fp, "GET / HTTP/1.1");
while(!feof($fp))
{
echo fgets($fp,128);
}
fclose($fp);
}
?>

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

Попробуем теперь сформировать POST запрос. Пример:

<?php
$data = "username=wmaster.net&password=qwerty"; # Что будем POSTить
$headers = "POST /login.php HTTP/1.1";
$headers .= "Host: wmaster.net";
$headers .= "Referer: wmaster.net/";
$headers .= "User-Agent: Powered by WMaster.NET";
$headers .= "Content-Type: application/x-www-form-urlencoded";
$headers .= "Content-Length: ".strlen($data)."";
$headers .= $data;

if($fp = @fsockopen("wmaster.net", 80))
{
fputs($fp, $headers);
fclose($fp);
}

?>

Данный код делает POST запрос на сервер. В строчке $headers .=
"User-Agent: Powered by WMaster.NET"; можно вписать название любого
браузера и сделать вид что вы не скрипт
Вот собственно и все что я хотел рассказать. Надеюсь, вы узнали
что-нибудь новое для себя.



Дата публикации : 28-04-2007 (Просмотров статьи : 8357)
Статью опубликовал : 2m0rr0w2



Вернуться
Имя: Мыло:
 Запомнить меня 

КОПИРОВАНИЕ МАТЕРИАЛОВ ВОЗМОЖНО ТОЛЬКО СО ССЫЛКОЙ НА WMASTER.NET

  Опрос
Нравится вам наш дизайн?

Да! Очень нравится!
Нравится
Нормально
Плохой
Ужас!



Результаты

Ответов 701
 

  Счетчики
 

 
Copyright © 2007 WMaster.net