【问题标题】:How to link RSS feed created in php mysql如何链接在 php mysql 中创建的 RSS 提要
【发布时间】:2013-06-04 08:26:29
【问题描述】:

我在连接到 MySQL 的 php 中创建了一个 RSS 提要 php 文件。根据 ID,如果您单击 RSS 链接,它将为每个人生成一个 RSS 提要。但我想知道如何将我的 RSS 提要 php 文件链接到 RSS 链接。这是我的 PHP 文件代码:

<html>
<head>
<title>New Feed</title>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
</head>
<body>
<?php
Function NewFeed($DingoID,$TITLE,$NOTE,$DATE,$LINK){

    $SQLString="SELECT Dingoid FROM rahul_tbl_users";
    switch ($DingoID){
        case "AllUsers":
            break;
        case "AdminUsers":
            $SQLString.=" WHERE Usertype='Admin'";
            break;
        default:
            $SQLString.=" WHERE Dingoid='".$DingoID."'";
            break;
    }
    $Ergebnis=mysql_query ($SQLString);
    $Datensatz=mysql_fetch_array($Ergebnis);
    if ($Datensatz){
        while ($Datensatz){
            $DingoID=$Datensatz["Dingoid"];

            $SQLString="INSERT INTO TblNotifications (DingoID,Title,Note,Date,Link) VALUES('".$DingoID."','".$TITLE."','".$NOTE."','".$DATE."','".$LINK."')";
            $Ergebnis3=mysql_query ($SQLString) or die("IDD-Feeds: Feed nicht eingetragen");
            //echo $SQLString;
            //echo $Ergebnis3;
            //echo ("Hier sind wir in der Function 'NewFeed'");
            $xml = new DOMDocument('1.0', 'UTF-8');
            $xml->formatOutput = true;
            //echo "Vor Create Element";
            $roo = $xml->createElement('rss');
            // "Nach Create Element";
            $roo->setAttribute('version', '2.0');
            $xml->appendChild($roo);

            $cha = $xml->createElement('channel');
            $roo->appendChild($cha); 

            $hea = $xml->createElement('title',
                utf8_encode('IDD-RSS'));
            $cha->appendChild($hea);

            $hea = $xml->createElement('description',
                utf8_encode('IDD Request Feeds'));
            $cha->appendChild($hea);

            $hea = $xml->createElement('language',
                utf8_encode('en'));
            $cha->appendChild($hea);

            $hea = $xml->createElement('link',
                htmlentities('http://intranet.siemens-enterprise.com/sitecore/content/Home/Intranet/organization/sales/global-sales-operations/global-bid-management/international-cross-border-group/international-deal-desk'));
            $cha->appendChild($hea);

            $hea = $xml->createElement('lastBuildDate',
                utf8_encode(date("D, j M Y H:i:s ").'CET'));
            $cha->appendChild($hea);


            $SQLString2="SELECT * FROM TblNotifications WHERE DingoID='".$DingoID."' ORDER BY Date";
            //echo $SQLString;
            $Ergebnis2=mysql_query ($SQLString2) or die("IDD-Feeds: Keine Daten aus dem Notification-File");
            $Datensatz2=mysql_fetch_array($Ergebnis2);
            if ($Datensatz2){
                while ($Datensatz2){
                    $itm = $xml->createElement('item');
                    $cha->appendChild($itm);
                    $dat = $xml->createElement('title',utf8_encode($Datensatz2["Title"]));
                    $itm->appendChild($dat);
                    $dat = $xml->createElement('description',utf8_encode($Datensatz2["Note"]));
                    $itm->appendChild($dat);   
                    $dat = $xml->createElement('link',htmlentities($Datensatz2["Link"]));
                    $itm->appendChild($dat);
                    $dat = $xml->createElement('pubDate',utf8_encode($Datensatz2["Date"]));
                    $itm->appendChild($dat);
                    $dat = $xml->createElement('guid',utf8_encode($Datensatz2["FeedID"]));
                    $itm->appendChild($dat);
                    $Datensatz2=mysql_fetch_array($Ergebnis2);
                }
            }
            //echo "Jetzt wird dann das xml-File geschrieben mit: ".$DingoID;
            $xml->save('../feeds/'.$DingoID.'.rss');
            $Datensatz=mysql_fetch_array($Ergebnis);
        }
    }
}
?>
</body>

</html>

我想将此 php 代码链接到 RSS 链接,以便 RSS 提要工作。以下是我的 RSS 提要链接:

<?php
if(!isset($_SESSION))
{

session_start();
$dingo=$_SESSION['dingo'];

}
?>

<ul>
All feeds are populated even if the Email has been deactivated.Your feeds are:
<li>
 <label for="g_feed_browser"><a style="color:black; text-decoration:none" href="http://rss.groups.yahoo.com/group/rss-board/<?php echo $dingo; ?>"
 target="_blank"><img src="rss1.gif" width="17" height="17" border="0" >Subscribe to your personal/group HTTP feed via browser: </a></label>
</li> <br>
<li>
 <label for="g_feed_outlook"><a style="color:black; text-decoration:none" href="feed://rss.groups.yahoo.com/group/rss-board/rss"
 target="_blank"><img src="rss1.gif" width="17" height="17" border="0" >Subscribe to your personal/group feed using Outlook : </a></label>
</li><br>
IDD General rss feeds are as follows:<br>
<li>
 <label for="idd_feed_browser"><a style="color:black; text-decoration:none" href="http://feeds.rssboard.org/rssboard"
 target="_blank"><img src="rss1.gif" width="17" height="17" border="0" >Subscribe IDD HTTP feed via browser: </a></label>
</li><br>
<li>
 <label for="idd_feed_outlook"><a style="color:black; text-decoration:none" href="http://feeds.rssboard.org/rssboard"
 target="_blank"><img src="rss1.gif" width="17" height="17" border="0" >Subscribe to IDD feed using Outlook: </a></label>
</li>
</ul>

【问题讨论】:

    标签: php mysql xml rss


    【解决方案1】:

    第 1 步:

    您必须创建一个 php 文件,比如说 generate.php,它接受一个 GET 参数 feedId

    // grab feed id from $_GET
    if(!isset($_GET['feedId'])) {
        header('HTTP/1.1 400 Bad Request');
        echo 'You have been missing the feed id';
        die();
    }
    $feedId = $_GET['feedId'];
    
    // now generate the *feed* depending on feed id
    switch ($feedId) {
        case 'feed1' :
            header('Content-Type: application/rss');
            // generate feed here
            echo 'feed1';
            break;
    
        case 'feed2' :
            header('Content-Type: application/rss');
            // generate feed here
            echo 'feed1';
    
        default :
            header('HTTP/1.1 404 Not found');
            echo 'The document you were searching for was not found';
            die();
    }
    

    您可以使用如下链接:

    <a href="http://server/generate.php?feedId=feed1">feed 1</a>
    <a href="http://server/generate.php?feedId=feed2">feed 2</a>
    

    在第二个可选步骤中,您可以在 .htaccess 文件中使用重写规则,如下所示:

    RewriteEngine On   
    RewriteRule ^feeds/(.*)\.rss\/?$ generate.php?feedId=$1
    

    现在您的链接可能如下所示:

    <a href="http://server/feeds/feed1.rss">feed 1</a>
    <a href="http://server/feeds/feed2.rss">feed 2</a>
    

    【讨论】:

    • 不,我只是想知道如何将我的 RSS php 文件链接到这个 RSS 链接
    • 你能再解释一下吗?我不明白你
    • 实际上,当我运行这个程序时,我已经创建了这个 RSS php 文件,它运行良好。但是现在对于用户,我已经创建了 href 链接,并且当用户点击链接时,应该生成 RSS 提要。所以我只是想知道如何将我的 RSS PHP 文件附加到此链接。以便用户现在知道他们想要生成哪些 RSS 提要。
    • 这只是我在这里缺少的一小行代码,我只想将这些文件放在一起以生成来自该链接的 RSS 提要
    • 你需要一个像generate.php这样的脚本。它应该接受像feedId这样的参数。比它可以像http://yourserver.com/generate.php?feedId=someId这样调用。如果这可行,你应该添加一些重写规则以获得干净的网址
    猜你喜欢
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多