英文:
PHP. How to remove a %0D character from my code
问题
我正在尝试通过每日摘要的方式向自己发送一封包含一些RSS源的电子邮件。我收到了以下错误消息,由于多余的%0D字符导致的。您能建议我在代码中需要进行哪些更改以删除它吗?
非常感谢
错误信息为:simplexml_load_file(https://hdblog.it/feed%0D):无法打开流:无效的重定向URL!
英文:
I am trying to send me an email with a daily digest of some RSS feeds. I receive the following error, caused by an extra %0D character. Could you suggest me what I need to correct in the code to remove it?
Thanks a lot
The error is: simplexml_load_file(https://hdblog.it/feed%0D): failed to open stream: Invalid redirect URL!
// Set the timezone to Rome, Italy
date_default_timezone_set('Europe/Rome');
// Set the cutoff time to 24 hours ago
$cutoff_time = time() - (24 * 60 * 60);
// Set the subject of the email
$subject = "Digest RSS " . date("d/m/Y");
// Initialize the message
$message = "<html><body>";
$message .= "<h1>RSS Digest</h1>";
$message .= "<p>Ecco gli ultimi aggiornamenti dai tuoi feed RSS:</p>";
// Read the list of RSS feeds from a file
$rss_feeds_file = file_get_contents('rss_feeds.txt');
$rss_feeds = explode("\n", $rss_feeds_file);
// Loop through the list of RSS feeds
foreach ($rss_feeds as $rss_feed) {
// Load the RSS feed
$rss = simplexml_load_file($rss_feed);
if ($rss) {
// Initialize a flag to keep track of whether there are feed items to include in the email
$items_included = false;
// Add the feed title to the message
$message .= "<h2>" . $rss->channel->title . "</h2>";
// Add a list of items to the message
$message .= "<ul>";
// Loop through the feed items
foreach($rss->channel->item as $item) {
// Check if the item was published within the last 24 hours
$item_time = strtotime($item->pubDate);
if ($item_time > $cutoff_time) {
// If it was, add the feed item to the email
$message .= "<li><a href='" . $item->link . "'>" . $item->title . "</a><br />";
$message .= strip_tags($item->description) . "</li>";
$items_included = true;
}
}
$message .= "</ul>";
}
}
$message .= "</body></html>";
I am trying to send me an email with a daily digest of some RSS feeds. I receive the following error, caused by an extra %0D character. Could you suggest me what I need to correct in the code to remove it?
Thanks a lot
The error is: simplexml_load_file(https://hdblog.it/feed%0D): failed to open stream: Invalid redirect URL!
答案1
得分: 1
你现在是否在运行Windows?
%0D是回车符。您正在使用\n
(换行符)拆分输入文件,但也许您的输入文件具有\r\n
行终止符。尝试改为使用'\r\n'
进行拆分。
如果您的输入文件是在与您运行代码的平台上创建的,您可以尝试使用php常量PHP_EOL
。
英文:
Are you running on Windows?
%0D is the carriage return character. You are exploding the input file on \n
(line feed), but perhaps your input file has \r\n
line terminators. Try exploding on '\r\n'
instead.
If your input file has been created on the same platform as you are running your code you could try using the php constant PHP_EOL
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论