{% else-1 %}
Этот пример класса, получающего и разбирающего файл robots.txt.

                        
<?phpclass robots{    var $content = ''; # текст файла robots.txt    var $branches = array(); # здесь храним ветки для разных User-Agent     # конструктор    # @url: адрес сайта или хост в произвольном формате    function robots($url)    {        # получаем файл robots.txt        $url = preg_replace('#^http://#is', '', trim($url));        $url = current(explode('/', $url));        $this->content = trim(file_get_contents('http://' . $url . '/robots.txt'));         # парсим полученные данные        $s = preg_split('#[n]+#is', $this->content);        $current_user_agent = '';        foreach($s as $line)        {            $line = trim(current(explode('#', trim($line), 2)));            if (substr_count($line, ':')<1) continue;            $line = explode(':', $line, 2);            $current_directive = strtolower(trim($line[0]));            $current_value = trim($line[1]);            if ($current_directive == 'user-agent')             {                $current_user_agent = $current_value;            }            elseif($current_user_agent!='')            {                $this->branches[$current_user_agent][$current_directive][] = $current_value;            }        }    }     # получить значение заданной директивы для заданного агента    # @user_agent: агент    # @directive: имя директивы    # возвратит FALSE если директива неуказана    function get_directive($user_agent, $directive)    {        $user_agent = strtolower($user_agent);        $directive = strtolower($directive);        $ret = array();        foreach($this->branches as $ua_mask=>$data)        {            if (($ua_mask=='*' || $user_agent=='*' || @preg_match('#'.preg_quote($ua_mask,'#').'#is', $user_agent)) && isset($data[$directive]))            {                $ret = array_merge($ret, $data[$directive]);            }        }        if (count($ret)>0) return array_unique($ret); else return FALSE;    }     # проверить, запрещен ли url к индексации    # @user_agent: агент    # @url: полный url для проверки    # возвратит TRUE если url запрещен    function check_disallow($user_agent,$url)    {        $url = preg_replace('#^http://#is', '', trim($url));        $url = explode('/', $url, 2);        $url = (count($url)>1) ? '/' . $url[1] : '/' . $url[0];        $url = trim($url);        $info = $this->get_directive($user_agent, 'Disallow');        foreach($info as $url_mask)                {            if (preg_match('#^'.preg_quote($url_mask, '#').'#', $url))            {                return true;            }        }        return false;    }}?>
1 37 0
0

Нет фото
RSST * 0.85
• 13 июл 2014, 22:28


попробуй разберись *

0

Нет фото
• 11 июл 2014, 16:03


Неудачный копипаст.

0

Фотография
• 11 июл 2014, 09:20


с телефона копировал?*