我想创建一个脚本,从txt文件中获取行,并为每一行创建新的rss feed项。 Txt文件将经常使用新的数据行进行更新,因此如果有新行,脚本应每小时检查一次,如果有,则需要创建新的Feed项。
我发现了这个txt2rss脚本,但我并不是那么精通,而且关于如何修改和使用它的文档很少。 http://users.ninthfloor.org/~ashawley/txt2rss/txt2rss.php.html
有人能指出我正确的方向吗? PHP与cronjob?或者也许有一种更简单的方法?
欣赏它
P.S :.我也找到了这个脚本。
public static function create($info, $items, $format = 'rss2', $encoding = 'UTF-8')
{
$info += array('title' => 'Generated Feed', 'link' => '', 'generator' => 'KohanaPHP');
$feed = '<?xml version="1.0" encoding="'.$encoding.'"?><rss version="2.0"><channel></channel></rss>';
$feed = simplexml_load_string($feed);
foreach ($info as $name => $value)
{
if ($name === 'image')
{
// Create an image element
$image = $feed->channel->addChild('image');
if ( ! isset($value['link'], $value['url'], $value['title']))
{
throw new Kohana_Exception('Feed images require a link, url, and title');
}
if (strpos($value['link'], '://') === FALSE)
{
// Convert URIs to URLs
$value['link'] = URL::site($value['link'], 'http');
}
if (strpos($value['url'], '://') === FALSE)
{
// Convert URIs to URLs
$value['url'] = URL::site($value['url'], 'http');
}
// Create the image elements
$image->addChild('link', $value['link']);
$image->addChild('url', $value['url']);
$image->addChild('title', $value['title']);
}
else
{
if (($name === 'pubDate' OR $name === 'lastBuildDate') AND (is_int($value) OR ctype_digit($value)))
{
// Convert timestamps to RFC 822 formatted dates
$value = date('r', $value);
}
elseif (($name === 'link' OR $name === 'docs') AND strpos($value, '://') === FALSE)
{
// Convert URIs to URLs
$value = URL::site($value, 'http');
}
// Add the info to the channel
$feed->channel->addChild($name, $value);
}
}
foreach ($items as $item)
{
// Add the item to the channel
$row = $feed->channel->addChild('item');
foreach ($item as $name => $value)
{
if ($name === 'pubDate' AND (is_int($value) OR ctype_digit($value)))
{
// Convert timestamps to RFC 822 formatted dates
$value = date('r', $value);
}
elseif (($name === 'link' OR $name === 'guid') AND strpos($value, '://') === FALSE)
{
// Convert URIs to URLs
$value = URL::site($value, 'http');
}
// Add the info to the row
$row->addChild($name, $value);
}
}
if (function_exists('dom_import_simplexml'))
{
// Convert the feed object to a DOM object
$feed = dom_import_simplexml($feed)->ownerDocument;
// DOM generates more readable XML
$feed->formatOutput = TRUE;
// Export the document as XML
$feed = $feed->saveXML();
}
else
{
// Export the document as XML
$feed = $feed->asXML();
}
return $feed;
}
答案 0 :(得分:0)
在您的crontab文件中:
59 * * * * /path/to/php -f /path/to/my/text/to/rss/file.php
如果您希望每次运行时都收到通知,请执行以下操作:
59 * * * * /path/to/php -f /path/to/my/text/to/rss/file.php 2>&1 | mailx -s "Ran Text to RSS Job" youremail@whatever.com
当作业完成后,如果在执行过程中出现错误,则会通过电子邮件向您发送电子邮件,否则邮件将为空白。
这将在每小时的第59分钟运行。