// Create full-text feed
////////////////////////////////////////////
$output = new FeedWriter();
$output->setTitle(strip_tags($feed->get_title()));
$output->setDescription(strip_tags($feed->get_description()));
$output->setXsl('css/feed.xsl');
// Chrome uses this, most browsers ignore it
if ($valid_key && isset($_GET['pubsub'])) {
    // used only on fivefilters.org at the moment
    $output->addHub('http://fivefilters.superfeedr.com/');
    $output->addHub('http://pubsubhubbub.appspot.com/');
    $output->setSelf('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
}
$output->setLink($feed->get_link());
// Google Reader uses this for pulling in favicons
if ($img_url = $feed->get_image_url()) {
    $output->setImage($feed->get_title(), $feed->get_link(), $img_url);
}
////////////////////////////////////////////
// Loop through feed items
////////////////////////////////////////////
$items = $feed->get_items(0, $max);
// Request all feed items in parallel (if supported)
$urls_sanitized = array();
$urls = array();
foreach ($items as $key => $item) {
    $permalink = htmlspecialchars_decode($item->get_permalink());
    // Colons in URL path segments get encoded by SimplePie, yet some sites expect them unencoded
    $permalink = str_replace('%3A', ':', $permalink);
    // simplepie already sanitizes URLs so let's not do it again here.
    if ($permalink && !is_cached($permalink)) {