Étape 4: Scores de Football Pro.
<? php
//----------------------------------------------------------------
fonctions
function do_offset($level) {}
$offset = "" ; décalage de subarry
pour ($i = 1; $i < $level ; $i ++) {}
$offset = $offset. "< td >< /td >" ;
}
retour $offset ;
}
fonction show_array ($array, $level, $sub) {}
Si (is_array($array) == 1) {/ / vérifier si l’entrée est un tableau
foreach ($array as $key_val = > $value) {}
$offset = "" ;
Si (is_array($value) == 1) {/ / array est multidimensionnel
echo « < tr > » ;
$offset = do_offset($level) ;
show_array ($value, $niveau + 1, 1) ;
}
else {/ / tableau (sous) n’est pas multidim
Si ($sub! = 1) {/ / première entrée pour sous-tableau
echo « < tr nosub > » ;
$offset = do_offset($level) ;
}
$sub = 0 ;
echo $offset. "< td principale ». $sub." largeur = \ "120\" > ". $key_val.
"< /td >< td largeur = \ « 120\ » >". $value. « < /td > » ;
echo « < /tr > » ;
}
} //foreach $array
}
else {/ / argument $array n’est pas un tableau
retour ;
}
}
function html_show_array($array) {}
echo "< table cellspacing = \ « 0\ » border = \ « 2\ » > \n" ;
show_array ($array, 1, 0) ;
echo "< /table > \n" ;
}
fin des fonctions
//---------------------------------------------------------------
la valeur actuelle semaine de jeu
$Current_Week = « p1 » ; #preweek 3, juste pour voir si le script fonctionne. Quand la saison commence, « 1 » noterons une etc. semaine.
charger le code source, en fonction de la semaine en cours, du site Web dans une variable sous forme de chaîne
$url = « http://sports.yahoo.com/nfl/scoreboard?w= $Current_Week » ;
$string = file_get_contents($url) ;
définir le modèle de recherche (à l’aide d’expressions régulières)
$find = ' | < un href="/nfl/teams/.*?" >(.*?) < /a >. *? < td align = « right » class = « total ysptblclbg6 » >. *? < span class = « yspscores » >(.*?) & nbsp ; |d ;
la chaîne pour le modèle et le magasin le contenu trouvé à l’intérieur de l’ensemble des parens de recherche dans le tableau $matches
$matches [1] va contenir les noms de l’équipe dans l’ordre qu’ils apparaissent sur la page et $matches [2] les scores
preg_match_all ($find, $string, $matches) ;
Tableau de scores, pour regrouper les équipes et les scores ensemble dans les jeux de lancer
$scores = array() ;
nombre d’équipes trouvé, à utiliser dans la boucle ci-dessous
$count = count($matches[1]) ;
une boucle allant de 0 à $count, par incréments de 2
Ceci est fait afin de regrouper les 2 équipes et 2 partitions ensemble dans les jeux, à chaque itération de la boucle
Trim() sert à couper les espaces entourant les noms d’équipe et les notes
strip_tags() est utilisé pour enlever son étiquette de "BOLD" de HTML (< b >) les scores gagnantes
pour ($i = 0; $i < $count ; $i += 2) {}
$away_team = trim($matches[1][$i]) ;
$away_score = trim($matches[2][$i]) ;
$home_team = trim ($matches [1] [$i + 1]) ;
$home_score = trim ($matches [2] [$i + 1]) ;
$winner = (strpos ($away_score, ' <') === false) ? $home_team : $away_team ;
[$scores] = array ()
« awayteam » = > $away_team,
« awayscore » = > strip_tags($away_score),
« hometeam » = > $home_team,
« homescore » = > strip_tags($home_score),
« gagnant » = > $winner
);
}
echo "< br >< RH >" ;
echo "des Scores de la semaine : $Current_Week" ;
echo « < hr > » ;
echo « < br > » ;
Voir à quoi ressemble le tableau des scores
echo '< pre >'. print_r ($scores, true). ' < / pre >' ;
$input = $scores ;
$cols = 5 ;
echo « < br > » ;
echo count($scores) ;
echo « < br > » ;
echo "< table frontière = \ « 5\ » cellpadding = \ « 10\ » >" ;
echo « < tr > » ;
echo "< td > away_team < /td >" ;
echo "< td > away_score < /td >" ;
echo "< td > home_team < /td >" ;
echo "< td > home_score < /td >" ;
echo "gagnant de < td > < /td >" ;
echo « < /tr > » ;
pour ($i = 0; $i < count($input) ; $i ++)
// {
echo « < tr > » ;
pour ($c = 0; $c < $cols ; $c ++)
// {
echo « < td > $input [$i] < /td > » ;
echo « < td > $away_team < /td > » ;
echo « < td > $away_score < /td > » ;
echo « < td > $home_team < /td > » ;
echo « < td > $home_score < /td > » ;
echo « < td > $winner < /td > » ;
// }
echo « < /tr > » ;
// }
echo « < / table > » ;
foreach ($scores as $key_val = > $value) {}
$offset = "" ;
Si (is_array($value) == 1) {/ / array est multidimensionnel
echo « < tr > » ;
$offset = do_offset($level) ;
echo $offset. « < td > ». $key_val. « < /td > » ;
show_array ($value, $niveau + 1, 1) ;
// }
else {/ / tableau (sous) n’est pas multidim
Si ($sub! = 1) {/ / première entrée pour sous-tableau
echo « < tr nosub > » ;
$offset = do_offset($level) ;
// }
// $sub = 0;
echo $offset. "< td principale ». $sub." largeur = \ "120\" > ". $key_val.
"< /td >< td largeur = \ « 120\ » >". $value. « < /td > » ;
echo "< /tr > \n" ;
// }
} //foreach $array
résultats de jeu et les équipes gagnantes maintenant accessible à partir du tableau des scores
par exemple, $scores [0] ['awayteam'] contient le nom de la team (partie ['awayteam']) depuis le premier match sur la page (partie [0])
html_show_array($scores) ;
? >