【发布时间】:2014-09-03 13:36:39
【问题描述】:
解决方案
<?php
include("authenticate.php");
$user = $_SESSION['UserName'];
$initialdata = $result = mysql_query("SELECT * FROM ccregisterfeed WHERE username = '$user'");
while($row = mysql_fetch_assoc($initialdata)){
$filename = $row["feedlink"];
// var_dump ($filename);
}
$initdata = mysql_fetch_assoc($initialdata);
$result = mysql_query("SELECT * FROM ccshowcontent JOIN ccaudio ON ccshowcontent.id = ccaudio.id WHERE ccshowcontent.username = '$user' ORDER BY ccshowcontent.id DESC")
or die(mysql_error());
while($row = mysql_fetch_assoc($result)){
$items[] = $row;
}
$rss = createXML($items,$initdata);
//echo "feed updated!";
$filename = ($filename);
file_put_contents($filename,$rss);
header("Location: ccupload.php?message=".urlencode("Show saved and feed updated"));
?>
完整的脚本
<?php
include("authenticate.php");
$user = $_SESSION['UserName'];
$initialdata = $result = mysql_query("SELECT * FROM ccregisterfeed WHERE username = '$user'");
$initdata = mysql_fetch_assoc($initialdata);
$result = mysql_query("SELECT * FROM ccshowcontent JOIN ccaudio ON ccshowcontent.id = ccaudio.id WHERE ccshowcontent.username = '$user' ORDER BY ccshowcontent.id DESC")
or die(mysql_error());
while($row = mysql_fetch_assoc($result)){
$items[] = $row;
}
function createXML($items,$data){
$xml = "<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0' xmlns:atom='http://www.w3.org/2005/Atom'>
<channel>
<atom:link href='".$data['feedlink']."'
rel='self' type='application/rss+xml' />
<title>".$data['feedtitle']."</title>
<link>".$data['websitelink']."</link>
<category domain=''>".$data['category']."</category>
<copyright>".$data['copyright']."</copyright>
<pubDate>".date("D, d M Y H:i:s O", strtotime($data['pubdate']))."</pubDate>
<language>en-us</language>
<description>".$data['feeddescription']."</description>
<image>
<title>".$data['feedtitle']."</title>
<link>".$data['websitelink']."</link>
<url>".$data['imagelink']."</url>
<description>".$data['imagetitle']."</description>
</image>";
$audiodir = "http://thetradingcardgenerator.com/MP3/";
foreach($items as $key => $item){
$path = $audiodir.$item['path'];
$pdate = strtotime($item['pubdate']);
$date = date("D, d M Y H:i:s O", $pdate);
$xml .="
<item>
<title>".$item['title']."</title>
<link>".$path."</link>
<guid>".$path."</guid>
<pubDate>".$date."</pubDate>
<description><![CDATA[".$item['description']."]]></description>
</item>";
}
$xml .="
</channel>
</rss>";
return $xml;
}
$rss = createXML($items,$initdata);
//echo "feed updated!";
$filename = '$feedlink' . ".xml";
file_put_contents($filename,$rss);
header("Location: ccupload.php?message=".urlencode("Show saved and feed updated"));
?>
第一次进入
我编写了一个脚本来从表格中输入的数据生成 rss 提要。我想从表中的一个字段生成文件名,我创建如下:
$path = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
$feedtitle = str_replace(" ", "", $feedtitle);
$feedtitle = str_replace("_", "", $feedtitle);
$feedtitle = str_replace("-", "", $feedtitle);
$feedtitle = strtolower($feedtitle);
$path = substr($path, 0, strrpos($path, "/"));
$feedlink = "$feedtitle" . '.xml';
因此,如果 $feedtitle 是 Last Nights Television,那么 $feedlink 的值将是
lastnightstelevision.xml
我已经通过指定文件名测试了脚本,它可以工作,从表中提取数据并创建提要。这是脚本的最后一部分:
$rss = createXML($items,$initdata);
$filename = 'myfeed.xml';
file_put_contents($filename,$rss);
header("Location: uploadcontent.php?message=".urlencode("Show saved and feed updated"));
?>
这会在我的服务器上创建一个提要名称 myfeed.xml。
但是,我希望提要的文件名是 $feedlink 的值。我知道这可能是一些基本的东西,但我不知道该怎么做。
我试过了:
$filename = ".$feedlink";
$filename = ".$feedlink[feedlink]";
还有许多其他组合。
【问题讨论】: