Paso 4: Partituras Pro fútbol.
<? php
//----------------------------------------------------------------
funciones
función do_offset($level) {}
$offset = ""; para subarry
para ($i = 1; $i < $level; $i ++) {}
$offset = $offset. "< td >< /td >";
}
retorno $offset;
}
función show_array ($array, $level $sub) {}
Si (is_array($array) == 1) {/ / comprobar si la entrada es una matriz
foreach ($array como $key_val = > $value) {}
$offset = "";
Si (is_array($value) == 1) {/ / array es multidimensional
echo "< tr >";
$offset = do_offset($level);
show_array ($value, $nivel + 1, 1);
}
Else {/ / array (sub) no es multidim
Si ($sub! = 1) {/ / primera entrada para la submatriz
echo "< nosub tr >";
$offset = do_offset($level);
}
$sub = 0;
Eco $offset. "< td principal «. $sub." anchura = \ "120\" > ". $key_val.
"< /td >< ancho td = \"120\">". $value. "< /td >";
echo "< /tr >";
}
} //foreach $array
}
Else {/ / argumento $array no es una matriz
retorno;
}
}
función html_show_array($array) {}
echo "< table cellspacing = \"0\"border = \"2\"> \n";
show_array ($array, 1, 0);
echo "< / table > \n";
}
funciones de extremo
//---------------------------------------------------------------
conjunto de actual semana juego
$Current_Week = 'p1'; #preweek 3, sólo para ver si el script funciona. Cuando empieza la temporada, '1' se denotan una etc. semana.
cargar código fuente, dependiendo de la semana en curso, de la página web en una variable como una cadena
$url = "http://sports.yahoo.com/nfl/scoreboard?w= $Current_Week";
$string = file_get_contents($url);
establecer el patrón de búsqueda (utilizando expresiones regulares)
$find = ' | < un href="/nfl/teams/.*?" >(.*?) < /a >. *? < td align = "derecha" class = "ysptblclbg6 total" >. *? < span clase = "yspscores" >(.*?) & nbsp; |is;
buscar la cadena para el patrón y el contenido que se encuentra dentro del conjunto de parens tienda en la matriz $matches
$matches [1] se va a celebrar los nombres en el orden en que aparecen en la página y $matches [2] las puntuaciones
preg_match_all ($find, $string, $matches);
iniciar la matriz de puntuaciones, para equipos y puntuaciones en juegos de grupo
$scores = array();
número de cuenta de equipos encontrados, para ser utilizado en el lazo de abajo
$count = count($matches[1]);
bucle de 0 a $count, en pasos de 2
Esto se hace para agrupar 2 equipos y 2 puntuaciones en juegos, con cada iteración del bucle
Trim() permite recorte cualquier espacio en blanco alrededor de las nombres de equipos y resultados
strip_tags () se utiliza para quitar la etiqueta negrita HTML (< b >) de los resultados ganadores
para ($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),
'ganador' = > $winner
);
}
echo "< br >< hr >";
echo "resultados de la semana: $Current_Week";
echo "< hr >";
echo "< br >";
ver cómo se ve la matriz de puntuaciones
echo '< pre >'. print_r ($scores, true). ' < / pre >';
$input = $scores;
$cols = 5;
echo "< br >";
echo count($scores);
echo "< br >";
echo "< borde tabla = \"5\"cellpadding = \"10\">";
echo "< tr >";
echo "away_team < td > < /td >";
echo "away_score < td > < /td >";
echo "home_team < td > < /td >";
echo "home_score < td > < /td >";
echo "ganador < td > < /td >";
echo "< /tr >";
para ($i = 0; $i < count($input); $i ++)
// {
echo "< tr >";
para ($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 como $key_val = > $value) {}
$offset = "";
Si (is_array($value) == 1) {/ / array es multidimensional
echo "< tr >";
$offset = do_offset($level);
Eco $offset. "< td >". $key_val. "< /td >";
show_array ($value, $nivel + 1, 1);
// }
Else {/ / array (sub) no es multidim
Si ($sub! = 1) {/ / primera entrada para la submatriz
echo "< nosub tr >";
$offset = do_offset($level);
// }
// $sub = 0;
Eco $offset. "< td principal «. $sub." anchura = \ "120\" > ". $key_val.
"< /td >< ancho td = \"120\">". $value. "< /td >";
echo "< /tr > \n";
// }
} //foreach $array
resultados del juego y los equipos ganadores ahora se pueden acceder desde la matriz de puntuaciones
por ejemplo, $scores [0] ['awayteam'] contiene el nombre del equipo (parte ['awayteam']) desde el primer juego en la página (parte [0])
html_show_array($scores);
? >