• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
چطور در PHP فید بخوانیم و چطور فید بخوانیم
#1
دوستان من می خواهم بدونم چطور می توانیم با کمک PHP یک فید رو بخوانیم و در قسمتی از سایت به نمایش در بیاریم و اینکه چطور می توانیم برای CMS ساخت خودمان قابلیت فید خروجی رو بیفزایم ممنون می شوم راهنمایی بفرمایید
  پاسخ
تشکر شده توسط :
#2
http://www.google.com/search?hl=en&biw=1...0&aql=t&oq=
  پاسخ
تشکر شده توسط : saeidgi oia paull
#3
(۱۳۸۹ اسفند ۲۹, ۰۳:۱۸ ق.ظ)parvane نوشته: http://www.google.com/search?hl=en&biw=1...0&aql=t&oq=

بسیار ممنون رسیدم به اینجا چون V*N من مشکل داره نتوانستم دریافت کنم کسی میتونه زحمت این فایل رو بکشه
کد:
http://sourceforge.net/projects/rssphp/files/rssphp/v1/
  پاسخ
تشکر شده توسط :
#4
کد پی‌اچ‌پی:
بسم الله الرحمن الرحیم 
سلام
تو هات فایل واست آپلود کردم:
کد:
http://hotfile.com/dl/111078286/66bf149/rss_php.v1.zip.html
  پاسخ
تشکر شده توسط : saeidgi oia paull
#5
دوستان من واقعاً ممنونم که راهنمایی های شما به لطف خدا سیستم مدیریت محتوای نصبتان خوبی ساختم حالا مونده فقط اینکه من بتونم خروجی Feed بگیرم از این سیستم اگر لطف کنید یک راهنمایی هم در این باب کنید بسیار ممنون میشوم
(یکی هم خلاصه کردن کدام مونده که وقتی خواستم به شکل اپن سورس نشرش بدم همه فهم باشه و امنیت خوبی هم داشته باشه ، حدفم این هست که یم سیستم مدیریت محتوای قدرتمند ارایه بدم که بتونه پوز سیستم های خارجی رو بزنه، البته به کمک شما دوستان عزیز )

سوال:
چگونه می توان از یک سایت که برمبنای php و MySQL طراحی شده خروجی فید گرفت؟
  پاسخ
تشکر شده توسط :
#6
خوب حسین جون چرا همیجا ضمیمه نکردید!!! Cool


فایل‌های پیوست
.zip   rss_php.v1.zip (اندازه 1.61 KB / تعداد دانلود: 7)
  پاسخ
تشکر شده توسط : saeidgi paull
#7
(۱۳۹۰ خرداد ۰۸, ۰۱:۵۵ ق.ظ)oia نوشته: خوب حسین جون چرا همیجا ضمیمه نکردید!!! Cool

خوب دوستان من از این کدها چطور استفاده کنم؟
کد پی‌اچ‌پی:
<?php
/*
    RSS_PHP - the PHP DOM based RSS Parser
    Author: <rssphp.net>
    Published: 200801 :: blacknet :: via rssphp.net
    
    RSS_PHP is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.

    Usage:
        See the documentation at http://rssphp.net/documentation
    Examples:
        Can be found online at http://rssphp.net/examples
*/

class rss_php {
    
    public 
$document;
    public 
$channel;
    public 
$items;

/****************************
    public load methods
***/
    # load RSS by URL
        
public function load($url=false$unblock=true) {
            if(
$url) {
                if(
$unblock) {
                    
$this->loadParser(file_get_contents($urlfalse$this->randomContext()));
                } else {
                    
$this->loadParser(file_get_contents($url));
                }
            }
        }
    
# load raw RSS data
        
public function loadRSS($rawxml=false) {
            if(
$rawxml) {
                
$this->loadParser($rawxml);
            }
        }
        
/****************************
    public load methods
        @param $includeAttributes BOOLEAN
        return array;
***/
    # return full rss array
        
public function getRSS($includeAttributes=false) {
            if(
$includeAttributes) {
                return 
$this->document;
            }
            return 
$this->valueReturner();
        }
    
# return channel data
        
public function getChannel($includeAttributes=false) {
            if(
$includeAttributes) {
                return 
$this->channel;
            }
            return 
$this->valueReturner($this->channel);
        }
    
# return rss items
        
public function getItems($includeAttributes=false) {
            if(
$includeAttributes) {
                return 
$this->items;
            }
            return 
$this->valueReturner($this->items);
        }

/****************************
    internal methods
***/
    
private function loadParser($rss=false) {
        if(
$rss) {
            
$this->document = array();
            
$this->channel = array();
            
$this->items = array();
            
$DOMDocument = new DOMDocument;
            
$DOMDocument->strictErrorChecking false;
            
$DOMDocument->loadXML($rss);
            
$this->document $this->extractDOM($DOMDocument->childNodes);
        }
    }
    
    private function 
valueReturner($valueBlock=false) {
        if(!
$valueBlock) {
            
$valueBlock $this->document;
        }
        foreach(
$valueBlock as $valueName => $values) {
                if(isset(
$values['value'])) {
                    
$values $values['value'];
                }
                if(
is_array($values)) {
                    
$valueBlock[$valueName] = $this->valueReturner($values);
                } else {
                    
$valueBlock[$valueName] = $values;
                }
        }
        return 
$valueBlock;
    }
    
    private function 
extractDOM($nodeList,$parentNodeName=false) {
        
$itemCounter 0;
        foreach(
$nodeList as $values) {
            if(
substr($values->nodeName,0,1) != '#') {
                if(
$values->nodeName == 'item') {
                    
$nodeName $values->nodeName.':'.$itemCounter;
                    
$itemCounter++;
                } else {
                    
$nodeName $values->nodeName;
                }
                
$tempNode[$nodeName] = array();                
                if(
$values->attributes) {
                    for(
$i=0;$values->attributes->item($i);$i++) {
                        
$tempNode[$nodeName]['properties'][$values->attributes->item($i)->nodeName] = $values->attributes->item($i)->nodeValue;
                    }
                }
                if(!
$values->firstChild) {
                    
$tempNode[$nodeName]['value'] = $values->textContent;
                } else {
                    
$tempNode[$nodeName]['value']  = $this->extractDOM($values->childNodes$values->nodeName);
                }
                if(
in_array($parentNodeName, array('channel','rdf:RDF'))) {
                    if(
$values->nodeName == 'item') {
                        
$this->items[] = $tempNode[$nodeName]['value'];
                    } elseif(!
in_array($values->nodeName, array('rss','channel'))) {
                        
$this->channel[$values->nodeName] = $tempNode[$nodeName];
                    }
                }
            } elseif(
substr($values->nodeName,1) == 'text') {
                
$tempValue trim(preg_replace('/\s\s+/',' ',str_replace("\n",' '$values->textContent)));
                if(
$tempValue) {
                    
$tempNode $tempValue;
                }
            } elseif(
substr($values->nodeName,1) == 'cdata-section'){
                
$tempNode $values->textContent;
            }
        }
        return 
$tempNode;
    }
    
    private function 
randomContext() {
        
$headerstrings = array();
        
$headerstrings['User-Agent'] = 'Mozilla/5.0 (Windows; U; Windows NT 5.'.rand(0,2).'; en-US; rv:1.'.rand(2,9).'.'.rand(0,4).'.'.rand(1,9).') Gecko/2007'.rand(10,12).rand(10,30).' Firefox/2.0.'.rand(0,1).'.'.rand(1,9);
        
$headerstrings['Accept-Charset'] = rand(0,1) ? 'en-gb,en;q=0.'.rand(3,8) : 'en-us,en;q=0.'.rand(3,8);
        
$headerstrings['Accept-Language'] = 'en-us,en;q=0.'.rand(4,6);
        
$setHeaders =     'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'."\r\n".
                        
'Accept-Charset: '.$headerstrings['Accept-Charset']."\r\n".
                        
'Accept-Language: '.$headerstrings['Accept-Language']."\r\n".
                        
'User-Agent: '.$headerstrings['User-Agent']."\r\n";
        
$contextOptions = array(
            
'http'=>array(
                
'method'=>"GET",
                
'header'=>$setHeaders
            
)
        );
        return 
stream_context_create($contextOptions);
    }
    
}

?>
  پاسخ
تشکر شده توسط :
#8
خوب خود کلاس documention داره. Sleepy
لینک : http://rssphp.net/documentation
لینک : http://rssphp.net/examples

البته من نفهمیدم کجاش RSS می سازه!!! Exclamation
اما برای ساختن یک RSS کافی اون اطلاعات رو بصورت XML خروجی بدید
توی همین انجمن هم قبلا بچه هایی مثه همین parvane توضیحاتی دادن
توی انجمن هم جستجویی بکنید !!!
  پاسخ
تشکر شده توسط : paull
#9
(۱۳۹۰ خرداد ۰۸, ۱۰:۲۳ ق.ظ)oia نوشته: خوب خود کلاس documention داره. Sleepy
لینک : http://rssphp.net/documentation
لینک : http://rssphp.net/examples

البته من نفهمیدم کجاش RSS می سازه!!! Exclamation
اما برای ساختن یک RSS کافی اون اطلاعات رو بصورت XML خروجی بدید
توی همین انجمن هم قبلا بچه هایی مثه همین parvane توضیحاتی دادن
توی انجمن هم جستجویی بکنید !!!

دوست عزیز ممنون از راهنمایتون ولی من آخه تو این فایل جایی که به دیتابیس وصل بشه و اطلاعات رو دریافت کنه نمی بینم یا هست من متوجه نمیشم
  پاسخ
تشکر شده توسط :
#10
هیچ کاسی که نمیاد خودش وصل شه!
شما اطلاعاتتون رو استخراج کنید
بعد به صورت RSS یا XML دربیارید
و با استفاده از این کلاس یا ...
خروجی بدید!
همین
  پاسخ
تشکر شده توسط : paull


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان