نمایش نتایج 1 تا 4 از 4

نام تاپیک: ساخت برنامه rss reader با php

  1. #1

    ساخت برنامه rss reader با php

    سلام دوستان
    من این ترم پروژه دارم و وقتی رفتم پیش استاد تا ببینم چکار باید بکنم , گفت باید یه rss reader با زبان php بنویسم (مثل google reader) , ولی من حتی نمیدونم rss چی هست , تا اینکه بخوام یه rss reader بنویسیم
    هیچ منبعی هم پیدا نکرم که بهم کمک کنه , اصلا نمیدونم چی باید بنویسم , هر چقدر هم استادموون گفتم که پروژه رو عوض کنه , عوض نکرد , جان من بهم کمک کنید , ترم آخر هستم .
    ممنون

  2. #2

    نقل قول: ساخت برنامه rss reader با php

    سلام البته فک کنم جای پستت اینجا نباشه اینجا احتمالا دیر تر بجواب میرسی
    خلاصه اصلا نگران نباش اصلا کار سختی قرار نیست انجام بدی یه سرچ تو سایت phpclases بزن یه عالمه واست کلاس نوشته شده میاد بیا اینم نمونش که خیلی عالی نوشته شده بنظر من(نت خودم از همین استفاده میکنم):
    1:) feedReader

    <?php
    // classe feedReader
    //faz a leitura de um feed (rss ou xml)
    //versمo 2 para PHP 4
    //autor: José Valente mailto:jcvalente@netvisao.pt
    //2004 Portugal

    class feedReader{

    var $feedReader; // parser
    var $feedUrl; // url do ficheiro xml/rss
    var $node; // nْmero de nَs dos items
    var $channelFlag; // flag
    var $currentTag; // actual tag
    var $outputData; // array dos dados (notيcias formatadas)
    var $itemFlag; // flag
    var $imageFlag; // flag
    var $feedVersion; // versمo do ficheiro rss

    function feedReader(){ //constructor iniciaçمo dos valores por defeitos dos elementos da classe
    $this->feedReader="";
    $this->feedUrl="";
    $this->node=0;
    $this->channelFlag=false;
    $this->currentTag="";
    $this->outputData=array();
    $this->itemFlag=false;
    $this->imageFlag=false;
    $this->feedVersion="";
    }

    function setFeedUrl($url){ //indicamos o endereço do ficheiro xml/rss
    $this->feedUrl=$url;
    }

    function getFeedOutputData(){ //retornamos o array com as notيcias formatadas
    return $this->outputData;
    }

    function getFeedNumberOfNodes(){ //retornamos o nْmero de notيcias
    return $this->node;
    }

    function parseFeed(){ //funçمo parse do xml
    $this->feedReader=xml_parser_create();
    xml_set_object($this->feedReader,$this);
    xml_parser_set_option($this->feedReader,XML_OPTION_CASE_FOLDING,true);
    xml_set_element_handler($this->feedReader,"openTag","closeTag");
    xml_set_character_data_handler($this->feedReader,"dataHandling");
    if(!($fp=@fopen($this->feedUrl,"r"))){
    $errorDefinition="Nمo foi possيvel encontrar o ficheiro pretendido.";
    echo $errorDefinition;
    }
    while($data=@fread($fp,4096)){
    //$data=utf8_encode($data);//para eliminar um erro, em que eliminava toda a string antes do ْltimo "&"
    if(!@xml_parse($this->feedReader,$data,feof($fp))){
    $errorDefinition=xml_error_string(xml_get_error_co de($this->feedReader));
    echo $errorDefinition;
    }
    }
    xml_parser_free($this->feedReader);
    }

    function openTag(&$parser,&$name,&$attribs){ //funçمo startElement
    if($name){
    switch(strtolower($name)){
    case "channel":$this->channelFlag=true;break;
    case "image":$this->channelFlag=false;$this->imageFlag=true;break;
    case "item":$this->channelFlag=false;$this->imageFlag=false;$this->itemFlag=true;$this->node++;break;
    default:$this->currentTag=strtolower($name);break;
    }
    }
    }

    function closeTag(&$parser,&$name){ //funçمo endElement
    $this->currentTag="";
    }

    function dataHandling(&$parser,&$data){ //funçمo characterElement
    if($this->channelFlag){ //para a descriçمo do channel
    if(isset($this->outputData["channel"][$this->currentTag])){
    $this->outputData["channel"][$this->currentTag].=$data;
    }else{
    $this->outputData["channel"][$this->currentTag]=$data;
    }

    }
    if($this->itemFlag){ //para a descriçمo dos items
    if(isset($this->outputData["item"][$this->currentTag][$this->node-1])){
    $this->outputData["item"][$this->currentTag][$this->node-1].=$data;
    }else{
    $this->outputData["item"][$this->currentTag][$this->node-1]=$data;
    }
    //reconversمo
    }
    if($this->imageFlag){ //para a descriçمo da imagem
    if(isset($this->outputData["image"][$this->currentTag])){
    $this->outputData["image"][$this->currentTag].=$data;
    }else{
    $this->outputData["image"][$this->currentTag]=$data;
    }

    }
    }

    }
    ?>


    2-) RSSReader

    <?php
    //versمo 2 para PHP 4
    //autor: José Valente mailto:jcvalente@netvisao.pt
    //2005 Portugal
    include("feedReader.inc.php");

    class RSSReader extends feedReader{

    var $data;

    function RSSReader($url){
    $this->setFeedUrl($url);
    $this->parseFeed();
    $this->data = $this->getFeedOutputData();
    }

    //********************* CHANNEL **********************************
    function getChannelTitle($class=""){
    $html = "<a ";
    if(isset($class)){
    $html .= "class=\"".$class."\" ";
    }
    $html .= "href=\"".$this->data['channel']['link']."\" target=\"_blank\">";
    $html .= $this->data['channel']['title'];
    $html .= "</a>";
    return $html;
    }

    function getChannelDescription($class=""){
    $html = "<span ";
    if(isset($class)){
    $html .= "class=\"".$class."\" ";
    }
    $html .= ">".$this->data['channel']['description'];
    $html .= "</span>";
    return $html;
    }

    function getChannelCopyright($class=""){
    if(isset($this->data['channel']['copyright'])){
    $html = "<span ";
    if(isset($class)){
    $html .= "class=\"".$class."\" ";
    }
    $html .= ">".$this->data['channel']['copyright'];
    $html .= "</span>";
    return $html;
    }
    }

    function getChannelLanguage($class=""){
    if(isset($this->data['channel']['language'])){
    $html = "<span ";
    if(isset($class)){
    $html .= "class=\"".$class."\" ";
    }
    $html .= ">".$this->data['channel']['language'];
    $html .= "</span>";
    return $html;
    }
    }
    //********************* IMAGE *****************************
    function getImage(){
    if(isset($this->data['image']['link'])){
    $html = "<a href=\"".$this->data['image']['link']."\" target=\"_blank\">";
    $html .= "<img border=\"0\" ";
    if(isset($this->data['image']['height'])){
    $html .= "height=\"".$this->data['image']['height']."\" ";
    }
    if(isset($this->data['image']['width'])){
    $html .= "width=\"".$this->data['image']['width']."\" ";
    }
    $html .= "src=\"".$this->data['image']['url']."\" title=\"".$this->data['image']['title']."\" />";
    $html .= "</a>";
    return $html;
    }
    }
    //*********************** ITEM ****************************
    function getItemTitle($class="",$item){
    $html = "<a ";
    if(isset($class)){
    $html .= "class=\"".$class."\" ";
    }
    $html .= "href=\"".$this->data['item']['link'][$item]."\" target=\"_blank\">";
    $html .= $this->data['item']['title'][$item];
    $html .= "</a>";
    return $html;
    }

    function getItemDescription($class="",$item){
    if(isset($this->data['item']['description'][$item])){
    $html = "<span ";
    if(isset($class)){
    $html .= "class=\"".$class."\" ";
    }
    $html .= ">".str_replace ("</pre>", "</p>", str_replace ("<pre>", "<p>", html_entity_decode($this->data['item']['description'][$item])));
    //tag <pre> change the attribute with in a cell in table
    $html .= "</span>";
    return $html;
    }
    }

    function getItemPubdate($class="",$item){
    if(isset($this->data['item']['pubdate'][$item])){
    $html = "<span ";
    if(isset($class)){
    $html .= "class=\"".$class."\" ";
    }
    $html .= ">".$this->data['item']['pubdate'][$item];
    $html .= "</span>";
    return $html;
    }
    }

    function getNumberOfNews(){
    return $this->getFeedNumberOfNodes();
    }

    }
    ?>


    3-) نحوه استفاده مثال:


    <ul id=rss>
    <?php
    include("includes/RSSReader.inc.php");
    $rss = new RSSReader("http://yorsite/rss.aspx?id=0&Lang=fa");
    $nn = $rss->getNumberOfNews();
    for($i=0;$i<$nn;$i++){?>
    <li><?php echo $rss->getItemTitle("rsslink",$i);?></li>
    <?php }?>
    </ul>



    امیدوارم منظورت همین باشه و تونسته باشم کمکت کنم

  3. #3

    نقل قول: ساخت برنامه rss reader با php

    ممنون از شما دوست عزیز
    شرمنده که تاپیک رو اینجا زدم
    یه تستش میکنم و جوابش رو بهتوون میدم
    راستی من میخوام صفحات به صورت گرافیکی باشند(مثل google reader) باید با جاوا اسکریپت این کار رو بکنم ولی من جاوا اسکریپت بلد نیستم , اگه یه منبع فارسی خوب باشه تا ساخت صفحات گرافیکی به خصوص ساخت پنل و ساخت تب پیج و .. به صورت گرافیکی رو یاد بده عالی میشه
    باز ممنون از زحمتاتوون

  4. #4

    نقل قول: ساخت برنامه rss reader با php

    دروووووووووووووووود
    از کد اولی استفاده کردم error داد

    Parse error:  syntax error, unexpected T_STRING in G:\web\RSSReader.inc.php on line 57


    مشکل چیه؟؟؟؟؟؟؟؟

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •