本文整理汇总了PHP中SimplePie::get_author方法的典型用法代码示例。如果您正苦于以下问题:PHP SimplePie::get_author方法的具体用法?PHP SimplePie::get_author怎么用?PHP SimplePie::get_author使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SimplePie
的用法示例。
在下文中一共展示了SimplePie::get_author方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: SimplePie
function rss_to_activity_streams($data)
{
//
$feed = new SimplePie();
$feed->set_raw_data($data);
//
unset($data);
//
$feed->set_stupidly_fast(true);
$feed->init();
$feed->handle_content_type();
//
$id = md5($url);
$title = 'submit';
$link = 'http://' . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
$activityStream = new ActivityStreamsDoc($id, $title, $link);
//
foreach ($feed->get_items() as $item) {
$author = $item->get_author();
if (!$author) {
$author = $feed->get_author();
}
//
$activityStream->entry($item->get_id(), date("r", $item->get_date()), $author ? $author->get_name() : null, $author ? $author->get_link() : null, $item->get_title(), $item->get_permalink(), $item->get_description());
}
return $activityStream;
}
示例2: add
/**
*/
public function add()
{
$feed_user_title = $this->input->post('feed_title', TRUE);
$feed_url = $this->input->post('feed_url');
$usercat = $this->input->post('category');
$feed_filter_type = $this->input->post('feed_type');
$_icon = $this->input->post('favicon_icon');
$favicon_icon = $_icon;
if (!isset($feed_url) || $feed_url == '') {
$this->stencil->title('Feeds');
$this->stencil->layout('admin_layout');
$this->stencil->css(array('admin_css/bootstrap.min', 'admin_css/bootstrap-responsive.min', 'admin_css/styles'));
$this->stencil->js(array('vendors/datatables/js/jquery.dataTables.min.js', 'DT_bootstrap'));
$this->stencil->paint('admin/feeds/add');
} else {
$check = $this->validateUrl($feed_url);
if ($check == FALSE) {
echo json_encode(array('result' => 'fail', 'msg' => '<div class="alert alert-error"><button type="button" class="close" data-dismiss="alert">×</button>Url Already exists in the database!</div>'));
die;
}
$feed = new SimplePie();
$feed->set_feed_url($feed_url);
$feed->set_cache_location(APPPATH . '/cache');
$feed->set_output_encoding('ISO-8859-1');
$feed->init();
$feed->handle_content_type();
// Language
$lang = $feed->get_language();
$language = isset($lang) ? $lang : 'en-us';
if ($feed->get_type() & SIMPLEPIE_TYPE_NONE) {
$feed_type = 'Unknown';
} elseif ($feed->get_type() & SIMPLEPIE_TYPE_RSS_ALL) {
$feed_type = 'RSS';
} elseif ($feed->get_type() & SIMPLEPIE_TYPE_ATOM_ALL) {
$feed_type = 'Atom';
} elseif ($feed->get_type() & SIMPLEPIE_TYPE_ALL) {
$feed_type = 'Supported';
}
// Author
if ($author = $feed->get_author()) {
$feedAuthor = $author->get_name();
} else {
$feedAuthor = '';
}
if ($feed->error()) {
echo json_encode(array('result' => 'fail', 'msg' => '<div class="alert alert-error"><button type="button" class="close" data-dismiss="alert">×</button>Found error while making request</div>'));
} else {
// $return = $this->feed_model->addFeeds($feed->get_items(0, 500));
$feed_image_link = $feed->get_image_link();
$feed_image_url = $feed->get_image_url();
$feed_image_title = $feed->get_image_title();
$return = $this->feedModel->addFeeds($feed->get_items(0, 500), $feed_image_link, $feed_image_url, $feed_image_title, $usercat, $feed_url, $language, $feed_type, $feedAuthor, $feed_filter_type, $feed_user_title, $favicon_icon);
if ($return) {
echo json_encode(array('result' => 'success', 'msg' => '<div class="alert alert-success"><button type="button" class="close" data-dismiss="alert">×</button>Blog is added successfully</div>'));
} else {
echo json_encode(array('result' => 'fail', 'msg' => '<div class="alert alert-error"><button type="button" class="close" data-dismiss="alert">×</button>Found error while making request</div>'));
}
}
}
}
示例3: setCron
public function setCron()
{
$getUnique = $this->getAllFeedUrls();
if (!empty($getUnique)) {
foreach ($getUnique as $feedTableData) {
$feed_user_title = $feedTableData->feed_user_title;
$feed_url = $feedTableData->feed_admin_url;
$usercat = $feedTableData->feed_user_category;
$feed_filter_type = $feedTableData->feed_filter_type;
$favicon_icon = $feedTableData->feed_favicon;
$feed = new SimplePie();
$feed->set_feed_url($feed_url);
$feed->set_cache_location(APPPATH . '/cache');
$feed->set_output_encoding('ISO-8859-1');
$feed->init();
$feed->handle_content_type();
// Language
$lang = $feed->get_language();
$language = isset($lang) ? $lang : 'en-us';
if ($feed->get_type() & SIMPLEPIE_TYPE_NONE) {
$feed_type = 'Unknown';
} elseif ($feed->get_type() & SIMPLEPIE_TYPE_RSS_ALL) {
$feed_type = 'RSS';
} elseif ($feed->get_type() & SIMPLEPIE_TYPE_ATOM_ALL) {
$feed_type = 'Atom';
} elseif ($feed->get_type() & SIMPLEPIE_TYPE_ALL) {
$feed_type = 'Supported';
}
// Author
if ($author = $feed->get_author()) {
$feedAuthor = $author->get_name();
} else {
$feedAuthor = '';
}
if ($feed->error()) {
die;
} else {
$feed_image_link = $feed->get_image_link();
$feed_image_url = $feed->get_image_url();
$feed_image_title = $feed->get_image_title();
$this->addFeeds($feed->get_items(0, 500), $feed_image_link, $feed_image_url, $feed_image_title, $usercat, $feed_url, $language, $feed_type, $feedAuthor, $feed_filter_type, $feed_user_title, $favicon_icon);
}
}
}
}
示例4: discover_by_url
function discover_by_url($url, $arr = null)
{
require_once 'library/HTML5/Parser.php';
$x = scrape_feed($url);
if (!$x) {
if (!$arr) {
return false;
}
$network = $arr['network'] ? $arr['network'] : 'unknown';
$name = $arr['name'] ? $arr['name'] : 'unknown';
$photo = $arr['photo'] ? $arr['photo'] : '';
$addr = $arr['addr'] ? $arr['addr'] : '';
$guid = $url;
}
$profile = $url;
logger('scrape_feed results: ' . print_r($x, true));
if ($x['feed_atom']) {
$guid = $x['feed_atom'];
}
if ($x['feed_rss']) {
$guid = $x['feed_rss'];
}
if (!$guid) {
return false;
}
// try and discover stuff from the feeed
require_once 'library/simplepie/simplepie.inc';
$feed = new SimplePie();
$level = 0;
$x = z_fetch_url($guid, false, $level, array('novalidate' => true));
if (!$x['success']) {
logger('probe_url: feed fetch failed for ' . $poll);
return false;
}
$xml = $x['body'];
logger('probe_url: fetch feed: ' . $guid . ' returns: ' . $xml, LOGGER_DATA);
logger('probe_url: scrape_feed: headers: ' . $x['header'], LOGGER_DATA);
// Don't try and parse an empty string
$feed->set_raw_data($xml ? $xml : '<?xml version="1.0" encoding="utf-8" ?><xml></xml>');
$feed->init();
if ($feed->error()) {
logger('probe_url: scrape_feed: Error parsing XML: ' . $feed->error());
}
$name = unxmlify(trim($feed->get_title()));
$photo = $feed->get_image_url();
$author = $feed->get_author();
if ($author) {
if (!$name) {
$name = unxmlify(trim($author->get_name()));
}
if (!$name) {
$name = trim(unxmlify($author->get_email()));
if (strpos($name, '@') !== false) {
$name = substr($name, 0, strpos($name, '@'));
}
}
if (!$profile && $author->get_link()) {
$profile = trim(unxmlify($author->get_link()));
}
if (!$photo) {
$rawtags = $feed->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author');
if ($rawtags) {
$elems = $rawtags[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10];
if (x($elems, 'link') && $elems['link'][0]['attribs']['']['rel'] === 'photo') {
$photo = $elems['link'][0]['attribs']['']['href'];
}
}
}
} else {
$item = $feed->get_item(0);
if ($item) {
$author = $item->get_author();
if ($author) {
if (!$name) {
$name = trim(unxmlify($author->get_name()));
if (!$name) {
$name = trim(unxmlify($author->get_email()));
}
if (strpos($name, '@') !== false) {
$name = substr($name, 0, strpos($name, '@'));
}
}
if (!$profile && $author->get_link()) {
$profile = trim(unxmlify($author->get_link()));
}
}
if (!$photo) {
$rawmedia = $item->get_item_tags('http://search.yahoo.com/mrss/', 'thumbnail');
if ($rawmedia && $rawmedia[0]['attribs']['']['url']) {
$photo = unxmlify($rawmedia[0]['attribs']['']['url']);
}
}
if (!$photo) {
$rawtags = $item->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author');
if ($rawtags) {
$elems = $rawtags[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10];
if (x($elems, 'link') && $elems['link'][0]['attribs']['']['rel'] === 'photo') {
$photo = $elems['link'][0]['attribs']['']['href'];
}
}
//.........这里部分代码省略.........
示例5: probe_url
//.........这里部分代码省略.........
}
if (!isset($vcard) || !x($vcard, 'fn') || !$profile) {
$check_feed = true;
}
if ($at_addr && !count($links)) {
$check_feed = false;
}
if ($check_feed) {
$feedret = scrape_feed($poll ? $poll : $url);
logger('probe_url: scrape_feed ' . ($poll ? $poll : $url) . ' returns: ' . print_r($feedret, true), LOGGER_DATA);
if (count($feedret) && ($feedret['feed_atom'] || $feedret['feed_rss'])) {
$poll = x($feedret, 'feed_atom') ? unamp($feedret['feed_atom']) : unamp($feedret['feed_rss']);
if (!x($vcard)) {
$vcard = array();
}
}
if (x($feedret, 'photo') && !x($vcard, 'photo')) {
$vcard['photo'] = $feedret['photo'];
}
require_once 'library/simplepie/simplepie.inc';
$feed = new SimplePie();
$xml = fetch_url($poll);
logger('probe_url: fetch feed: ' . $poll . ' returns: ' . $xml, LOGGER_DATA);
$a = get_app();
logger('probe_url: scrape_feed: headers: ' . $a->get_curl_headers(), LOGGER_DATA);
$feed->set_raw_data($xml);
$feed->init();
if ($feed->error()) {
logger('probe_url: scrape_feed: Error parsing XML: ' . $feed->error());
}
if (!x($vcard, 'photo')) {
$vcard['photo'] = $feed->get_image_url();
}
$author = $feed->get_author();
if ($author) {
$vcard['fn'] = unxmlify(trim($author->get_name()));
if (!$vcard['fn']) {
$vcard['fn'] = trim(unxmlify($author->get_email()));
}
if (strpos($vcard['fn'], '@') !== false) {
$vcard['fn'] = substr($vcard['fn'], 0, strpos($vcard['fn'], '@'));
}
$email = unxmlify($author->get_email());
if (!$profile && $author->get_link()) {
$profile = trim(unxmlify($author->get_link()));
}
if (!$vcard['photo']) {
$rawtags = $feed->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author');
if ($rawtags) {
$elems = $rawtags[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10];
if (x($elems, 'link') && $elems['link'][0]['attribs']['']['rel'] === 'photo') {
$vcard['photo'] = $elems['link'][0]['attribs']['']['href'];
}
}
}
} else {
$item = $feed->get_item(0);
if ($item) {
$author = $item->get_author();
if ($author) {
$vcard['fn'] = trim(unxmlify($author->get_name()));
if (!$vcard['fn']) {
$vcard['fn'] = trim(unxmlify($author->get_email()));
}
if (strpos($vcard['fn'], '@') !== false) {
$vcard['fn'] = substr($vcard['fn'], 0, strpos($vcard['fn'], '@'));
示例6: feed_meta
function feed_meta($xml)
{
require_once 'library/simplepie/simplepie.inc';
$ret = array();
if (!strlen($xml)) {
logger('empty input');
return $ret;
}
$feed = new SimplePie();
$feed->set_raw_data($xml);
$feed->init();
if ($feed->error()) {
logger('Error parsing XML: ' . $feed->error());
return $ret;
}
$ret['hubs'] = $feed->get_links('hub');
// logger('consume_feed: hubs: ' . print_r($hubs,true), LOGGER_DATA);
$author = array();
$found_author = $feed->get_author();
if ($found_author) {
$author['author_name'] = unxmlify($found_author->get_name());
$author['author_link'] = unxmlify($found_author->get_link());
$rawauthor = $feed->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author');
logger('rawauthor: ' . print_r($rawauthor, true));
if ($rawauthor) {
if ($rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link']) {
$base = $rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['link'];
foreach ($base as $link) {
if (!x($author, 'author_photo') || !$author['author_photo']) {
if ($link['attribs']['']['rel'] === 'photo' || $link['attribs']['']['rel'] === 'avatar') {
$author['author_photo'] = unxmlify($link['attribs']['']['href']);
break;
}
}
}
}
if ($rawauthor[0]['child'][NAMESPACE_POCO]['displayName'][0]['data']) {
$author['full_name'] = unxmlify($rawauthor[0]['child'][NAMESPACE_POCO]['displayName'][0]['data']);
}
if ($rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']) {
$author['author_uri'] = unxmlify($rawauthor[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']);
}
}
}
if (substr($author['author_link'], -1, 1) == '/') {
$author['author_link'] = substr($author['author_link'], 0, -1);
}
$ret['author'] = $author;
return $ret;
}
示例7: probe_url
//.........这里部分代码省略.........
$check_feed = false;
}
if ($connectornetworks) {
$check_feed = false;
}
if ($check_feed) {
$feedret = scrape_feed($poll ? $poll : $url);
logger('probe_url: scrape_feed ' . ($poll ? $poll : $url) . ' returns: ' . print_r($feedret, true), LOGGER_DATA);
if (count($feedret) && ($feedret['feed_atom'] || $feedret['feed_rss'])) {
$poll = x($feedret, 'feed_atom') ? unamp($feedret['feed_atom']) : unamp($feedret['feed_rss']);
if (!x($vcard)) {
$vcard = array();
}
}
if (x($feedret, 'photo') && !x($vcard, 'photo')) {
$vcard['photo'] = $feedret['photo'];
}
require_once 'library/simplepie/simplepie.inc';
$feed = new SimplePie();
$xml = fetch_url($poll);
logger('probe_url: fetch feed: ' . $poll . ' returns: ' . $xml, LOGGER_DATA);
$a = get_app();
logger('probe_url: scrape_feed: headers: ' . $a->get_curl_headers(), LOGGER_DATA);
// Don't try and parse an empty string
$feed->set_raw_data($xml ? $xml : '<?xml version="1.0" encoding="utf-8" ?><xml></xml>');
$feed->init();
if ($feed->error()) {
logger('probe_url: scrape_feed: Error parsing XML: ' . $feed->error());
$network = NETWORK_PHANTOM;
}
if (!x($vcard, 'photo')) {
$vcard['photo'] = $feed->get_image_url();
}
$author = $feed->get_author();
if ($author) {
$vcard['fn'] = unxmlify(trim($author->get_name()));
if (!$vcard['fn']) {
$vcard['fn'] = trim(unxmlify($author->get_email()));
}
if (strpos($vcard['fn'], '@') !== false) {
$vcard['fn'] = substr($vcard['fn'], 0, strpos($vcard['fn'], '@'));
}
$email = unxmlify($author->get_email());
if (!$profile && $author->get_link()) {
$profile = trim(unxmlify($author->get_link()));
}
if (!$vcard['photo']) {
$rawtags = $feed->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author');
if ($rawtags) {
$elems = $rawtags[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10];
if (x($elems, 'link') && $elems['link'][0]['attribs']['']['rel'] === 'photo') {
$vcard['photo'] = $elems['link'][0]['attribs']['']['href'];
}
}
}
// Fetch fullname via poco:displayName
$pocotags = $feed->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author');
if ($pocotags) {
$elems = $pocotags[0]['child']['http://portablecontacts.net/spec/1.0'];
if (isset($elems["displayName"])) {
$vcard['fn'] = $elems["displayName"][0]["data"];
}
if (isset($elems["preferredUsername"])) {
$vcard['nick'] = $elems["preferredUsername"][0]["data"];
}
}
示例8: do_rss
/**
*
* @param object $bookmark
* @param object $owner
*/
protected function do_rss($bookmark, $owner)
{
// no bookmark, no fun
if (empty($bookmark) || !is_object($bookmark)) {
return false;
}
// no owner means no email, so no reason to parse
if (empty($owner) || !is_object($owner)) {
return false;
}
// instead of the way too simple fetch_feed, we'll use SimplePie itself
if (!class_exists('SimplePie')) {
require_once ABSPATH . WPINC . '/class-simplepie.php';
}
$url = htmlspecialchars_decode($bookmark->link_rss);
$last_updated = strtotime($bookmark->link_updated);
static::debug('Fetching: ' . $url, 6);
$feed = new SimplePie();
$feed->set_feed_url($url);
$feed->set_cache_duration(static::revisit_time - 10);
$feed->set_cache_location($this->cachedir);
$feed->force_feed(true);
// optimization
$feed->enable_order_by_date(true);
$feed->remove_div(true);
$feed->strip_comments(true);
$feed->strip_htmltags(false);
$feed->strip_attributes(true);
$feed->set_image_handler(false);
$feed->init();
$feed->handle_content_type();
if ($feed->error()) {
$err = new WP_Error('simplepie-error', $feed->error());
static::debug('Error: ' . $err->get_error_message(), 4);
$this->failed($owner->user_email, $url, $err->get_error_message());
return $err;
}
// set max items to 12
// especially useful with first runs
$maxitems = $feed->get_item_quantity(12);
$feed_items = $feed->get_items(0, $maxitems);
$feed_title = $feed->get_title();
// set the link name from the RSS title
if (!empty($feed_title) && $bookmark->link_name != $feed_title) {
global $wpdb;
$wpdb->update($wpdb->prefix . 'links', array('link_name' => $feed_title), array('link_id' => $bookmark->link_id));
}
// if there's a feed author, get it, we may need it if there's no entry
// author
$feed_author = $feed->get_author();
$last_updated_ = 0;
if ($maxitems > 0) {
foreach ($feed_items as $item) {
// U stands for Unix Time
$date = $item->get_date('U');
if ($date > $last_updated) {
$fromname = $feed_title;
$author = $item->get_author();
if ($author) {
$fromname = $fromname . ': ' . $author->get_name();
} elseif ($feed_author) {
$fromname = $fromname . ': ' . $feed_author->get_name();
}
// this is to set the sender mail from our own domain
$frommail = get_user_meta($owner->ID, 'blogroll2email_email', true);
if (!$frommail) {
$sitedomain = parse_url(get_bloginfo('url'), PHP_URL_HOST);
$frommail = static::schedule . '@' . $sitedomain;
}
$from = $fromname . '<' . $frommail . '>';
$content = $item->get_content();
$matches = array();
preg_match_all('/farm[0-9]\\.staticflickr\\.com\\/[0-9]+\\/([0-9]+_[0-9a-zA-Z]+_m\\.jpg)/s', $content, $matches);
if (!empty($matches[0])) {
foreach ($matches[0] as $to_replace) {
$clean = str_replace('_m.jpg', '_c.jpg', $to_replace);
$content = str_replace($to_replace, $clean, $content);
}
$content = preg_replace("/(width|height)=\"(.*?)\" ?/is", '', $content);
}
$content = apply_filters('blogroll2email_message', $content);
if ($this->send($owner->user_email, $item->get_link(), $item->get_title(), $from, $url, $item->get_content(), $date)) {
if ($date > $last_updated_) {
$last_updated_ = $date;
}
}
}
}
}
// poke the link's last update field, so we know what was the last sent
// entry's date
$this->update_link_date($bookmark, $last_updated_);
}
示例9: SimplePieWP
/**
* The actual function that can be called on webpages.
*/
function SimplePieWP($feed_url, $options = null)
{
// Quit if the SimplePie class isn't loaded.
if (!class_exists('SimplePie')) {
die('<p style="font-size:16px; line-height:1.5em; background-color:#c00; color:#fff; padding:10px; border:3px solid #f00; text-align:left;"><img src="' . SIMPLEPIE_PLUGINDIR_WEB . '/images/error.png" /> There is a problem with the SimplePie Plugin for WordPress. Check your <a href="' . WP_CPANEL . '" style="color:#ff0; text-decoration:underline;">Installation Status</a> for more information.</p>');
}
if (isset($locale) && !empty($locale) && $locale != 'auto') {
setlocale(LC_TIME, $locale);
}
// Default general settings
$template = get_option('simplepie_template');
$items = get_option('simplepie_items');
$items_per_feed = get_option('simplepie_items_per_feed');
$date_format = get_option('simplepie_date_format');
$enable_cache = get_option('simplepie_enable_cache');
$set_cache_location = get_option('simplepie_set_cache_location');
$set_cache_duration = get_option('simplepie_set_cache_duration');
$enable_order_by_date = get_option('simplepie_enable_order_by_date');
$set_timeout = get_option('simplepie_set_timeout');
// Default text-shortening settings
$truncate_feed_title = get_option('simplepie_truncate_feed_title');
$truncate_feed_description = get_option('simplepie_truncate_feed_description');
$truncate_item_title = get_option('simplepie_truncate_item_title');
$truncate_item_description = get_option('simplepie_truncate_item_description');
// Default advanced settings
$processing = get_option('simplepie_processing');
$locale = get_option('simplepie_locale');
$local_date_format = get_option('simplepie_local_date_format');
$strip_htmltags = get_option('simplepie_strip_htmltags');
$strip_attributes = get_option('simplepie_strip_attributes');
$set_max_checked_feeds = get_option('simplepie_set_max_checked_feeds');
// Overridden settings
if ($options) {
// Fix the template location if one was passed in.
if (isset($options['template']) && !empty($options['template'])) {
$options['template'] = SIMPLEPIE_PLUGINDIR . '/templates/' . strtolower(str_replace(' ', '_', $options['template'])) . '.tmpl';
}
// Fix the processing location if one was passed in.
if (isset($options['processing']) && !empty($options['processing'])) {
$options['processing'] = SIMPLEPIE_PLUGINDIR . '/processing/' . strtolower(str_replace(' ', '_', $options['processing'])) . '.php';
}
extract($options);
}
// Load post-processing file.
if ($processing && $processing != '') {
include_once $processing;
}
// If template doesn't exist, die.
if (!file_exists($template) || !is_readable($template)) {
die('<p style="font-size:16px; line-height:1.5em; background-color:#c00; color:#fff; padding:10px; border:3px solid #f00; text-align:left;"><img src="' . SIMPLEPIE_PLUGINDIR_WEB . '/images/error.png" /> The SimplePie template file is not readable by WordPress. Check the <a href="' . WP_CPANEL . '" style="color:#ff0; text-decoration:underline;">WordPress Control Panel</a> for more information.</p>');
}
// Initialize SimplePie
$feed = new SimplePie();
$feed->set_feed_url($feed_url);
$feed->enable_cache($enable_cache);
$feed->set_item_limit($items_per_feed);
$feed->set_cache_location($set_cache_location);
$feed->set_cache_duration($set_cache_duration);
$feed->enable_order_by_date($enable_order_by_date);
$feed->set_timeout($set_timeout);
$feed->strip_htmltags(explode(' ', $strip_htmltags));
$feed->strip_attributes(explode(' ', $strip_attributes));
$feed->set_max_checked_feeds($set_max_checked_feeds);
$feed->init();
// Load up the selected template file
$handle = fopen($template, 'r');
$tmpl = fread($handle, filesize($template));
fclose($handle);
/**************************************************************************************************************/
// ERRORS
// I'm absolutely sure that there is a better way to do this.
// Define what we're looking for
$error_start_tag = '{IF_ERROR_BEGIN}';
$error_end_tag = '{IF_ERROR_END}';
$error_start_length = strlen($error_start_tag);
$error_end_length = strlen($error_end_tag);
// Find what we're looking for
$error_start_pos = strpos($tmpl, $error_start_tag);
$error_end_pos = strpos($tmpl, $error_end_tag);
$error_length_pos = $error_end_pos - $error_start_pos;
// Grab what we're looking for
$error_string = substr($tmpl, $error_start_pos + $error_start_length, $error_length_pos - $error_start_length);
$replacable_string = $error_start_tag . $error_string . $error_end_tag;
if ($error_message = $feed->error()) {
$tmpl = str_replace($replacable_string, $error_string, $tmpl);
$tmpl = str_replace('{ERROR_MESSAGE}', SimplePie_WordPress::post_process('ERROR_MESSAGE', $error_message), $tmpl);
} elseif ($feed->get_item_quantity() == 0) {
$tmpl = str_replace($replacable_string, $error_string, $tmpl);
$tmpl = str_replace('{ERROR_MESSAGE}', SimplePie_WordPress::post_process('ERROR_MESSAGE', 'There are no items in this feed.'), $tmpl);
} else {
$tmpl = str_replace($replacable_string, '', $tmpl);
}
/**************************************************************************************************************/
// FEED
// FEED_AUTHOR_EMAIL
if ($author = $feed->get_author()) {
if ($email = $author->get_email()) {
//.........这里部分代码省略.........
示例10: foreach
$feed->init();
$feed->handle_content_type();
//if error found, show error message and stop parsing
if ($feed->error()) {
echo "<div class=\"alert alert-danger\">";
echo "<button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button>";
echo "<strong>Error! </strong>Unable to process feed: " . $feed_name . "<br>";
echo $feed->error();
echo "</div>";
} else {
foreach ($feed->get_items() as $item) {
$url = $item->get_permalink();
$subject = $item->get_title();
$content = $item->get_description();
$date = $item->get_date('Y-m-j H:i:s');
if ($author = $feed->get_author()) {
$author = $author->get_name();
} else {
$author = "";
}
echo "<tr><th>" . $feed_id . "</th><th>" . $feed_name . "</th><th>" . $date . "</th><th>";
$database->query("SELECT * FROM t_articles WHERE (url = :url OR subject = :subject) AND feed_id = :feed_id");
$database->bind(':url', trim($url));
$database->bind(':subject', trim($subject));
$database->bind(':feed_id', $feed_id);
$results = $database->resultset();
//debug message if article is already present in database
if (!empty($results)) {
echo "Article already present in database";
//debug message if article is more than one week old
} elseif (strtotime($date) < strtotime($previousweek)) {