Просмотр файла client_wappc.php

Размер файла: 2.42Kb
<?php
/*
Клиентская библиотека для работы с wappc.ru
Выдает результат в Win-1251 кодировке. При выводе на экран необходимо перекодировать в UTF-8
Только для программистов.
Техническая поддержка для начинающих во время тестирования не осуществляется
Отображение ссылок print GetFeed("слово поиска",количество результатов)
Автор:Denvas
*/

    function GetFeed($search,$num=1){
        global $wappc_nametemp,$wappc_aff;
        $content="";
        $nametemp=$wappc_nametemp.md5($search).".txt";
        if(file_exists($nametemp)){
            $content=file_get_contents($nametemp);
            $oldtime=(int)substr($content,0,strpos($content,"\n"));
        } else $oldtime=0;
    
        if(time()-$oldtime>5*60){//кешировать на 5 минут (чаще запрашивать нельзя, сервер будет блокировать запросы)
            $url="http://wap.wappc.ru/export.php?user=".$wappc_aff."&i=0&search=".$search."&rnd=".mt_rand(0,1000);
            /*
            //забор курлом
            $ch = curl_init ($url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
            curl_setopt ($ch, CURLOPT_TIMEOUT, 5); 
            $html=curl_exec($ch);
            curl_close($ch);
            */
            //забор средствами php
            $html=@file_get_contents($url);
            //кэширование
            if($html)$content=$html;
            $fd=fopen($nametemp,"wb");
            if($fd){fwrite($fd,time()."\n".$content);fclose($fd);};
        };//if
    
        $data=ParseResult($content);
        $ndata=count($data);
        if($ndata>0){
            if($num>1)
                $rand_keys = array_rand($data, $num);//возвращает массив
            else
                $rand_keys = array(array_rand($data, $num));//возвращает число
            $code="";
            for($i=0;$i<$num;$i++){
                $slink=$data[$rand_keys[$i]];
                $code.="<a href='".$slink[4].mt_rand(0,1000)."'>".$slink[2]."</a><br/>";
            };
            return $code;
        };
        return "";//нет данных
    };//function 

    function ParseResult($content,$badwords=""){
        if(empty($content))return array();
        $data=array();
        $lines=explode("\n",$content);
        for($j=1;$j<count($lines);$j++){
            $line=trim($lines[$j]);
            $elem=explode("|",$line);
            if(count($elem)<3)continue;
            $data[]=$elem;
        };
        return $data;
    };//function 
?>