Aller au contenu

générer un array PHP ` partir d'un tableau HTML


Don_Angelo

Messages recommandés

Bonjour à tous,

Je pose les prémices d'une sorte de CMS hybride entre wikipédia et Jazz (le projet de code®).

Après moultes difficultés j'en suis à programmmer un générateur de PDF, je pense utiliser la classe R&OS. Mon priblème étant l'affichage de tableau HTML qui necessite un array PHP. D'ou mon problème pour batîr un mini convertisseur maison. Après plusieurs essais je suis arrivé à un compromis pas trop lourdingue:

function htmltable_to_array($html)//conversion de tableau HTML en array PHP
{
if (substr_count($html,"")!=substr_count($html,"") || substr_count($html,"")!=substr_count($html,"")) return false; //tableau invalide
else
{
$html=trim($html);
$html=trim(substr($html,7,count($html)-9)); //superssion des balises de début et de fin de tableau HTML

$nb_lignes=substr_count($html,"");
$copie_html=$html;
$temp=0;

	while($temp<=$nb_lignes-1)
	{
		$fin_ligne=strpos($copie_html,"")-4;
		$lignes[$temp]=trim(substr($copie_html,4,$fin_ligne));
		$copie_html=substr(trim($copie_html),$fin_ligne+9);
		$temp++;
	}
//la séparation des lignes est finie on attaque les colonnes

$temp=0;
	while ($temp<=$nb_lignes-1)
	{
		$nb_colonnes=substr_count($lignes[$temp],"");
		$copie_ligne=trim($lignes[$temp]);
		$temp2=0;
		while($temp2<=$nb_colonnes-1)
		{
			$fin_colonne=strpos($copie_ligne,"")-4;
			$debut_colonne=strpos($copie_ligne,"");
			$array[$temp][$temp2]=trim(substr($copie_ligne,$debut_colonne+4,$fin_colonne));
			$copie_ligne=substr(trim($copie_ligne),$fin_colonne+9);
			$temp2++;
		}
	$temp++;
	}
	return $array;
	}
return $array;
}

Après deux trois tests je me suis aperçus que le tri laissait trainer des fragments de balises

de temps en temps sans vraiment comprendre pourquoi. Je soupçonne les appels de strpos() d'y être pour quelques choses mais sans être certain. Quelqu'un a t'il une idée lumineuse?

D'avance Merci.

Lien à poster
  • 3 semaines après...

Pardon, je me rends compte que la façon dont je pose la question est complètement conne. en fait si je suis obligé de faire comme ça, c'est à cause de mon incapacité à le faire avec des expressions régulières, (là j'avoue que je sèche complètement. En fait lorsque j'utilises split, je me retrouve toujours avec des éléments de tableau vides.

Voici mon code:

>function htmltable_to_array($table)
{
$table=str_replace("","",$table);
$table=eregi_replace("]+>","",$table);
$table=eregi_replace("]+>","",$table);
$table=eregi_replace("(|)","",$table);
$table=trim(eregi_replace("</pre>
<table>",$lignes[$temp]);
$temp++;
}
return $array;
}
</t

D'avance Merci de votre aide.

Lien à poster
×
×
  • Créer...