Rss/atom Feed For Php - news feed

free web hosting
Free Web Hosting > Computers & Tech > Programming > Scripting > PHP

Rss/atom Feed For Php - news feed

Yaghoob
Hi
I want to put Link of latest posts and a short text of that post from other xml (rss/atom,...) feeds to my page.
XML addresses are stored in a mysql database.

Please offer me a free and no ads RSS/XML Reader script.

Thanks

Reply

closed
try this one -> http://www.evilwalrus.org/scripts/PHP_XML_...ry_version_1_2b

Reply

Yaghoob
Thanks a lot smile.gif
But i have some problems yet wub.gif

It's your offered code: xml.inc.php
CODE
<?php
################################################################################
###
#
# XML Library, by Keith Devens, version 1.2b
# http://keithdevens.com/software/phpxml
#
# This code is Open Source, released under terms similar to the Artistic License.
# Read the license at http://keithdevens.com/software/license
#
################################################################################
###

################################################################################
###
# XML_unserialize: takes raw XML as a parameter (a string)
# and returns an equivalent PHP data structure
################################################################################
###
function & XML_unserialize(&$xml){
    $xml_parser = &new XML();
    $data = &$xml_parser->parse($xml);
    $xml_parser->destruct();
    return $data;
}
################################################################################
###
# XML_serialize: serializes any PHP data structure into XML
# Takes one parameter: the data to serialize. Must be an array.
################################################################################
###
function & XML_serialize(&$data, $level = 0, $prior_key = NULL){
    if($level == 0){ ob_start(); echo '<?xml version="1.0" ?>',"n"; }
    while(list($key, $value) = each($data))
        if(!strpos($key, ' attr')) #if it's not an attribute
            #we don't treat attributes by themselves, so for an empty element
            # that has attributes you still need to set the element to NULL

            if(is_array($value) and array_key_exists(0, $value)){
                XML_serialize($value, $level, $key);
            }else{
                $tag = $prior_key ? $prior_key : $key;
                echo str_repeat("t", $level),'<',$tag;
                if(array_key_exists("$key attr", $data)){ #if there's an attribute for this element
                    while(list($attr_name, $attr_value) = each($data["$key attr"]))
                        echo ' ',$attr_name,'="',htmlspecialchars($attr_value),'"';
                    reset($data["$key attr"]);
                }

                if(is_null($value)) echo " />n";
                elseif(!is_array($value)) echo '>',htmlspecialchars($value),"</$tag>n";
                else echo ">n",XML_serialize($value, $level+1),str_repeat("t", $level),"</$tag>n";
            }
    reset($data);
    if($level == 0){ $str = &ob_get_contents(); ob_end_clean(); return $str; }
}
################################################################################
###
# XML class: utility class to be used with PHP's XML handling functions
################################################################################
###
class XML{
    var $parser;   #a reference to the XML parser
    var $document; #the entire XML structure built up so far
    var $parent;   #a pointer to the current parent - the parent will be an array
    var $stack;    #a stack of the most recent parent at each nesting level
    var $last_opened_tag; #keeps track of the last tag opened.

    function XML(){
        $this->parser = &xml_parser_create();
        xml_parser_set_option(&$this->parser, XML_OPTION_CASE_FOLDING, false);
        xml_set_object(&$this->parser, &$this);
        xml_set_element_handler(&$this->parser, 'open','close');
        xml_set_character_data_handler(&$this->parser, 'data');
    }
    function destruct(){ xml_parser_free(&$this->parser); }
    function & parse(&$data){
        $this->document = array();
        $this->stack    = array();
        $this->parent   = &$this->document;
        return xml_parse(&$this->parser, &$data, true) ? $this->document : NULL;
    }
    function open(&$parser, $tag, $attributes){
        $this->data = ''; #stores temporary cdata
        $this->last_opened_tag = $tag;
        if(is_array($this->parent) and array_key_exists($tag,$this->parent)){ #if you've seen this tag before
            if(is_array($this->parent[$tag]) and array_key_exists(0,$this->parent[$tag])){ #if the keys are numeric
                #this is the third or later instance of $tag we've come across
                $key = count_numeric_items($this->parent[$tag]);
            }else{
                #this is the second instance of $tag that we've seen. shift around
                if(array_key_exists("$tag attr",$this->parent)){
                    $arr = array('0 attr'=>&$this->parent["$tag attr"], &$this->parent[$tag]);
                    unset($this->parent["$tag attr"]);
                }else{
                    $arr = array(&$this->parent[$tag]);
                }
                $this->parent[$tag] = &$arr;
                $key = 1;
            }
            $this->parent = &$this->parent[$tag];
        }else{
            $key = $tag;
        }
        if($attributes) $this->parent["$key attr"] = $attributes;
        $this->parent  = &$this->parent[$key];
        $this->stack[] = &$this->parent;
    }
    function data(&$parser, $data){
        if($this->last_opened_tag != NULL) #you don't need to store whitespace in between tags
            $this->data .= $data;
    }
    function close(&$parser, $tag){
        if($this->last_opened_tag == $tag){
            $this->parent = $this->data;
            $this->last_opened_tag = NULL;
        }
        array_pop($this->stack);
        if($this->stack) $this->parent = &$this->stack[count($this->stack)-1];
    }
}
function count_numeric_items(&$array){
    return is_array($array) ? count(array_filter(array_keys($array), 'is_numeric')) : 0;
}


################################
/* Example
Stick some xml in a file called xml.php and run it in the same directory of this script.  It will output the structure of $xml which is the array containing the xml data.*/
################################
$data = file_get_contents('http://electronic-science.mihanblog.com/rss.aspx');
$xml = XML_unserialize($data);
print_r($xml);

?>


Attention to $data variable at end lines

CODE
$data = file_get_contents('http://electronic-science.mihanblog.com/rss.aspx');


I had put any of my XML addresses from database for test.
But running this page on my localhost warnnings:
QUOTE
Warning: file_get_contents(http://electronic-science.mihanblog.com/rss.aspx) [function.file-get-contents]: failed to open stream: A non-blocking socket operation could not be completed immediately. in C:\Apache2\htdocs\xml.inc.php on line 123


Where is the problem? Please guide me... sad.gif
Know it that my XML address is utf-8 encoding.

 

 

 


Reply

closed
QUOTE(Yaghoob @ Mar 8 2007, 10:06 PM) *
$data = file_get_contents('http://electronic-science.mihanblog.com/rss.aspx');

...

Attention to $data variable at end lines

CODE
$data = file_get_contents('http://electronic-science.mihanblog.com/rss.aspx');


try the code first with an xml file at your localhost, just for testing purpose. afaik that code reads xml files resides in the same domain. on the other hand you might be using firewall that prevent you from reading files outside the box.

and i think you need modify that code to read some files outside your domain name. as you see, you might consider some security too. it seems your taking the path to suicidal hell if you don't do that wink.gif

Reply

Yaghoob
Excuse me, i'm a beginner PHP programmer rolleyes.gif
Your speaks means that i can't use this script for my purpose. Yes? huh.gif

I had found another XML Reader wink.gif But i can't install it on localhost... happy.gif

It's here: Feed2JS
Web page: Feed2js.org

Please guide me how to install it

Thanks

Reply

closed
docs on how to set up in your localhost +> http://feed2js.org/index.php?s=download
it's easy to follow and i know you can do it. And if didn't work try it at some online server.

btw if you still need xml_parser in php. try this link.
http://www.php.net/manual/en/function.xml-...into-struct.php

i consider you want to learn how to do it. the manual is your best friend.

Reply


Got an Opinion! Express your Views! (no registration):-
Add your Reply/ Opinion/ Views/ Comments/ Suggestion/ Questions/ Queries etc.
Posts with decent grammar & English will be accepted and please refrain from profanities.
For asking a Question, We recommend you to sign-up (for free) so that you can track the topic easily.

Nature of your Post*: Opinion/ Reply/ Comments
Question/Query
Feedback to us.
       
Name   Email
Title/Question*

Similar Topics

Keywords : rss, atom, feed, php, news, feed

  1. Simple PHP News System Problems
    (1)
  2. PHP Script: Separating News Into Pages
    (2)
    look. I' ve got such a script to add news: CODE if($mess&&$subj) {
            $fp=fopen("news.txt", "a");         $d=date("d").".".date("m").".".date("Y");         $c=0;
            if(file_exists("news.txt")&&filesize("news.txt")>0) {             if($c==0) {
                    $news=" |$subj|$d|$login|$mess\n";             }             else {
                    $news=" |$subj|$d|$login|$mess";             }         }         else {
                if($c==0) {                 $news="|$subj|$d|$login|$mess\n";             }
                else {                 $news="|$subj|$d|$lo....
  3. Need Help Is Adding A PHP Based News Module To My Site
    (2)
    Hey guys i need a simple help i'm builing a homesite and i have a little spot for news. Well i
    just place there the Topics and add a link to another page "news.php". Well its obvious that i dont
    want to build a file for each news that i have so i know that exists a way to work with SQL & PHP. I
    will show want i'm doing CODE        require ('mysql.php');       
    $query="SELECT * FROM News ORDER BY `data` ASC LIMIT 0,5 ";        $result=mysql_query($query);
               $num=mysql_num_rows($result); mysql_close(); echo " Outras Other News "; $i=....

    1. Looking for rss, atom, feed, php, news, feed






*SIMILAR VIDEOS*
Searching Video's for rss, atom, feed, php, news, feed
advertisement




Rss/atom Feed For Php - news feed