= ord("a")) && (ord($c) <= ord("z"))) $b.=$c;
$i++;
}
return $b;
}
$html = new simple_html_dom();
$html->load_file("https://en.wikipedia.org/wiki/Opinion_polling_for_the_Spanish_general_election,_2015");
$ret = $html->find('table');
$indices=Array(3,4,5,11,12);
$partidos=Array(
3=>"PP",
4=>"PSOE",
5=>"IU",
11=>"Cs",
12=>"Podemos"
);
$comedia=0;
$medias=Array();
$variacion=Array();
foreach ($ret as $tabla)
{
if (count($tabla->children)>200)
{
$i=count($tabla->children)-3;
$datos=Array();
while ($i > 2)
{
$i=$i-1;
$fila=$tabla->children[$i];
#echo "\n\n fila $i \n\n";
#print_r($fila);
$celda=0;
foreach ($fila->children as $cuadro)
{
$celda++;
$txt=$cuadro;
if ($celda==1)
{
$tmp = $cuadro->find('a');
$x=$tmp[0]->nodes[0];
$empresa=$x;
#echo "Empresa $x\n";
}
if (in_array($celda,$indices))
{
$tmp = $cuadro->find('b');
$x=$tmp[0]->nodes[0];
if (strlen($x)==0)
$x=$cuadro->nodes[0];
$x=(float)(string)$x;
$datos[$celda]=$x;
}
}
$nummediamovil=20;
$comedia++;
if ($comedia>$nummediamovil) $comedia=1;
foreach ($indices as $k)
{
if (count($medias[$k])==$nummediamovil)
{
if (!in_array(0,$medias[$k]))
{
$med=array_sum($medias[$k])/$nummediamovil;
$dif=$datos[$k]-$med;
$empresa=sololetras($empresa);
if (!(isset($variacion[$empresa])))
$variacion[$empresa]=Array();
if (!(isset($variacion[$empresa][$k]))) $variacion[$empresa][$k]=Array();
$variacion[$empresa][$k][]=$dif;
}
}
$medias[$k][$comedia]=$datos[$k];
}
}
}
}
foreach ($variacion as $k=>$v)
{
echo "\nEMPRESA: $k\n";
$rate=Array();
foreach ($v as $par=>$dif)
{
echo $partidos[$par]." (".count($dif).")\t";
$med=round(array_sum($dif)/count($dif),3);
echo "$med\n";
if ($med<0) $med=$med*(-1);
$rate[]=$med;
}
echo "DesviaciĆ³n estandar: ".( array_sum($rate)/count($rate) )."\n\n";
}