Torna al Thread
$a=tab_html_to_array($news_da_www);
//echo "<br>fine operazione::::".print_r($a);
function tab_html_to_array($tab/*è lastringa che contiene i la tabella*/){
/***********************************************
* Trasformo la stringa tabella in un array *
* sostituendo i tag tabella con la sintassi *
* della funzione "array()", poi scrivo la *
* stringa in un file.php creato con file_op() *
* che subito dopo includo nel mio script *
* generendo cosi l'array voluto *
***********************************************/
/*RESTITUISCE UN ARRAY CONTENENTE DUE ARRAY IL *
* PRIMO CON L'INTESTAZIONE DELLA TABELLA ED IL*
* SECONDO CONTENENTE I DATI *
***********************************************/
$inizio=array("<thead>","<tbody>");
$fine=array("</thead>","</tbody>");
for ($i=0;$i<2;$i++) {$ris[$i]=sostituzione_tag($inizio[$i],$fine[$i],$tab);}
/* Qui costruisco la stringa che una *
* volta scritta sull'appostio file *
* diventera il codicie dell'array */
$str0="$"."intest=".$ris[0].";";
$str1="$"."a=array(".$ris[1].");";
/*Inserisco la stringa nel file di php*/
$file=file_op("<?php ".$str0." \n".$str1."?>");
include($file);
/*adesso la trasformazione è completa */
$risultato=array($intest,$a);
return $risultato;
}
function sostituzione_tag($inizio,$fine,$tab){
$length=strlen($fine);
$comincio_da_qua = strpos($tab , $inizio);
$finisco_qui = strpos($tab , $fine);
$ar= mb_substr($tab,$comincio_da_qua+$length-1,$finisco_qui-$comincio_da_qua-$length);
if ($inizio!="<thead>") {$i_c="/(<td.*?>)/"; $f_c="/(<\/td.*?>)/";}else $i_c="/(<th.*?>)/"; $f_c="/(<\/th.*?>)/";
/*elimino eventuali comandi di controllo.*/$ar=preg_replace("/[[:cntrl:]]/","",$ar);
/*elimino spazi multipli */$ar=preg_replace("/\s{2,}/"," ",$ar);
/* Inizio a costruire l'array, *
* <tr> segnera l'inizio dell'array */$ar=str_replace("<tr>","array(",$ar);
/*chiudo l'array */$ar=preg_replace("(</tr>)",")",$ar);
/* */$ar=preg_replace($i_c,"\"",$ar);
/* */$ar=preg_replace("/(<\/td.*?>)/","\",",$ar);
/* */$ar=preg_replace("/(<\/th.*?>)/","\",",$ar);
/*elimino i tag rimanenti */$ar=strip_tags($ar);
/*sistemo la punteggiatura dell'Array */$ar=str_replace(", ) array","), array",$ar);
/* */$ar=str_replace(", )",")",$ar);
/*elimino qualche altro spazio di troppo */$ar=preg_replace("/(\s*\"\s*)/","\"",$ar);
/*elimino gli accenti */$ar=str_replace("'"," ",$ar);
return $ar;
}
function file_op($str,$file="deb/tab_to_array.php",$tipo="w+"){
$var=fopen($file,$tipo);
fwrite($var,$str );
fclose($var);
return $file;
}