Hold deg oppdatert med favoritt TV-seriene

Lei av å lete på nettsteder etter når siste episode har kommet. Vel her har du muligheten til å kunne få alt på en og samme plass.

<?php
include_once( 'tv.php' );

$tv = new tv;

$shows         = array( 
                        
'NCIS'
                        
'House'
                        
'24'
                        
'Bones'
                        
'Heroes'
                        
'Criminal+Minds'
                        
'CSI'
                        
'Dexter'
                        
'Mad+Men'
                        
'The+Simpsons'
                        
'Family+Guy',
                        
'Eureka',
                        
'Entourage' );


$showList    = array();

foreach( 
$shows as $show )
{
    
$xml     file_get_contents'http://www.ezrss.it/search/index.php?simple&show_name=' $show .'&mode=rss&show_name_exact=true' );
    
$array    $tv->xml2array$xml );
    foreach( 
$array'rss' ]['channel']['item'] as $key => $item )
    {
        if ( 
$key )
        {
            
$showList[] = $item;
        }
    }
}
$showListFormated = array();
foreach ( 
$showList as $show )
{
    
$new $show;
    
$new'timestamp' ] = strtotime$show'pubDate' ] );
    
$showListFormated[] = $new;
}

$showList $tv->msort$showListFormated'timestamp'false );
echo 
'<ul>';
foreach( 
$showList as $show )
{
    echo 
'<li><a href="' $show'link' ] . '">' $show'title' ] . '</a> ' $tv->nicetime$show['pubDate' ] ) . '</li>';
}
echo 
'</ul>';

Også en klasse for å formatere litt og slikt:

<?php
class tv
{
    function 
msort($array$id="id"$sort_ascending=true) {
        
$temp_array = array();
        while(
count($array)>0) {
            
$lowest_id 0;
            
$index=0;
            foreach (
$array as $item) {
                if (isset(
$item[$id])) {
                                    if (
$array[$lowest_id][$id]) {
                    if (
strtolower($item[$id]) < strtolower($array[$lowest_id][$id])) {
                        
$lowest_id $index;
                    }
                    }
                                }
                
$index++;
            }
            
$temp_array[] = $array[$lowest_id];
            
$array array_merge(array_slice($array0,$lowest_id), array_slice($array$lowest_id+1));
        }
                if (
$sort_ascending) {
            return 
$temp_array;
                } else {
                    return 
array_reverse($temp_array);
                }
    }
    function 
nicetime($date) {
        
$periods = array("sekund""minutt""time""dag""uke""m&aring;ned""&aring;r""decade");
        
$lengths = array("60","60","24","7","4.35","12","10");
        
$now time();
        
$unix_date strtotime($date);
        
    
// check validity of date
        
if(empty($unix_date)) {    
            return 
"Bad date";
        }
    
    
// is it future date or past date
        
if($now $unix_date) {    
            
$difference     $now $unix_date;
            
$tense         "siden";
            
        } else {
            
$difference     $unix_date $now;
            
$tense         "siden";
        }
        for(
$j 0$difference >= $lengths[$j] && $j count($lengths)-1$j++) {
            
$difference /= $lengths[$j];
        }
        
        
$difference round($difference);
        
        if(
$difference != 1) {
            if ( 
$j == OR $j == )
            {
                
$periods[$j].= "r";
            }
            elseif ( 
$j == )
            {
                
//
            
}
            else 
            {
                
$periods[$j].="er";
            }
        }
        
    return 
"$difference $periods[$j] {$tense}";
    }
    function 
xml2array($contents$get_attributes=1$priority 'tag'
    {
        if(!
$contents) return array();
    
        if(!
function_exists('xml_parser_create')) {
            
//print "'xml_parser_create()' function not found!";
            
return array();
        }
    
        
//Get the XML parser of PHP - PHP must have this module for the parser to work
        
$parser xml_parser_create('');
        
xml_parser_set_option($parserXML_OPTION_TARGET_ENCODING"UTF-8"); # http://minutillo.com/steve/weblog/2004/6/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss
        
xml_parser_set_option($parserXML_OPTION_CASE_FOLDING0);
        
xml_parser_set_option($parserXML_OPTION_SKIP_WHITE1);
        
xml_parse_into_struct($parsertrim($contents), $xml_values);
        
xml_parser_free($parser);
    
        if(!
$xml_values) return;//Hmm...
    
        //Initializations
        
$xml_array = array();
        
$parents = array();
        
$opened_tags = array();
        
$arr = array();
    
        
$current = &$xml_array//Refference
    
        //Go through the tags.
        
$repeated_tag_index = array();//Multiple tags with same name will be turned into an array
        
foreach($xml_values as $data) {
            unset(
$attributes,$value);//Remove existing values, or there will be trouble
    
            //This command will extract these variables into the foreach scope
            // tag(string), type(string), level(int), attributes(array).
            
extract($data);//We could use the array by itself, but this cooler.
    
            
$result = array();
            
$attributes_data = array();
            
            if(isset(
$value)) {
                if(
$priority == 'tag'$result $value;
                else 
$result['value'] = $value//Put the value in a assoc array if we are in the 'Attribute' mode
            
}
    
            
//Set the attributes too.
            
if(isset($attributes) and $get_attributes) {
                foreach(
$attributes as $attr => $val) {
                    if(
$priority == 'tag'$attributes_data[$attr] = $val;
                    else 
$result['attr'][$attr] = $val//Set all the attributes in a array called 'attr'
                
}
            }
    
            
//See tag status and do the needed.
            
if($type == "open") {//The starting of the tag '<tag>'
                
$parent[$level-1] = &$current;
                
                if(!
is_array($current) or (!in_array($tagarray_keys($current)))) { //Insert New tag
                
                // REMOVED [0] after [$tag]
                    
$current[$tag] = $result;
                    if(
$attributes_data$current[$tag'_attr'] = $attributes_data;
                    
$repeated_tag_index[$tag.'_'.$level] = 1;
                    
$current = &$current[$tag];
    
                } else { 
//There was another element with the same tag name
                    
                    
if(isset($current[$tag][0])) {//If there is a 0th element it is already an array
                        
$current[$tag][$repeated_tag_index[$tag.'_'.$level]] = $result;
                        
$repeated_tag_index[$tag.'_'.$level]++;
                    } else {
//This section will make the value an array if multiple tags with the same name appear together
                        
$current[$tag] = array($current[$tag],$result);//This will combine the existing item and the new item together to make an array
                        
$repeated_tag_index[$tag.'_'.$level] = 2;
                        
                        if(isset(
$current[$tag.'_attr'])) { //The attribute of the last(0th) tag must be moved as well
                            
$current[$tag]['0_attr'] = $current[$tag.'_attr'];
                            unset(
$current[$tag.'_attr']);
                        }
    
                    }
                    
$last_item_index $repeated_tag_index[$tag.'_'.$level]-1;
                    
$current = &$current[$tag][$last_item_index];
                }
    
            } elseif(
$type == "complete") { //Tags that ends in 1 line '<tag />'
                //See if the key is already taken.
                
if(!isset($current[$tag])) { //New Key
                    
if ( is_array$result ) and count$result ) == )
                    {
                        
$current[$tag] = '';
                    }
                    else
                    {
                        
$current[$tag] = $result;
                    }
                    
$repeated_tag_index[$tag.'_'.$level] = 1;
                    if(
$priority == 'tag' and $attributes_data$current[$tag'_attr'] = $attributes_data;
                
                } else { 
//If taken, put all things inside a list(array)
                    
if(isset($current[$tag][0]) and is_array($current[$tag])) {//If it is already an array...
    
                        // ...push the new element into that array.
                        
$current[$tag][$repeated_tag_index[$tag.'_'.$level]] = $result;
                        
                        if(
$priority == 'tag' and $get_attributes and $attributes_data) {
                            
$current[$tag][$repeated_tag_index[$tag.'_'.$level] . '_attr'] = $attributes_data;
                        }
                        
$repeated_tag_index[$tag.'_'.$level]++;
    
                    } else { 
//If it is not an array...
                        
$current[$tag] = array($current[$tag],$result); //...Make it an array using using the existing value and the new value
                        
$repeated_tag_index[$tag.'_'.$level] = 1;
                        if(
$priority == 'tag' and $get_attributes) {
                            if(isset(
$current[$tag.'_attr'])) { //The attribute of the last(0th) tag must be moved as well
                                
                                
$current[$tag]['0_attr'] = $current[$tag.'_attr'];
                                unset(
$current[$tag.'_attr']);
                            }
                            
                            if(
$attributes_data) {
                                
$current[$tag][$repeated_tag_index[$tag.'_'.$level] . '_attr'] = $attributes_data;
                            }
                        }
                        
$repeated_tag_index[$tag.'_'.$level]++; //0 and 1 index is already taken
                    
}
                }
    
            } elseif(
$type == 'close') { //End of tag '</tag>'
                
$current = &$parent[$level-1];
            }
        }
        
        return(
$xml_array);
    }  
}
?>

0 kommentarer

Logg inn for å hente ditt navn og ikon | Registrer en ny konto