1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
<?php
// Tableau pour l'exemple
$example_tab=array(
'ACTIONS A FAIRE LISTE',
'ACTIONS A FAIRE TYPE',
'CONTACTS LISTE',
'CONTACTS ADRESSES',
'CONTACTS INFOS BANCAIRES',
'CONTACTS INFOS JURIDIQUES',
'CONTACTS ORIGINE',
'CONTACTS TELEPHONES',
'UTILISATEURS LISTE',
'UTILISATEURS COORDONNEES',
'UTILISATEURS INFOS BANCAIRES',
'UTILISATEURS INFOS JURIDIQUES',
'UTILISATEURS INFOS SUPPLEMENTAIRES',
'UTILISATEURS TELEPHONES'
);
// Convertion du tableau original en tableau multi-dimensionnel
function get_Data($source){
if(!is_array($source))return false;
$str=trim(implode("\n",$source));
if($str==='')return false;
if(!@preg_match_all('/^((?:[A-Z0-9_]+ ){3}|(?:([A-Z0-9_]+)( [A-Z0-9_]+)?) )([A-Z0-9_]+)$/m', $str, $res, PREG_PATTERN_ORDER))return false;
$tab=array();
for($i=0; $i<count($res[0]); $i++){
$k1=(isset($res[2][$i])and($res[2][$i]!==''))?strtolower($res[2][$i]):strtolower($res[1][$i]);
$k2=(isset($res[3][$i]))?trim(strtolower($res[3][$i])):'';
$k3=(isset($res[4][$i]))?trim(strtolower($res[4][$i])):'';
$k1=str_replace(' ','_',trim($k1));
if($k2!=='')
$tab[$k1][$k2][]=$k3;
else
$tab[$k1][]=$k3;
}
return $tab;
}
// Création du code HTML à partir du tableau multi-dimensionnel
function get_HTML($source){
if(!is_array($source))return '';
$htm="<table><tr>\n";
foreach($source as $k=>$list){
$title=strtolower(str_replace('_',' ',$k));
$htm.="\t<td><table>\n\t\t<tr><th>".strtoupper($title)."</th></tr>\n";
$htm2='';
foreach($list as $key=>$item){
if(is_array($item)){
$htm2="\t\t<tr><td><table>\n\t\t\t<tr><th>".strtoupper($key)."</th></tr>\n";
for($i=0; $i<count($item); $i++){
$anchor=$k.'_'.$key.'_'.$item[$i];
$htm2.="\t\t\t<tr><td><a href=\"index.php?table=".$anchor."\">".ucfirst($item[$i])."</a></td></tr>\n";
}
$htm2.="\t\t</table></td></tr>\n";
}
else{
$anchor=$k.'_'.$item;
$htm.="\t\t<tr><td><a href=\"index.php?table=".$anchor."\">".ucfirst($item)."</a></td></tr>\n";
}
}
$htm.=$htm2."\t</table></td>\n";
}
$htm.="</tr></table>\n";
return $htm;
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test</title>
<style type="text/css"><!--
table {border:none}
th {text-align:left}
td {vertical-align:top}
-->
</style>
</head>
<body>
<?php
// Convertion et affichage
$tab=get_Data($example_tab);
if($tab!==false){
$html=get_HTML($tab);
echo $html;
}
?>
</body>
</html> |
Partager