Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../public_h.../wp-inclu...
File: rss.php
else {
[500] Fix | Delete
$errormsg = "Failed to fetch $url. ";
[501] Fix | Delete
if ( $resp->error ) {
[502] Fix | Delete
# compensate for Snoopy's annoying habit to tacking
[503] Fix | Delete
# on '\n'
[504] Fix | Delete
$http_error = substr($resp->error, 0, -2);
[505] Fix | Delete
$errormsg .= "(HTTP Error: $http_error)";
[506] Fix | Delete
}
[507] Fix | Delete
else {
[508] Fix | Delete
$errormsg .= "(HTTP Response: " . $resp->response_code .')';
[509] Fix | Delete
}
[510] Fix | Delete
}
[511] Fix | Delete
}
[512] Fix | Delete
else {
[513] Fix | Delete
$errormsg = "Unable to retrieve RSS file for unknown reasons.";
[514] Fix | Delete
}
[515] Fix | Delete
[516] Fix | Delete
// else fetch failed
[517] Fix | Delete
[518] Fix | Delete
// attempt to return cached object
[519] Fix | Delete
if ($rss) {
[520] Fix | Delete
if ( MAGPIE_DEBUG ) {
[521] Fix | Delete
debug("Returning STALE object for $url");
[522] Fix | Delete
}
[523] Fix | Delete
return $rss;
[524] Fix | Delete
}
[525] Fix | Delete
[526] Fix | Delete
// else we totally failed
[527] Fix | Delete
// error( $errormsg );
[528] Fix | Delete
[529] Fix | Delete
return false;
[530] Fix | Delete
[531] Fix | Delete
} // end if ( !MAGPIE_CACHE_ON ) {
[532] Fix | Delete
} // end fetch_rss()
[533] Fix | Delete
endif;
[534] Fix | Delete
[535] Fix | Delete
/**
[536] Fix | Delete
* Retrieve URL headers and content using WP HTTP Request API.
[537] Fix | Delete
*
[538] Fix | Delete
* @since 1.5.0
[539] Fix | Delete
* @package External
[540] Fix | Delete
* @subpackage MagpieRSS
[541] Fix | Delete
*
[542] Fix | Delete
* @param string $url URL to retrieve
[543] Fix | Delete
* @param array $headers Optional. Headers to send to the URL. Default empty string.
[544] Fix | Delete
* @return Snoopy style response
[545] Fix | Delete
*/
[546] Fix | Delete
function _fetch_remote_file($url, $headers = "" ) {
[547] Fix | Delete
$resp = wp_safe_remote_request( $url, array( 'headers' => $headers, 'timeout' => MAGPIE_FETCH_TIME_OUT ) );
[548] Fix | Delete
if ( is_wp_error($resp) ) {
[549] Fix | Delete
$error = array_shift($resp->errors);
[550] Fix | Delete
[551] Fix | Delete
$resp = new stdClass;
[552] Fix | Delete
$resp->status = 500;
[553] Fix | Delete
$resp->response_code = 500;
[554] Fix | Delete
$resp->error = $error[0] . "\n"; //\n = Snoopy compatibility
[555] Fix | Delete
return $resp;
[556] Fix | Delete
}
[557] Fix | Delete
[558] Fix | Delete
// Snoopy returns headers unprocessed.
[559] Fix | Delete
// Also note, WP_HTTP lowercases all keys, Snoopy did not.
[560] Fix | Delete
$return_headers = array();
[561] Fix | Delete
foreach ( wp_remote_retrieve_headers( $resp ) as $key => $value ) {
[562] Fix | Delete
if ( !is_array($value) ) {
[563] Fix | Delete
$return_headers[] = "$key: $value";
[564] Fix | Delete
} else {
[565] Fix | Delete
foreach ( $value as $v )
[566] Fix | Delete
$return_headers[] = "$key: $v";
[567] Fix | Delete
}
[568] Fix | Delete
}
[569] Fix | Delete
[570] Fix | Delete
$response = new stdClass;
[571] Fix | Delete
$response->status = wp_remote_retrieve_response_code( $resp );
[572] Fix | Delete
$response->response_code = wp_remote_retrieve_response_code( $resp );
[573] Fix | Delete
$response->headers = $return_headers;
[574] Fix | Delete
$response->results = wp_remote_retrieve_body( $resp );
[575] Fix | Delete
[576] Fix | Delete
return $response;
[577] Fix | Delete
}
[578] Fix | Delete
[579] Fix | Delete
/**
[580] Fix | Delete
* Retrieve
[581] Fix | Delete
*
[582] Fix | Delete
* @since 1.5.0
[583] Fix | Delete
* @package External
[584] Fix | Delete
* @subpackage MagpieRSS
[585] Fix | Delete
*
[586] Fix | Delete
* @param array $resp
[587] Fix | Delete
* @return MagpieRSS|bool
[588] Fix | Delete
*/
[589] Fix | Delete
function _response_to_rss ($resp) {
[590] Fix | Delete
$rss = new MagpieRSS( $resp->results );
[591] Fix | Delete
[592] Fix | Delete
// if RSS parsed successfully
[593] Fix | Delete
if ( $rss && (!isset($rss->ERROR) || !$rss->ERROR) ) {
[594] Fix | Delete
[595] Fix | Delete
// find Etag, and Last-Modified
[596] Fix | Delete
foreach ( (array) $resp->headers as $h) {
[597] Fix | Delete
// 2003-03-02 - Nicola Asuni (www.tecnick.com) - fixed bug "Undefined offset: 1"
[598] Fix | Delete
if (strpos($h, ": ")) {
[599] Fix | Delete
list($field, $val) = explode(": ", $h, 2);
[600] Fix | Delete
}
[601] Fix | Delete
else {
[602] Fix | Delete
$field = $h;
[603] Fix | Delete
$val = "";
[604] Fix | Delete
}
[605] Fix | Delete
[606] Fix | Delete
if ( $field == 'etag' ) {
[607] Fix | Delete
$rss->etag = $val;
[608] Fix | Delete
}
[609] Fix | Delete
[610] Fix | Delete
if ( $field == 'last-modified' ) {
[611] Fix | Delete
$rss->last_modified = $val;
[612] Fix | Delete
}
[613] Fix | Delete
}
[614] Fix | Delete
[615] Fix | Delete
return $rss;
[616] Fix | Delete
} // else construct error message
[617] Fix | Delete
else {
[618] Fix | Delete
$errormsg = "Failed to parse RSS file.";
[619] Fix | Delete
[620] Fix | Delete
if ($rss) {
[621] Fix | Delete
$errormsg .= " (" . $rss->ERROR . ")";
[622] Fix | Delete
}
[623] Fix | Delete
// error($errormsg);
[624] Fix | Delete
[625] Fix | Delete
return false;
[626] Fix | Delete
} // end if ($rss and !$rss->error)
[627] Fix | Delete
}
[628] Fix | Delete
[629] Fix | Delete
/**
[630] Fix | Delete
* Set up constants with default values, unless user overrides.
[631] Fix | Delete
*
[632] Fix | Delete
* @since 1.5.0
[633] Fix | Delete
*
[634] Fix | Delete
* @global string $wp_version The WordPress version string.
[635] Fix | Delete
*
[636] Fix | Delete
* @package External
[637] Fix | Delete
* @subpackage MagpieRSS
[638] Fix | Delete
*/
[639] Fix | Delete
function init () {
[640] Fix | Delete
if ( defined('MAGPIE_INITALIZED') ) {
[641] Fix | Delete
return;
[642] Fix | Delete
}
[643] Fix | Delete
else {
[644] Fix | Delete
define('MAGPIE_INITALIZED', 1);
[645] Fix | Delete
}
[646] Fix | Delete
[647] Fix | Delete
if ( !defined('MAGPIE_CACHE_ON') ) {
[648] Fix | Delete
define('MAGPIE_CACHE_ON', 1);
[649] Fix | Delete
}
[650] Fix | Delete
[651] Fix | Delete
if ( !defined('MAGPIE_CACHE_DIR') ) {
[652] Fix | Delete
define('MAGPIE_CACHE_DIR', './cache');
[653] Fix | Delete
}
[654] Fix | Delete
[655] Fix | Delete
if ( !defined('MAGPIE_CACHE_AGE') ) {
[656] Fix | Delete
define('MAGPIE_CACHE_AGE', 60*60); // one hour
[657] Fix | Delete
}
[658] Fix | Delete
[659] Fix | Delete
if ( !defined('MAGPIE_CACHE_FRESH_ONLY') ) {
[660] Fix | Delete
define('MAGPIE_CACHE_FRESH_ONLY', 0);
[661] Fix | Delete
}
[662] Fix | Delete
[663] Fix | Delete
if ( !defined('MAGPIE_DEBUG') ) {
[664] Fix | Delete
define('MAGPIE_DEBUG', 0);
[665] Fix | Delete
}
[666] Fix | Delete
[667] Fix | Delete
if ( !defined('MAGPIE_USER_AGENT') ) {
[668] Fix | Delete
$ua = 'WordPress/' . $GLOBALS['wp_version'];
[669] Fix | Delete
[670] Fix | Delete
if ( MAGPIE_CACHE_ON ) {
[671] Fix | Delete
$ua = $ua . ')';
[672] Fix | Delete
}
[673] Fix | Delete
else {
[674] Fix | Delete
$ua = $ua . '; No cache)';
[675] Fix | Delete
}
[676] Fix | Delete
[677] Fix | Delete
define('MAGPIE_USER_AGENT', $ua);
[678] Fix | Delete
}
[679] Fix | Delete
[680] Fix | Delete
if ( !defined('MAGPIE_FETCH_TIME_OUT') ) {
[681] Fix | Delete
define('MAGPIE_FETCH_TIME_OUT', 2); // 2 second timeout
[682] Fix | Delete
}
[683] Fix | Delete
[684] Fix | Delete
// use gzip encoding to fetch rss files if supported?
[685] Fix | Delete
if ( !defined('MAGPIE_USE_GZIP') ) {
[686] Fix | Delete
define('MAGPIE_USE_GZIP', true);
[687] Fix | Delete
}
[688] Fix | Delete
}
[689] Fix | Delete
[690] Fix | Delete
function is_info ($sc) {
[691] Fix | Delete
return $sc >= 100 && $sc < 200;
[692] Fix | Delete
}
[693] Fix | Delete
[694] Fix | Delete
function is_success ($sc) {
[695] Fix | Delete
return $sc >= 200 && $sc < 300;
[696] Fix | Delete
}
[697] Fix | Delete
[698] Fix | Delete
function is_redirect ($sc) {
[699] Fix | Delete
return $sc >= 300 && $sc < 400;
[700] Fix | Delete
}
[701] Fix | Delete
[702] Fix | Delete
function is_error ($sc) {
[703] Fix | Delete
return $sc >= 400 && $sc < 600;
[704] Fix | Delete
}
[705] Fix | Delete
[706] Fix | Delete
function is_client_error ($sc) {
[707] Fix | Delete
return $sc >= 400 && $sc < 500;
[708] Fix | Delete
}
[709] Fix | Delete
[710] Fix | Delete
function is_server_error ($sc) {
[711] Fix | Delete
return $sc >= 500 && $sc < 600;
[712] Fix | Delete
}
[713] Fix | Delete
[714] Fix | Delete
class RSSCache {
[715] Fix | Delete
var $BASE_CACHE; // where the cache files are stored
[716] Fix | Delete
var $MAX_AGE = 43200; // when are files stale, default twelve hours
[717] Fix | Delete
var $ERROR = ''; // accumulate error messages
[718] Fix | Delete
[719] Fix | Delete
/**
[720] Fix | Delete
* PHP5 constructor.
[721] Fix | Delete
*/
[722] Fix | Delete
function __construct( $base = '', $age = '' ) {
[723] Fix | Delete
$this->BASE_CACHE = WP_CONTENT_DIR . '/cache';
[724] Fix | Delete
if ( $base ) {
[725] Fix | Delete
$this->BASE_CACHE = $base;
[726] Fix | Delete
}
[727] Fix | Delete
if ( $age ) {
[728] Fix | Delete
$this->MAX_AGE = $age;
[729] Fix | Delete
}
[730] Fix | Delete
[731] Fix | Delete
}
[732] Fix | Delete
[733] Fix | Delete
/**
[734] Fix | Delete
* PHP4 constructor.
[735] Fix | Delete
*/
[736] Fix | Delete
public function RSSCache( $base = '', $age = '' ) {
[737] Fix | Delete
self::__construct( $base, $age );
[738] Fix | Delete
}
[739] Fix | Delete
[740] Fix | Delete
/*=======================================================================*\
[741] Fix | Delete
Function: set
[742] Fix | Delete
Purpose: add an item to the cache, keyed on url
[743] Fix | Delete
Input: url from which the rss file was fetched
[744] Fix | Delete
Output: true on success
[745] Fix | Delete
\*=======================================================================*/
[746] Fix | Delete
function set ($url, $rss) {
[747] Fix | Delete
$cache_option = 'rss_' . $this->file_name( $url );
[748] Fix | Delete
[749] Fix | Delete
set_transient($cache_option, $rss, $this->MAX_AGE);
[750] Fix | Delete
[751] Fix | Delete
return $cache_option;
[752] Fix | Delete
}
[753] Fix | Delete
[754] Fix | Delete
/*=======================================================================*\
[755] Fix | Delete
Function: get
[756] Fix | Delete
Purpose: fetch an item from the cache
[757] Fix | Delete
Input: url from which the rss file was fetched
[758] Fix | Delete
Output: cached object on HIT, false on MISS
[759] Fix | Delete
\*=======================================================================*/
[760] Fix | Delete
function get ($url) {
[761] Fix | Delete
$this->ERROR = "";
[762] Fix | Delete
$cache_option = 'rss_' . $this->file_name( $url );
[763] Fix | Delete
[764] Fix | Delete
if ( ! $rss = get_transient( $cache_option ) ) {
[765] Fix | Delete
$this->debug(
[766] Fix | Delete
"Cache does not contain: $url (cache option: $cache_option)"
[767] Fix | Delete
);
[768] Fix | Delete
return 0;
[769] Fix | Delete
}
[770] Fix | Delete
[771] Fix | Delete
return $rss;
[772] Fix | Delete
}
[773] Fix | Delete
[774] Fix | Delete
/*=======================================================================*\
[775] Fix | Delete
Function: check_cache
[776] Fix | Delete
Purpose: check a url for membership in the cache
[777] Fix | Delete
and whether the object is older then MAX_AGE (ie. STALE)
[778] Fix | Delete
Input: url from which the rss file was fetched
[779] Fix | Delete
Output: cached object on HIT, false on MISS
[780] Fix | Delete
\*=======================================================================*/
[781] Fix | Delete
function check_cache ( $url ) {
[782] Fix | Delete
$this->ERROR = "";
[783] Fix | Delete
$cache_option = 'rss_' . $this->file_name( $url );
[784] Fix | Delete
[785] Fix | Delete
if ( get_transient($cache_option) ) {
[786] Fix | Delete
// object exists and is current
[787] Fix | Delete
return 'HIT';
[788] Fix | Delete
} else {
[789] Fix | Delete
// object does not exist
[790] Fix | Delete
return 'MISS';
[791] Fix | Delete
}
[792] Fix | Delete
}
[793] Fix | Delete
[794] Fix | Delete
/*=======================================================================*\
[795] Fix | Delete
Function: serialize
[796] Fix | Delete
\*=======================================================================*/
[797] Fix | Delete
function serialize ( $rss ) {
[798] Fix | Delete
return serialize( $rss );
[799] Fix | Delete
}
[800] Fix | Delete
[801] Fix | Delete
/*=======================================================================*\
[802] Fix | Delete
Function: unserialize
[803] Fix | Delete
\*=======================================================================*/
[804] Fix | Delete
function unserialize ( $data ) {
[805] Fix | Delete
return unserialize( $data );
[806] Fix | Delete
}
[807] Fix | Delete
[808] Fix | Delete
/*=======================================================================*\
[809] Fix | Delete
Function: file_name
[810] Fix | Delete
Purpose: map url to location in cache
[811] Fix | Delete
Input: url from which the rss file was fetched
[812] Fix | Delete
Output: a file name
[813] Fix | Delete
\*=======================================================================*/
[814] Fix | Delete
function file_name ($url) {
[815] Fix | Delete
return md5( $url );
[816] Fix | Delete
}
[817] Fix | Delete
[818] Fix | Delete
/*=======================================================================*\
[819] Fix | Delete
Function: error
[820] Fix | Delete
Purpose: register error
[821] Fix | Delete
\*=======================================================================*/
[822] Fix | Delete
function error ($errormsg, $lvl=E_USER_WARNING) {
[823] Fix | Delete
$this->ERROR = $errormsg;
[824] Fix | Delete
if ( MAGPIE_DEBUG ) {
[825] Fix | Delete
wp_trigger_error( '', $errormsg, $lvl);
[826] Fix | Delete
}
[827] Fix | Delete
else {
[828] Fix | Delete
error_log( $errormsg, 0);
[829] Fix | Delete
}
[830] Fix | Delete
}
[831] Fix | Delete
function debug ($debugmsg, $lvl=E_USER_NOTICE) {
[832] Fix | Delete
if ( MAGPIE_DEBUG ) {
[833] Fix | Delete
$this->error("MagpieRSS [debug] $debugmsg", $lvl);
[834] Fix | Delete
}
[835] Fix | Delete
}
[836] Fix | Delete
}
[837] Fix | Delete
[838] Fix | Delete
if ( !function_exists('parse_w3cdtf') ) :
[839] Fix | Delete
function parse_w3cdtf ( $date_str ) {
[840] Fix | Delete
[841] Fix | Delete
# regex to match W3C date/time formats
[842] Fix | Delete
$pat = "/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(:(\d{2}))?(?:([-+])(\d{2}):?(\d{2})|(Z))?/";
[843] Fix | Delete
[844] Fix | Delete
if ( preg_match( $pat, $date_str, $match ) ) {
[845] Fix | Delete
list( $year, $month, $day, $hours, $minutes, $seconds) =
[846] Fix | Delete
array( $match[1], $match[2], $match[3], $match[4], $match[5], $match[7]);
[847] Fix | Delete
[848] Fix | Delete
# calc epoch for current date assuming GMT
[849] Fix | Delete
$epoch = gmmktime( $hours, $minutes, $seconds, $month, $day, $year);
[850] Fix | Delete
[851] Fix | Delete
$offset = 0;
[852] Fix | Delete
if ( $match[11] == 'Z' ) {
[853] Fix | Delete
# zulu time, aka GMT
[854] Fix | Delete
}
[855] Fix | Delete
else {
[856] Fix | Delete
list( $tz_mod, $tz_hour, $tz_min ) =
[857] Fix | Delete
array( $match[8], $match[9], $match[10]);
[858] Fix | Delete
[859] Fix | Delete
# zero out the variables
[860] Fix | Delete
if ( ! $tz_hour ) { $tz_hour = 0; }
[861] Fix | Delete
if ( ! $tz_min ) { $tz_min = 0; }
[862] Fix | Delete
[863] Fix | Delete
$offset_secs = (($tz_hour*60)+$tz_min)*60;
[864] Fix | Delete
[865] Fix | Delete
# is timezone ahead of GMT? then subtract offset
[866] Fix | Delete
#
[867] Fix | Delete
if ( $tz_mod == '+' ) {
[868] Fix | Delete
$offset_secs = $offset_secs * -1;
[869] Fix | Delete
}
[870] Fix | Delete
[871] Fix | Delete
$offset = $offset_secs;
[872] Fix | Delete
}
[873] Fix | Delete
$epoch = $epoch + $offset;
[874] Fix | Delete
return $epoch;
[875] Fix | Delete
}
[876] Fix | Delete
else {
[877] Fix | Delete
return -1;
[878] Fix | Delete
}
[879] Fix | Delete
}
[880] Fix | Delete
endif;
[881] Fix | Delete
[882] Fix | Delete
if ( !function_exists('wp_rss') ) :
[883] Fix | Delete
/**
[884] Fix | Delete
* Display all RSS items in a HTML ordered list.
[885] Fix | Delete
*
[886] Fix | Delete
* @since 1.5.0
[887] Fix | Delete
* @package External
[888] Fix | Delete
* @subpackage MagpieRSS
[889] Fix | Delete
*
[890] Fix | Delete
* @param string $url URL of feed to display. Will not auto sense feed URL.
[891] Fix | Delete
* @param int $num_items Optional. Number of items to display, default is all.
[892] Fix | Delete
*/
[893] Fix | Delete
function wp_rss( $url, $num_items = -1 ) {
[894] Fix | Delete
if ( $rss = fetch_rss( $url ) ) {
[895] Fix | Delete
echo '<ul>';
[896] Fix | Delete
[897] Fix | Delete
if ( $num_items !== -1 ) {
[898] Fix | Delete
$rss->items = array_slice( $rss->items, 0, $num_items );
[899] Fix | Delete
}
[900] Fix | Delete
[901] Fix | Delete
foreach ( (array) $rss->items as $item ) {
[902] Fix | Delete
printf(
[903] Fix | Delete
'<li><a href="%1$s" title="%2$s">%3$s</a></li>',
[904] Fix | Delete
esc_url( $item['link'] ),
[905] Fix | Delete
esc_attr( strip_tags( $item['description'] ) ),
[906] Fix | Delete
esc_html( $item['title'] )
[907] Fix | Delete
);
[908] Fix | Delete
}
[909] Fix | Delete
[910] Fix | Delete
echo '</ul>';
[911] Fix | Delete
} else {
[912] Fix | Delete
_e( 'An error has occurred, which probably means the feed is down. Try again later.' );
[913] Fix | Delete
}
[914] Fix | Delete
}
[915] Fix | Delete
endif;
[916] Fix | Delete
[917] Fix | Delete
if ( !function_exists('get_rss') ) :
[918] Fix | Delete
/**
[919] Fix | Delete
* Display RSS items in HTML list items.
[920] Fix | Delete
*
[921] Fix | Delete
* You have to specify which HTML list you want, either ordered or unordered
[922] Fix | Delete
* before using the function. You also have to specify how many items you wish
[923] Fix | Delete
* to display. You can't display all of them like you can with wp_rss()
[924] Fix | Delete
* function.
[925] Fix | Delete
*
[926] Fix | Delete
* @since 1.5.0
[927] Fix | Delete
* @package External
[928] Fix | Delete
* @subpackage MagpieRSS
[929] Fix | Delete
*
[930] Fix | Delete
* @param string $url URL of feed to display. Will not auto sense feed URL.
[931] Fix | Delete
* @param int $num_items Optional. Number of items to display, default is all.
[932] Fix | Delete
* @return bool False on failure.
[933] Fix | Delete
*/
[934] Fix | Delete
function get_rss ($url, $num_items = 5) { // Like get posts, but for RSS
[935] Fix | Delete
$rss = fetch_rss($url);
[936] Fix | Delete
if ( $rss ) {
[937] Fix | Delete
$rss->items = array_slice($rss->items, 0, $num_items);
[938] Fix | Delete
foreach ( (array) $rss->items as $item ) {
[939] Fix | Delete
echo "<li>\n";
[940] Fix | Delete
echo "<a href='$item[link]' title='$item[description]'>";
[941] Fix | Delete
echo esc_html($item['title']);
[942] Fix | Delete
echo "</a><br />\n";
[943] Fix | Delete
echo "</li>\n";
[944] Fix | Delete
}
[945] Fix | Delete
} else {
[946] Fix | Delete
return false;
[947] Fix | Delete
}
[948] Fix | Delete
}
[949] Fix | Delete
endif;
[950] Fix | Delete
[951] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function