0

当前代码为我提供了“li”的输出,我想将输出调整为有效的 XML,以便我可以从该列表创建 RSS 提要。有什么建议吗?

到目前为止,这是我的代码:

<?php
session_start();
mb_internal_encoding( 'UTF-8' );
require_once('../config.php');
require_once('../dbconnect.php');
echo ' <div class="tagsz clearfix"> ';
echo "<ul id='mytags_ara'>";
echo "<h2 class='title'>English Trends</h2>";
echo ' <div class="tagsz clearfix"> ';
 echo "<ul id='mytags_en'>";
 $query = "SELECT hashtag, sum(count) as total FROM `trending_topics` WHERE lang=0   and  hashtag != '' and date >= date_sub(left(now(), 10), interval 1 day) group by hashtag      order by total desc";
  $res = mysql_query($query);
 $index = 0;
 $hashtags = null;
 while($row = mysql_fetch_assoc($res) ) {
 $hashtag = $row['hashtag'];
 if( strtolower($hashtag) != 'newnew' && strtolower($hashtag) != 'new' && strtolower  ($hashtag) != 'more' )  {
 echo "<li><a class='size".$index."'".$hashtag."'>#".$hashtag."</a></li>";
 $index++;
 }
 if($index==6) break;}
 echo "</ul>";
 echo "</div>";
 ?>
4

2 回答 2

1

这可能会或可能不会帮助您,但这是我用来生成 Atom 提要的代码:

<?php
    define('DS', DIRECTORY_SEPARATOR);
    define('ROOT', dirname(dirname(__file__)));
    define('HOST', 'http://' . $_SERVER['HTTP_HOST'] . dirname( $_SERVER['PHP_SELF'] ) );

    function publishAtom() {
            /*
            My data entities had these fields:
            - title
            - category
            - permalink (a URL-safe version of the title)
            - timestamp
            - lastupdated
            - abstract

            You'll need to adjust the code below to match your entities.
            */

            # get the data
            $rows = //<<insert your data-gathering-code here>> -> needs to be an array of your entities;


            $feed_title = "Atom Feed";
            $feed_subtitle = "Get all our newest entries when you subscribe to the feed.";
            $site_domain = "http://yourdomain.com";
            $author_name = "Your Name";
            $author_email = "yourname@yourdomain.com";

            $feed = '<?xml version="1.0" encoding="utf-8"?>
            <feed xmlns="http://www.w3.org/2005/Atom">
                <title>' . $feed_title . '</title>
                <subtitle>' . $feed_subtitle . '</subtitle>
                <link href="' . $site_domain . '/atom.xml" rel="self" />
                <link href="' . $site_domain . '" />
                <updated>' . date('c') . '</updated>
                <author>
                    <name>' . $author_name . '</name>
                    <email>' . $author_email . '</email>
                </author>
                <id>tag:' . str_replace( "http://", '', $site_domain ) . ',2012:feed</id>';

            # Get the entries


            foreach( $rows as $row ) {  
                $feed .= '<entry>
                    <title>' . $row->title . '</title>
                    <link href="' . strtolower( $site_domain . DS . $row->category . DS . $row->permalink ) . '" />';

                    $date= date( 'Y-m-d', strtotime( $row->timestamp ) );
                    $uuid = str_replace( "http://", '', $site_domain ) . ',' . $date . ':' . $row->permalink;

                $feed .= '<id>tag:' . $uuid . '</id>';

                if( isset( $row->lastupdated ) ) {
                    $feed .= '<updated>' . date( 'c', strtotime( $row->lastupdated ) ) . '</updated>';
                }
                else {
                    $feed .= '<updated>' . date( 'c', strtotime( $row->timestamp ) ) . '</updated>';
                }

                $feed .= '<summary>Entry for ' . $date . '</summary>
                    <content type="xhtml" xml:lang="en">
                        <div xmlns="http://www.w3.org/1999/xhtml">' . $row->abstract . '</div>
                    </content>
                </entry>';
            }

            $feed .= "</feed>";

            $path = ROOT . DS . "atom.xml";
            $filenum=fopen( $path, "w" );
            fwrite( $filenum, $feed );
            fclose( $filenum );
        }
    }

    # call this function wherever is relevent for you
    publishAtom();
?>

它应该让您了解如何手动执行此操作。HTH。

于 2012-07-15T08:59:35.873 回答
0

你试过 SimpleXML 吗?SimpleXML 是一个很棒的包,它使解析和创建 XML 样式文档变得非常容易。

对于您的具体情况,试试这个:http ://snipplr.com/view/61231/

编辑: 这是 SimpleXML 的完整文档:http: //in.php.net/simplexml

于 2012-07-15T09:20:31.257 回答