begin process at 2012 05 27 22:29:27
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > CONVERSION D'UN TABLEAU HTML EN ARRAY PHP

CONVERSION D'UN TABLEAU HTML EN ARRAY PHP


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :conversion, tableaux, html, array, php Niveau :Initié Date de création :16/06/2006 Vu :13 458

Auteur : Don_Angelo

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Cette fonction doit convertir les tableaux HTML simplistes (sans attributs dans les balises <table>, <td> et </tr>) en array PHP multidimensionnels. Retourne false en cas de tableau HTML erronné (manque d'une balise <tr> ou <td>)

Source

  • function htmltable_to_array($html)//conversion de tableau HTML en array PHP
  • {
  • if (substr_count($html,"<tr>")!=substr_count($html,"</tr>") || substr_count($html,"<td>")!=substr_count($html,"</td>")) 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,"<tr>");
  • $copie_html=$html;
  • $temp=0;
  • while($temp<=$nb_lignes-1)
  • {
  • $fin_ligne=strpos($copie_html,"</tr>")-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],"<td>");
  • $copie_ligne=trim($lignes[$temp]);
  • $temp2=0;
  • while($temp2<=$nb_colonnes-1)
  • {
  • $fin_colonne=strpos($copie_ligne,"</td>")-4;
  • $debut_colonne=strpos($copie_ligne,"<td>");
  • $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;
  • }
function htmltable_to_array($html)//conversion de tableau HTML en array PHP
{
if (substr_count($html,"<tr>")!=substr_count($html,"</tr>") || substr_count($html,"<td>")!=substr_count($html,"</td>")) 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,"<tr>");
	$copie_html=$html;
	$temp=0;
	
		while($temp<=$nb_lignes-1)
		{
			$fin_ligne=strpos($copie_html,"</tr>")-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],"<td>");
			$copie_ligne=trim($lignes[$temp]);
			$temp2=0;
			while($temp2<=$nb_colonnes-1)
			{
				$fin_colonne=strpos($copie_ligne,"</td>")-4;
				$debut_colonne=strpos($copie_ligne,"<td>");
				$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;
}

 Conclusion

Un bug arrive sur certains tableaux où certaines balises <td> subsistent. Je n'en ai pas encore identifié la raison avec certitude mais je pense que le problème vient de strpos(). Je reconnais que l'algorithme est un peu lourdingue, mais c'est un premier jet.
N'hésitez pas à poster des améliorations. Je réfléchis à un support des tableaux plus complexes avec des attributs dans les balises le constituant par exemple.


 Sources de la même categorie

Source avec une capture MODULE JOOMLA 1.5 NOW LISTENING par Alcantornet
Source avec Zip Source avec une capture UPLOAD CENTER par basssem81
Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK

 Sources en rapport avec celle ci

Source avec Zip CONVERTIR UN CHIFFRE EN LETTRE (PHP) par tahe
Source avec Zip XML ET TABLEAUX : UNE CLASSE COMPLÈTE QUI CONVERTIT UN DOCUM... par DaCodeManiak
Source avec Zip Source avec une capture VISUALISEUR DE SOURCES par Zart
Source avec Zip GÉRER DES LISTES AVEC TSTRINGLIST [POO] par grandvizir
Source avec une capture DECOUPER LE RESULTAT D'UNE REQUETE SUR PLUSIEURS PAGES par MATHIS49

Commentaires et avis

Commentaire de Teclis01 le 17/06/2006 02:09:28

Initié pour cette source faut pas pousser mamy dans les orties non plus ...
je vois a peu pres a quoi cela pourrait servir mais dommage que ce prenne pas un tableau avec un head ...

Commentaire de Don_Angelo le 17/06/2006 09:06:01

L'interet c'est de l'utiliser pour faire des tableaux dans un doc PDF généré avec la librairie R&OS par exemple. Si je comprend bien "un head" dans un tableau correspond à <th></th>? ça ne me paraît pas impossible à intégrer, je vais y réfléchir. Merci de ta suggestion.

Commentaire de malalam le 17/06/2006 11:14:27 administrateur CS

Hello,

c'est en effet trop peu générique, un peu "lourdingue" comme tu le dis :-)
Il y aurait d'autres façons de faire. En vrac, comme ça, j'en vois déjà deux :
- expressions régulières
- DOM (bah oui, DOM...un tableau HTML peut très bien être un flux xml valide, après tout. Très facile de le faire croire à PHP. Ensuite, en 2 coups, tu as toutes tes valeurs, quel que soit le tableau.)

Commentaire de TheSin le 17/06/2006 12:39:55

moi jvois pas mieux que de la récurisvité avec de l'expression régulière ^^
(bin oui, DOM je connais pas lol)

Commentaire de Don_Angelo le 18/06/2006 09:52:30

Exact, les expersiions rationnelles sont beaucoup plus souples pour ce genre de projet, c'est vraiment dommage que je n'ai pas le reflex de m'e, servir à chaque fois. Petite question toute fois, comment puis-je écrire avec une expression, "tous les caractères sauf la balise </tr>"?

D'avance Merci.

Commentaire de Don_Angelo le 23/06/2006 18:36:05

Petit post pour signaler que j'ai réécrit le scipt avec des expressions rationnelles. C'est plus beau et moins lourdingue, mais gros défaut, le script génère un tableau avec pleins d'éléments vides, il faut que je trouve un moyen de les arranger.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

convertir <TABLE> HTML en Array PHP [ par AFPA2003 ] Bonjour,je sais convertir une variable PHP simple tableau ou multi-dimention en autant de code HTML &lt;TABLE&gt; &lt;TR&gt; &lt;TD&gt; ... imbriqué q Insérer du html dans du php URGENT !! [ par jojo545 ] Qui pourrai me renseign&#233; sur comment mettre du html dans du php :&lt;head&gt;&lt;script language="javascript"&gt; tapopup = window.open("http://w PDF et PHP [ par syndrael ] Bonjour,J'aimerais trouver un moyen pour via une balise g&#233;n&#233;rer du PDF &#224; partir d'un fichier HTML. Autrement dit, j'ai un fichier HTML Urgent ! PHP ou HTML pareille! [ par Puchu ] Bonjour &#224; tous!Sur le site que je suis en train de creer, dans le menu j'ai une rubrique "presentatione". Je voudrais que, quand l'utilisateur cl tableau php [ par lucky82 ] bonjourj'ai une chaine de caractere $ch qui est compos&#233;e de plusieurs mots separ&#233;s par des espaces,je veux creer un tableau qui soit de la f Arreter l'execution du php [ par Arnauti ] Bonjour, j'ai un probl&#232;me. J'ai une page en php et en html avec un formulaire. Dans le code php, je fais des tests et si quelque chose ne va pas Récupération d'une variable dans une page php vers un editBox d'une page html... [ par Steeve Le Provost ] Bonjour,Je n'arrive pas &#224; trouver coment r&#233;cup&#233;rer la valeur d'une variable dans un editBox...Je m'explique :J'ai une page html, dans l Editeur php [ par MATHIS49 ] Bonjour, Voila, je suis enfin pass&#233; sous linux, j'aimerais savoir si vous connaissiez un &#233;diteur php/html ,avec preview en direct de l'html, Php mysql et excel [ par fredo35m ] Bonjour,j'ai une question existe-t-il un moyen pour faire des tableaux dynamiques sous excel &#224; partir d'une table mysql en php?pour m'expliquer u affichage d'image dans fichier.php ,en html [ par toutkado ] bonjour,j'ai un script Php permettant l'affichage aleatoire d'image j'aimerais savoir comment faire pour l'incorpore a l'htmlet ainsi affichez les ima


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales