Разбор одной ссылки с помощью CURL и сохранение ее в текстовом файле - PullRequest
0 голосов
/ 03 марта 2012

Моя задача - проанализировать только одну ссылку с данного URL.

Проблема в том, что каждый раз, когда я обновляю страницу, я загружаю целевой веб-сайт с помощью Curl и использую регулярное выражение для поиска ссылки. Как можно избежать повторной загрузки целевого веб-сайта, если указанная ссылка такая же?

$url = 'http://ruh.kz';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch , CURLOPT_USERAGENT , "Mozilla/5.0 ");
curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 );
$content = curl_exec($ch);
curl_close($ch);

$link = preg_match_all('/<h3 class="entry"><a href="(.*)">(.*)<\/a><\/h3>/', $content, $matches);
$link = $matches[1][0];
$title = $matches[2][0];

вывод:

<a href="http://ruh.kz<?php print $link; ?>" target="_blank"><?php print $title; ?></a>

Ответы [ 2 ]

1 голос
/ 03 марта 2012

Самое простое решение этой проблемы - запомнить все проанализированные / загруженные URL-адреса в кэше. Это означает, что всякий раз, когда URL-адрес был успешно обработан, сохраняйте URL-адрес в сеансе / файле cookie / базе данных (что лучше всего подходит для ваших целей).

При обновлении страницы сначала проверьте этот кеш. Если URL там не хранится, его можно загрузить / проанализировать.

0 голосов
/ 03 марта 2012

Вы можете использовать simple html dom сначала создать foreach, а затем анализировать ссылки по своему желанию.

    require('simple_html_dom.php');
    $url = 'http://ruh.kz';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt ($ch , CURLOPT_USERAGENT , "Mozilla/5.0 ");
    curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 );
    $content = curl_exec($ch);
    curl_close($ch);
    $html= str_get_html($content); 
    foreach($html->find('.entry') as $element){
        preg_match_all('/<a href="(.*)">(.*)<\/a>/', $element, $matches);
        $link = $matches[1][0];
        $title = $matches[2][0];
        echo '<a href="http://ruh.kz'.$link,'" target="_blank">'.$title.'</a><br />';
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...