htmlbook.ru - настольная книга администратора

Файловый Архив

  • Неограниченное количество категорий и суб-категорий
  • Настройки прав доступа по группам
  • Настройки прав доступа по каждой категории
  • Предпросмотр медиа файлов: FLV, IFLV, F4A, F4V, MP4, MP3, MOV и других...
  • Мультизагрузка файлов - SWFUploader
  • Добавление файлов с сервера
Подробности и история обновлений продукта в этой теме
Loading

Go Back   форум vBSupport.org > > > >
Register Изображения Меню vBsupport Files Manager Аллея Звёзд Реклама на форуме Search Today's Posts Mark Forums Read
  • Мемберка
  • Администраторам
  • Premoderation
  • For English speaking users
  • Изменения в правах
  • Каталог Фрилансеров
Пароли на скачивание файлов в Member Area меняются автоматически каждый день
Если вам нужно скачать какой то скрипт, за паролем ко мне в ЛС
привет какирам kerk
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Не можете скачать вложение?
Изменения в правах групп пользователей
внимательно читаем эту и эту темы
Короткая версия - тут
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

 
 
Old  
Absolut
Простоузер
Default Импорт RSS 0

Честно искал на форуме, ничего не нашел по теме:
Возможно ли в шапке форума транслировать через RSS новости с другого сайта?
Если это где то уже обсуждалось-тыкните меня носом, пожалуйста
 
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
Old  
SerV
Продвинутый
Default 0

А можно поднять тему?
тот же вопрос: как транслировать RSS новости других сайтов?

я попробовал такую схему, предложенную этими ребятами:
http://www.newsrss.ru/readerrssphp/index.php

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<? $url='http://news.yandex.ru/index.rss' ; // че будем читать?
include ('../readerrss.php'); // где файл то?
?>
<body>
</body>
</html>
при этом, я хотел попробовать вставить код в объявление на форуме,
идея в том чтобы разделам форума, таким как софт/музыка и т.д.
дать ленту. например в софт транслировать rss новости вареза от netz'ов.

конечно - неработает.

Кто-нибудь пробовал подобное делать?


WBR!,
Serg
 
Old  
SerV
Продвинутый
Default 0

немного "поковырялся", и поискал по инету варианты скриптов-парсеров.
в результате вот что получилось:


PHP Code:
<?php

class fase4_rdf {

    var 
$_link_target "_blank";
    var 
$_phost "";
    var 
$_pport "";
    var 
$_pname "";
    var 
$_ppasswd "";
    var 
$_use_proxy false;
    var 
$_use_proxy_auth false;
    var 
$_refresh 0;   // int
    
var $_cached_file "";   // String
    
var $_use_cached_file false;
    var 
$_cache_type "";
    var 
$_remote_file "";
    var 
$_cache_dir "cache/";  // String
    
var $_cache_dir_ok false;
    var 
$_type ""// string (rss or rdf)
    
var $_display_opt = array();  // Array
    
var $_table_width 400;
    var 
$_use_dynamic_display false;
    var 
$_item_count 0;
    var 
$_max_count false;
    var 
$_array_channel = array();
    var 
$_array_item = array();
    var 
$_array_textinput = array();
    var 
$_array_image = array();
    var 
$_citem = array();
    var 
$_cdepth = array();
    var 
$_ctags = array( "x" ); 
    var 
$_item = array();   // Array
    
var $_depth = array();  // Array
    
var $_tags = array( "x" );  // Array
    
var $gc_probability 1;
    var 
$_output "";        
    function 
fase4_rdf()
    {
        
$this->_refresh = (time() - 1200);
    }
    function 
parse_RDF$rdf 
    { 
        unset(
$this->_array_item);
        
$this->_remote_file $rdf;
        echo 
"<!-- http://www.fase4.com/rdf/ -->\n";
        echo 
"<table width=\"".$this->_table_width."\">\n";        
        echo 
$this->cache();
        echo 
"</table>\n";
        unset(
$this->_output);
        
$this->_item_count 0;
        return 
true;
    }
    function 
finish() 
    { 
        
flush();
        
$this->_garbage_collection();
    }    
    function 
use_dynamic_display$bool )
    {
        
$this->_use_dynamic_display $bool;
        return 
true;
    }
    function 
_parse_xRDF$data )
    {
        
$this->_clear_Items(); 
        
$xml_parser xml_parser_create(); 
        
xml_set_object($xml_parser,$this);
           
xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,0);
        
xml_set_element_handler($xml_parser"_startElement""_endElement"); 
        
xml_set_character_data_handler($xml_parser"_parseData");     
        if (!
xml_parse($xml_parsertrim($data))) {
                
$this->_throw_exception(sprintf("XML error: %s at line %d"
                
xml_error_string(xml_get_error_code($xml_parser)), 
                
xml_get_current_line_number($xml_parser))."<br /><br />Exception in function parse_RDF()."); 
            } 
        
xml_parser_free($xml_parser); 
    }     

    function 
set_refresh$seconds )
    {
        
$this->_refresh = (time() - $seconds);
        return 
true;
    }

    function 
set_max_item$int )
    {
        
$this->_max_count $int;
        return 
true;
    }
    
    function 
set_CacheDir$dir 
    {
        if(
substr($dir, -1) != "/") {
            
$dir $dir."/";
        }
        
$this->_cache_dir $dir;
    }
    
    function 
_throw_exception$msg )
    {
        echo 
"<div style=\"font-family: verdana, helvetica, arial, sans-serif;font-size:11px; color: #6699cc;margin-top:10px;margin-bottom:10px;\" align=\"center\">fase4 RDF Error: ".$msg."</div>";
        return 
true;
    }

    function 
_clear_Items$array "") { 
            
$this->_item = array ("title"=>"""link"=>"""description"=>"""url"=>"" ); 
    }

    function 
_clear_cItems$array "") { 
            
$this->_citem = array ("title"=>"""link"=>"""description"=>"""url"=>"" ); 
    }     


    function 
_startElement($parser$name$attrs) {
        if(
$name == "rss") {
            
$this->_type "rss";
        } elseif(
$name == "rdf:RDF" OR $name == "rdf") {
            
$this->_type "rdf";
        }
        
        if ( 
$name == "channel" AND $this->_type != "rdf" ) {
            
$this->_parse_mode "channel";
        } elseif ( (
$name=="item")
                    ||(
$name=="image")
                    ||(
$name=="textinput")
                    ||((
$name=="channel") && ($this->_type != "rss")) ) {
            if(
$this->_parse_mode=="channel") {
                
$this->_get_ChannelData$parser );
            }
            
$this->_parse_mode "all";
        }
        
        
$this->_depth[$parser]++; 
        
array_push($this->_tags$name); 
        
$this->_cdepth[$parser]++; 
        
array_push($this->_ctags$name);
    } 

    function 
_get_ChannelData$parser )
    {
                if( empty(
$this->_display_opt["channel"]) OR
                    
$this->_display_opt["channel"] != "hidden") {   
                
$this->_output .= "<tr><td>\n";
                
$this->_output .= '<table border="0" width="100%" class="fase4_rdf_meta" cellspacing="5" cellpadding="2">'."\n";
                
$this->_output .= "<tr><td class=\"fase4_rdf\"><div class=\"fase4_rdf_title\">".htmlspecialchars($this->_citem["title"])."</div></td></tr>\n"
                
$this->_output .= "<tr><td class=\"fase4_rdf\">".strip_tags($this->_citem["description"], "<a>, <img>")."</td></tr>\n";
                
$this->_output .= "<tr><td>&nbsp;</td></tr>\n";
                
$this->_output .= "<tr><td class=\"fase4_rdf\">\n";
                if(
$this->_display_opt["build"] != "hidden") {
                    if(
$this->_citem["lastBuildDate"]){$this->_output .= "build: "$this->_citem["lastBuildDate"]."<br />";}
                } 
                if(
$this->_display_opt["cache_update"] != "hidden" && ( $_update $this->get_cache_update_time()) ) {
                
$this->_output .= "cache update: ".$_update."<br />\n";
                }
                
$this->_output .= "<a href=\"".$this->_citem["link"]."\" ";
                if(isset(
$this->_link_target)) { $this->_output .= "target=\"".$this->_link_target."\" "; }
                
$this->_output .= ">".$this->_cut_string($this->_citem["link"])."</a>";
                
$this->_output .= "</td></tr>\n";
                
$this->_output .= "</table></td></tr>";
                }
                    
$this->_array_channel = array(  "title"=>$this->_citem["title"], 
                                                    
"link"=>$this->_citem["link"],
                                                    
"description"=>$this->_citem["description"],
                                                    
"lastBuildDate"=>$this->_citem["lastBuildDate"]);                
    }

    function 
_endElement($parser$name) { 
        
array_pop($this->_tags); 
        
$this->_depth[$parser]--;
        
array_pop($this->_ctags); 
        
$this->_cdepth[$parser]--;
        switch (
$name) { 
            case 
"item":
                if(empty(
$this->_max_count) OR $this->_item_count $this->_max_count) {
                    if(
$this->_item["title"] != $this->_item["description"
                                            AND 
$this->_item["description"]) {
                        
$this->_output .= "<tr><td class=\"fase4_rdf\">".strip_tags($this->_item["description"], "<a>, <img>")."</td></tr>\n";
                        
$this->_output .= "<tr><td class=\"fase4_rdf\"><a href=\"".$this->_item["link"]."\" ";
                        if(isset(
$this->_link_target)) { $this->_output .= "target=\"".$this->_link_target."\" "; }
                        
$this->_output .= ">".strip_tags($this->_item["title"], "<a>, <img>")."</a></td></tr>\n";

                        
$this->_output .= "<tr><td><hr noshade=\"noshade\" size=\"1\" /></td></tr>\n";
                    } else {
                        
$this->_output .= "<tr><td class=\"fase4_rdf\">\n";
                        
$this->_output .= "<a href=\"".$this->_item["link"]."\" ";
                        if(isset(
$this->_link_target)) { $this->_output .= "target=\"".$this->_link_target."\" "; }
                        
$this->_output .= ">".$this->_item["title"]."</a></td></tr>\n";
                    }
                        
$this->_array_item[] = array(   "title"=>$this->_item["title"], 
                                                        
"link"=>$this->_item["link"],
                                                        
"description"=>$this->_item["description"]);
                        ++
$this->_item_count;
                }
                    
$this->_clear_Items(); 
            break; 
            case 
"image"
                if(
$this->_display_opt["image"] != "hidden" && $this->_item["url"]) {            
                    
$this->_output .= "<tr><td class=\"fase4_rdf\">\n";
                    
$this->_output .= "<a href=\"".$this->_item["link"]."\" ";
                    if(isset(
$this->_link_target)) { $this->_output .= "target=\"".$this->_link_target."\" "; }
                    
$this->_output .= "><img src=\"".$this->_item["url"]."\"";
                if(
$this->_item["width"] && $this->_item["height"]) {
                    
$this->_output .= " width=\"".$this->_item["width"]."\" height=\"".$this->_item["height"]."\"";
                }
                
$this->_output .= " alt=\"".$this->_item["title"]."\" border=\"0\" /></a></td></tr>\n"
                
                    
$this->_array_image[] = array(  "url"=>$this->_item["url"], 
                                                    
"link"=>$this->_item["link"],
                                                    
"width"=>$this->_item["width"],
                                                    
"height"=>$this->_item["height"]);
                    
$this->_clear_Items(); 
                } elseif( 
$this->_display_opt["image"] == "hidden" ) {
                    
$this->_clear_Items();
                }
                                
            break; 
            case 
"channel"
                if(
$this->_display_opt["channel"] != "hidden" AND $this->_item["title"] != "") {   
                    
$this->_output .= "<tr><td>\n";
                    
$this->_output .= '<table border="0" width="100%" class="fase4_rdf_meta" cellspacing="5" cellpadding="2">'."\n";
                    
$this->_output .= "<tr><td class=\"fase4_rdf\"><div class=\"fase4_rdf_title\">".htmlspecialchars($this->_item["title"])."</div></td></tr>\n"
                    
$this->_output .= "<tr><td class=\"fase4_rdf\">".strip_tags($this->_item["description"], "<a>, <img>")."</td></tr>\n";
                    
$this->_output .= "<tr><td>&nbsp;</td></tr>\n";
                    
$this->_output .= "<tr><td class=\"fase4_rdf\">\n";
                if(
$this->_display_opt["build"] != "hidden") {
                    if(
$this->_item["lastBuildDate"]){$this->_output .= "build: "$this->_item["lastBuildDate"]."<br />";}
                }
                if(
$this->_display_opt["cache_update"] != "hidden" && ( $_update $this->get_cache_update_time()) ) {
                    
$this->_output .= "cache update: ".$_update."<br />\n";
                }
                
$this->_output .= "<a href=\"".$this->_item["link"]."\" ";
                if(isset(
$this->_link_target)) { $this->_output .= "target=\"".$this->_link_target."\" "; }
                
$this->_output .= ">".$this->_cut_string($this->_item["link"])."</a>\n";
                
$this->_output .= "</td></tr>\n";
                
$this->_output .= "</table></td></tr>\n";
                }
                    
$this->_array_channel = array(  "title"=>$this->_item["title"], 
                                                    
"link"=>$this->_item["link"],
                                                    
"description"=>$this->_item["description"],
                                                    
"lastBuildDate"=>$this->_item["lastBuildDate"]);
                    
$this->_clear_Items();
                    
$this->_clear_cItems();
            break; 
            case 
"textinput":
                if(
$this->_display_opt["textinput"] != "hidden" && $this->_item["name"] && $this->_item["link"]) {
                    
$this->_output .= "<tr><td class=\"fase4_rdf\">\n";
                    
$this->_output .= "<form action=\"".$this->_item["link"]."\" ";
                    if(isset(
$this->_link_target)) { $this->_output .= "target=\"".$this->_link_target."\" "; }
                    
$this->_output .= "method=\"get\">\n";
                    
$this->_output .= "<div class=\"fase4_rdf_title\">".$this->_item["title"]."</div>";
                    
$this->_output .= strip_tags($this->_item["description"], "<a>, <img>")."<br><br>\n";
                    
$this->_output .= "<input class=\"fase4_rdf_input\" type=\"text\" name=\"".$this->_item["name"]."\">&nbsp;\n";
                    
$this->_output .= "<input class=\"fase4_rdf_input\" type=\"submit\" value=\"go\">";
                    
$this->_output .= "</form>\n";
                    
$this->_output .= "</td></tr>\n";
                    
$this->_array_textinput = array(    "title"=>$this->_item["title"],
                                                        
"name"=>$this->_item["name"],
                                                        
"link"=>$this->_item["link"],
                                                        
"description"=>$this->_item["description"]);
                    
$this->_clear_Items();
                } elseif( 
$this->_display_opt["textinput"] == "hidden" ) {
                    
$this->_clear_Items();
                }
                
            break;            
        } 
    } 

    function 
get_array_channel( )
    {
        return 
$this->_array_channel;
    }
    
    function 
get_array_item( )
    {
        return 
$this->_array_item;
    }
    
    function 
get_array_textinput( )
    {
        return 
$this->_array_textinput;
    }

    function 
get_array_image( )
    {
        return 
$this->_array_image;
    }    
    
    function 
_parseData($parser$text
    { 
        
$clean preg_replace("/\s/"""$text); 
        if (
$clean) { 
            
$text preg_replace("/^\s+/"""$text); 
                if(
$this->_parse_mode == "all") {
                        if ( 
$this->_item[$this->_tags[$this->_depth[$parser]]] ) { 
                           
$this->_item[$this->_tags[$this->_depth[$parser]]] .= $text
                        } else { 
                           
$this->_item[$this->_tags[$this->_depth[$parser]]] = $text;  
                        }
                } elseif (
$this->_parse_mode == "channel") {
                        if ( 
$this->_citem[$this->_ctags[$this->_cdepth[$parser]]] ) { 
                           
$this->_citem[$this->_ctags[$this->_cdepth[$parser]]] .= $text
                        } else { 
                           
$this->_citem[$this->_ctags[$this->_cdepth[$parser]]] = $text;  
                        }                        
                }
        } 
    } 
    
    function 
set_Options$options "" )
    {
        if(
is_array$options )) {
            
$this->_display_opt $options;
            return 
true;
        } else {
            unset(
$this->_display_opt);
            return 
false;
        }
    }
    
    function 
set_table_width$width 400 )
    {
        
$this->_table_width $width;
        return 
true;
    }
    
    function 
get_Options()
    {
        
$options = array(   "image"=>"If 'image' is set to \"hidden\" no image provided by the RDF Publisher will be displayed.",
                            
"channel"=>"If 'channel' is set to \"hidden\" the Channel Meta Data (i.e the Title and the short description regarding the RDF Publisher will not be displayed",
                            
"textinput"=>"If set to \"hidden\" no Input Form will be displayed",
                            
"build"=>"If set to \"hidden\" the Build Date (if provided) of the RDF File will not be displayed",
                            
"cache_update"=>"If set to \"hidden\" the Update Date/Time of the cached Rdf File will not be displayed");
        return 
$options;
    }    

    function 
cache()
    {
        if(!
$this->_cache_dir_ok) {
            
$this->_create_cache_dir();
        }
        if(
$this->_use_dynamic_display == true) {
            
$this->_cached_file md5("dynamic".$this->_remote_file);
            
$this->_cache_type "normal";
        } else {
            
$this->_cached_file md5($this->_remote_file);
            
$this->_cache_type "fast";            
        }
        
        
$_cache_f $this->_cache_dir.$this->_cached_file;

        if ( (!
file_exists($_cache_f)) || (filemtime($_cache_f) < $this->_refresh) || (filesize($_cache_f) == 0)) {

        
$this->_use_cached_file false;

            
clearstatcache();
            if(
$this->_use_dynamic_display == true) {
                
$_rdf = @implode(" "$this->_rdf_data()); // -> proxy
                
if(!$_rdf) {
                    
$this->_throw_exception$this->_remote_file." is not available" );
                }
                
$this->_parse_xRDF$_rdf );
                
$this->_update_cache$_rdf );
                
$data $this->_output;
            } else {
                
$_rdf = @implode(" "$this->_rdf_data()); // -> proxy
                
if(!$_rdf) {
                    
$this->_throw_exception$this->_remote_file." is not available" );
                }                
                
$this->_parse_xRDF$_rdf );
                
$this->_update_cache$this->_output );
                
$data $this->_output;
            }
        } else {

        
$this->_use_cached_file true;        
            if(
$this->_use_dynamic_display == true) {
                
$this->_parse_xRDFimplode(" "file($_cache_f)) );
                
$data $this->_output;
            } else {        
                
$data = @implode(" "file($_cache_f));
            }
        }
        return 
trim($data);
    }   

    function 
_create_cache_dir()
    {
        if(!@
is_dir($this->_cache_dir)) {
            
$arr explode("/"$this->_cache_dir);
            
$c count($arr);
            if(
$arr[0]=="") {
                
$path "/";
            }
            for(
$i 0;$i<$c;$i++)
            {
                if(
$arr[$i]!="") {
                    
$path .= $arr[$i]."/";
                    if(!@
is_dir($path)) {
                       if(!@
mkdir($path0777)) { 
                            
$this->_throw_exception("failed to create directory:<b>".$this->_cache_dir."</b>.<br /><br />Exception on Line: ".__LINE__);
                        return 
false;
                        }                    
                    }
                }
            }
            
$this->_cache_dir_ok true;
            return 
true;
        } else {
            
$this->_cache_dir_ok true;
            return 
true;    
        }
    } 
    
    function 
_update_cache$content "" )
    {
             
$_local = @fopen$this->_cache_dir.$this->_cached_file"w" );
             if(!
$_local) { 
                
$this->_throw_exception"Cannot open ".$this->_cache_dir.$this->_cached_file."<br /><br />Exception at Line: ".__LINE__ ); 
                return 
false;
             }
             if(!
fwrite$_local$content)) { 
                
$this->_throw_exception"Cannot write to: ".$this->_cached_file."<br /><br />Exception at Line: ".__LINE__ ); 
                return 
false;
             }             
             
fclose$_local ); 
             return 
true;
    } 
    
    function 
get_cache_update_time()
    {   
            return (
file_exists($this->_cache_dir.$this->_cached_file))?date("d.m.Y H:i:s"filemtime($this->_cache_dir.$this->_cached_file)):"Cachemiss";
    } 

    function 
get_CacheType()
    {
        return 
$this->_cache_type;
    }
    
    function 
is_cachedFile()
    {
        return 
$this->_use_cached_file;
    }
    
    function 
clear_cache()
    {
        
$dir dir($this->_cache_dir);
        while(
$file=$dir->read()) {
            if(
$file!="." && $file!="..")  {
                if(!@
unlink($dir->path.$file)) {
                    
$this->_throw_exception
                    
"Unable to unlink ".$dir->path.$file
                    
."<br /><br />Exception at Line: ".__LINE__ ); 
                    return 
false;
                }
            }
        }
        
$dir->close();
        return 
true;
    } 

    function 
_cut_string$string$str_len "30" )
    {
        if(
strlen(trim($string))>$str_len) {
        
$string substrtrim($string) , 0$str_len 4);
        
$string .= " ...";
        }
        return 
$string;
    }  
    
    function 
_garbage_collection()
    {
        
srand((double) microtime() * 1000000);
        if (
rand(1100) <= $this->gc_probability) {
            
$dir dir($this->_cache_dir);
            while(
$file=$dir->read()) {
                if(
$file!="." AND $file!=".." AND filemtime($dir->path.$file) <= time() - $this->_refresh )  {
                @
unlink($dir->path.$file);
                }
        }
        
$dir->close();
        } 
    }    

    
/* ==== Proxy/Auth methods ==== */

    
function set_proxy($phost$pport)
    {
     
$this->_use_proxy true;

     if (
$phost != "")
        
$this->_phost $phost;

     if (
$pport != "")
        
$this->_pport $pport;
    }

    function 
set_proxy_auth$pname$ppasswd )
    {
     
$this->_use_proxy_auth true;

     if (
$pname != "")
        
$this->_pname $pname;

     if (
$ppasswd != "")
        
$this->_ppasswd $ppasswd;
    }

    function 
_rdf_data()
    {
      if ( 
$this->_use_proxy == true )
      {

       
$fp fsockopen($this->_phost,$this->_pport);

       if (!
$fp) {
           
$this->_throw_exception$this->_remote_file." is not available with proxy" );
       } else {
        if ( 
$this->_use_proxy_auth == true ) {
           
fputs($fp"GET ".$this->_remote_file." HTTP/1.0\r\n\r\n");
           } else {
           
fputs($fp"GET ".$this->_remote_file." HTTP/1.0\r\nProxy-Authorization: Basic ".base64_encode("$this->_pname:$this->_ppasswd") ."\r\n\r\n");
           }
        }


       for ( 
$i 0; !feof ($fp) ; $i++)
       {
          
$usable_data[$i] = "";
          
$usable_data[$i] = fgets($fp,4096);

        
// PARSE HEADER ---- first line has to be <?xml, second rdf or rss, and third is blank

        // strstr did not fit (ask Rasmus why), so we compare each character   
            
if ( ($usable_data[$i][0] == "<" ) &&
               (
$usable_data[$i][1] == "?" ) &&
               (
$usable_data[$i][2] == "x" ) &&
               (
$usable_data[$i][3] == "m" ) &&
               (
$usable_data[$i][4] == "l" ) ) {
                    
$usable_data[0] = $usable_data[$i]; // save current field
                      
$i 1// just reset array to start
              
}

        
// there seems to be proxystuff after the <?xml....we delete this
            
if ( (
               (
$usable_data[$i][0] == "<" ) &&
               (
$usable_data[$i][1] == "r" ) &&
               (
$usable_data[$i][2] == "d" ) &&
               (
$usable_data[$i][3] == "f" ) &&
               (
$usable_data[$i][4] == ":" 
               )
               ||
               (
               (
$usable_data[$i][0] == "<" ) &&
               (
$usable_data[$i][1] == "r" ) &&
               (
$usable_data[$i][2] == "s" ) &&
               (
$usable_data[$i][3] == "s" )
               ) 
            ) {

                
$usable_data[1] = $usable_data[$i]; // save current field
                
$usable_data[2] = "\n";
                
$i 2// just reset array to start
          
}
       }

       
fclose($fp);
       return 
$usable_data;
     } else {
        return (
file($this->_remote_file));
     }
   }    
// END _rdf_data()
}   // END class
?>
подготовительная часть пройдена, начинаем забирать новости...
 
Old  
SerV
Продвинутый
Default 0

PHP Code:
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>RSS-News </title> 
    <style type="text/css">
    body {
        font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
        font-size: 11px;
        margin-left : 20px;
        margin-top : 20px;    
        background-color: #ffffff;         
    }    
    .fase4_rdf {
        font-size: 11px;
        font-family: verdana, arial, helvetica, sans-serif;
    }
    .fase4_rdf_title {
        font-size: 12px;
        font-weight : bolder;    
    }
    .fase4_rdf_input {
        border: dotted 1px #6699cc; 
        font-size: 10px;
        font-family: verdana, arial, helvetica, sans-serif;
        background-color: #f5f5f5;   
    }
    .fase4_rdf_meta {
        background-color: #f5f5f5;  
    }
    A:link {
        color: #003366;
    }
    A:hover {
        color: #6699cc;
        text-decoration: none;
    }
    A:visited {
        color: #003366;
    }   
    .input {
        font-family: verdana, arial, helvetica, sans-serif;
        font-size: 12px;
        background-color: #4870a0;
        border-color: #6890b8;
    }
    .inputsubmit {
        font-family: verdana, arial, helvetica, sans-serif;
        font-size: 11px;
        background-color: #4870a0;
        border-color: #6890b8;
    }    
   </style>    
</head>
<body>
<?php 
error_reporting
(0);
        include(
"rss.php");
        
$rdf = new fase4_rdf;
        
$rdf->use_dynamic_display(false);
        
$rdf->set_Options( array("textinput"=>"hidden") );        
        
$rdf->parse_RDF("http://news.yandex.ru/internet.rss");
        
$rdf->finish();
?>
</body>
</html>

парсер позволяет делать "статику".
т.е. пользователю передается хакэшированные уже новости.
к примеру каждые 30 минут скрипт снимает новости с заказанных сайтов и кладет на диск - а потом выдает из кэша по вашему запросу.

статический кэш может хранитсья в 2-х видах.
1) файл вида: 2756q2r62697n7n6s6r2r6r6
2) news.html

вопрос: КАК это импортировать в ОБЪЯВЛЕНИЕ форума?



может быть через MySQL как?

Гуру Воблы подскажите пожалуйста :)


WBR, Serg.

Last edited by SerV : 09-07-2006 at 07:59 PM.
 
Old  
Klonic_J
Продвинутый
Default 0

up!

интересует счастливая концовка этой темы
 
Old  
mikluho
Простоузер
Default 0

Quote:
Originally Posted by Klonic_J
up!

интересует счастливая концовка этой темы
аналогично
 
Old  
SerV
Продвинутый
Default 0

Quote:
Originally Posted by mikluho
аналогично
к сожалению гуры воблы так и не откликнулись.
сделал просто каждые новости отдельной страницей
(отдельно авто, отдельно интернет, отдельно софт и т.д.)

далее просто сделал в нужном раздлеле форума "объявление", и внутри объявления разрешил HTML. ну и просто мета-редиректом перенаправляю пользователей на нужную страницу, когда они открывают объявление.

жаль конечно, никто не хочет развить тему.
иметь новости в самом объялении было гораздо интереснее.
 
 

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 04:29 AM.


Powered by vBulletin® Version 3.5.7
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.