Розглянемо простий приклад використання регулярних виразів, а так само cURL-а, для вилучення всіх посилань з веб-сторінки (або файла). Для цих цілей необхідно щоб на вашому сервері була включена підтримка cURL, в іншому випадку будуть використовуватися функції fopen/fget/fclose. Використання cURL-а для цих цілей краще, так як він спритніше в роботі, і здатний імітувати браузер користувача, за допомогою відправки HTTP заголовків, що дуже важливо.

Варто звернути увагу на те, що описаний нижче код повертає всі посилання, в тому числі і посилання на зображення, файли стилів і т. п.

Код:

]*?href[\s]?=[\s\”\’]+”.
“(.*?)[\”\’]+.*?>”.”([^<]+|.*?)?/”,
$var, &$matches);
$matches = $matches[1];
$list = array();
foreach($matches as $var)
{
print($var.”
“);
}
// Функція fread_url поверне вміст веб-сторінки
// У разі, якщо CURL не встановлено будуть використані функції fopen / fgets
function fread_url($url,$ref=””)
{
if(function_exists(“curl_init”)){
$ch = curl_init();
$user_agent = “Mozilla/4.0 (compatible; MSIE 5.01; “.
“Windows NT 5.0)”;
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt( $ch, CURLOPT_HTTPGET, 1 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION , 1 );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION , 1 );
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_REFERER, $ref );
curl_setopt ($ch, CURLOPT_COOKIEJAR, ‘cookie.txt’);
$html = curl_exec($ch);
curl_close($ch);
}
else{
$hfile = fopen($url,”r”);
if($hfile){
while(!feof($hfile)){
$html.=fgets($hfile,1024);
}
}
}
return $html;
}
?>

Є й інший спосіб отримання всіх посилань на сторінці, для реалізації якого використовується клас DOMDocument. Клас DOMDocument знаходиться в розширенні DOM для PHP, починаючи з версії PHP5, можливості його використання так само добре задокументовані в документації.

Додав: htmaker, 26.02.2013 р.
(Ще не оцінили)

Завантаження…

Діліться з друзями:

См. також:


Пісочниця для PHP
Рубрика: PHP, Інструменти

Конфіг файли
Рубрика: PHP

Установка XCache в Linux CentOS
Рубрика: Linux, PHP

Використання SOAP в PHP
Рубрика: PHP

Встановлення PHP Soap на CentOS
Рубрика: Linux, PHP

Обсяг даних в зручному форматі на PHP
Рубрика: PHP

Транслітерація символів на PHP
Рубрика: PHP

Як перетворити URL-рядок в масив?
Рубрика: PHP

Добірка шаблонів регулярних виразів
Рубрика: PHP