Current location: Hot Scripts Forums » Programming Languages » PHP » Syndicating XML data into a website using PHP...

Syndicating XML data into a website using PHP...

Reply
  #1  
Old 07-07-04, 11:33 PM
Jackal05 Jackal05 is offline
Newbie Coder
 
Join Date: Sep 2003
Posts: 12
Thanks: 0
Thanked 0 Times in 0 Posts
Syndicating XML data into a website using PHP...

Ok, let's say we have the following XML document located at www.anothersite.com/rss.xml
Code:
<rss version="2.0">
<channel>
<item1>Something</item1>
<item2>Something else</item2>
<item1>Some data</item1>
</channel>
</rss>
Now I wanna syndicate some (items 1 and 3) of that information into my own site.
I have proficient PHP skills and I know that it is possible to use PHP to display data like that on a website. Can someone tell me how to?
Using PHP I wanna turn each tag in the XML file into a variable then include that on the site. All I need to know is how to get a tag from the XML document displayed on a HTML document.

To break it down let's say I wanna have a small box on my site like:
Just some info:
- Item One: Something
- Item Three: Some data
Using the data from the XML document.

Thanks.
Reply With Quote
  #2  
Old 07-09-04, 01:32 AM
NeverMind's Avatar
NeverMind NeverMind is offline
Community VIP
 
Join Date: Aug 2003
Location: K.S.A
Posts: 2,250
Thanks: 0
Thanked 0 Times in 0 Posts
there are plenty of RSS parser out there !
one of them is:
http://pear.php.net/package/XML_RSS

unfortunatly, parsing XML in php4 is kinda difficult, but in php5 the new extension SimpleXML makes reading XML files VERY easy ..
__________________
We don't need a reason to help people - Zidane [FF9]
Reply With Quote
  #3  
Old 07-09-04, 06:53 AM
Rapid Dr3am Rapid Dr3am is offline
Community VIP
 
Join Date: Jan 2004
Location: Liverpool, England
Posts: 751
Thanks: 0
Thanked 0 Times in 0 Posts
Just an example is this:

PHP Code:
<?php 
/***************************************************************************
 *                            nationstate.php
 *                            -------------------
 *   begin                : Friday, 23, May, 2003
 *   copyright            : (C) Robin Morrison (People's Republic of Winnipeg)
 *
 *
 ***************************************************************************/
/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/
//check to see if a nation has been specified 
   
if (isset($_REQUEST['nation'])) { 
      
$nation $_REQUEST['nation']; 
      } else { 
      
$nation 'rapid_dr3am'//You can feel free to change this to the default nation of your choice. 
      

// Open and read the XML Output 
   
$fileName "http://www.nationstates.net/cgi-bin/nationdata.cgi/nation=".$nation
   
$size "800"
   
$fp fopen($fileName,'r'); 
   
$text fread($fp,$size); 
   
fclose($fp); 
//Create the Array of feed sections. Just use the ones you need. 
//To see all the avalible sections visit [url]http://www.nationstates.net/cgi-bin/nationdata.cgi/nation=xxx[/url]
   
$section = array(   1   =>   "FULLNAME"
                  
2   =>   "MOTTO"
                  
3   =>   "CATEGORY"
                  
4   =>   "UNSTATUS"
                  
5    =>   "CIVILRIGHTS"
                  
6   =>   "ECONOMY"
                  
7   =>   "POLITICALFREEDOM"
                  
8   =>   "REGION"
                  
9   =>   "POPULATION"
                  
10   =>   "TAX"
                  
11   =>   "ANIMAL"
                  
12   =>   "CURRENCY"
                  
13   =>   "FLAG"
                  
14   =>   "MAJORINDUSTRY"
                  
15   =>   "GOVTPRIORITY"
                  
16   =>   "LASTLOGIN"
                  
17   =>   "LASTACTIVITY"
               ); 
//Now run a foreach that goes through the array we just created. 
   
foreach ($section as $var) { 
      
$open "<".$var.">"
      
$close "</".$var.">"
      
$start strpos($text,$open); 
      
$end strpos($text,$close); 
      
$length $end $start
      
$val substr($text,$start,$length); 
//Make sure that these if() statements reflect the options you used in the $section array 
      
if ($var == 'FULLNAME') { $name str_replace($open''$val); } 
      if (
$var == 'MOTTO') { $motto str_replace($open''$val); } 
      if (
$var == 'CATEGORY') { $category str_replace($open''$val); } 
      if (
$var == 'UNSTATUS') { $unstatus str_replace($open''$val); } 
      if (
$var == 'CIVILRIGHTS') { $civilrights str_replace($open''$val); } 
      if (
$var == 'ECONOMY') { $economy str_replace($open''$val); } 
      if (
$var == 'POLITICALFREEDOM') { $political str_replace($open''$val); } 
      if (
$var == 'REGION') { $region str_replace($open''$val); } 
      if (
$var == 'POPULATION') { 
         
$pop str_replace($open''$val); 
         
//This Just changes the Population Output to Billions if it is more than 1000 
         
if ($pop >= 1000) { 
            
$pop round($pop/10002); 
            
$postfix "Billion"
            } else { 
            
$postfix "Million"
            } 
         } 
      if (
$var == 'TAX') { $tax str_replace($open''$val); } 
      if (
$var == 'ANIMAL') { $animal str_replace($open''$val); } 
      if (
$var == 'CURRENCY') { $currency str_replace($open''$val); } 
      if (
$var == 'FLAG') { $flag str_replace($open''$val); } 
      if (
$var == 'MAJORINDUSTRY') { $industry str_replace($open''$val); } 
      if (
$var == 'GOVTPRIORITY') { $priority str_replace($open''$val); } 
      if (
$var == 'LASTLOGIN') { $lastlogin str_replace($open''$val); } 
      if (
$var == 'LASTACTIVITY') { $lastactivity str_replace($open''$val); } 
      } 
//Check to see if a Message has been set ($msg) 
   
if (isset($msg)) { 
      echo 
"<font color=\"red\" size=\"3\">".$msg."</font><br><br>"
      } 
?> 
<table border="0"> 
   <tr> 
      <td valign="top" align="right"><font color="FFFFFF">FLAG:</font></td> 
     <td align="center"><img src="<? print($flag); ?>" style="border: 0 solid black;"></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Full Name:</font></td> 
      <td><? print($name); ?></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Motto:</font></td> 
      <td><? print($motto); ?></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Category:</font></td> 
      <td><? print($category); ?></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">UN Status:</font></td> 
      <td><? print($unstatus); ?></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Civilrights:</font></td> 
      <td><? print($civilrights); ?></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Economy:</font></td> 
      <td><? print($economy); ?></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Political Freedoms:</font></td> 
      <td><? print($political); ?></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Region:</font></td> 
      <td><? print($region); ?></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Population:</font></td> 
     <td><? print($pop."&nbsp;".$postfix); ?></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Tax:</font></td> 
      <td><? print($tax); ?>%</td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Animal:</font></td> 
      <td><? print($animal); ?></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Currency:</font></td> 
      <td><? print($currency); ?></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Major Industry:</font></td> 
     <td><? print($industry); ?></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Government Priority:</font></td> 
      <td><? print($priority); ?></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Last Login:</font></td> 
      <td><? print($lastlogin); ?></td> 
   </tr><tr> 
      <td align="right"><font color="FFFFFF">Last Active:</font></td> 
      <td><? print($lastactivity); ?></td> 
   </tr> 
</table>
__________________
Placeholder, place signature here.
Reply With Quote
  #4  
Old 07-16-04, 03:38 PM
benruth benruth is offline
Newbie Coder
 
Join Date: Jul 2004
Location: Singapore
Posts: 12
Thanks: 0
Thanked 0 Times in 0 Posts
I was facing the same concern too.

I posted a thread with my solution on this.
http://www.programmingtalk.com/showthread.php?t=11064

Hope you find it useful! :-)
__________________
God bless,
Benjamin Lim
BENRUTH SOFTWARE CONSULTANCY
Web Feed : http://benruth.com/feed.xml
Reply With Quote
Reply

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

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 Off
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Help! With setting up a basic PHP Forum page on the website. A-A PHP 0 05-05-04 09:15 AM
php to write data to 2 databases mulatod PHP 2 01-05-04 04:00 PM
php code not pulling data from DB simone PHP 1 11-22-03 03:08 AM
help plz: format retrieved Mysql data in HTML with PHP paulj000 PHP 2 10-19-03 09:03 PM


All times are GMT -5. The time now is 04:17 AM.
vBulletin® Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2 (Unregistered)