Guest narcisse Posté 2 Octobre 2004 Posté 2 Octobre 2004 Bonjour, Je souhaite avoir des renseignements sur l'utilisation des éléments de librairies Nexen. En effet, sur d'autres sites dédié au PHP, on télécharge le script avec un fichier d'aide à l'installation, on intégre le script dans la page HTML et le tour est joué. Visiblement chez Nexen, ça à l'air d'être plus délicat.... Un élément, je ne sais pas si c'est comme ça que je dois le nommé (bref) m'interresse, je l'ai téléchargé et la j'obtiens juste un fichier PHP sans aucun code HTML ni explication d'ailleurs contenant plusieurs fonctions et variables je pense. Comment puise l'utiliser et l'intégrer dans mes pages web. Merci à ceux qui arriveront à comprendre ce problème délicat.
Anonymus Posté 2 Octobre 2004 Posté 2 Octobre 2004 Tout dépend de ce dont il s'agit. Tu peux poster le code (s'il n'est pas trop long), voire la page d'où tu as tiré cet élément ? merci.
Guest narcisse Posté 2 Octobre 2004 Posté 2 Octobre 2004 Voici l'URL Mais je ne vois pas trop quoi faire de ce bout de code.... Merci bien quand même d'y jeter un coup d'oeil.
Anonymus Posté 3 Octobre 2004 Posté 3 Octobre 2004 Cette fonction sert à tester, vérifier les balises présentes dans une page web. La voici : <?$url = "http://www.google.com";function html_check($url){ /* Parametre : $url : URL ou chemin d'acces du fichier a tester * La variable retournée est un tableau associatif à contenant des tableaux : * "ouvertures multiples" => tableau des balises concernées, * "non ouverte" => tableau a 2 dimensions (balise -> nombre) * "non fermee" => tableau a 2 dimensions (balise -> nombre) * "mal placee" => tableau a 2 dimensions (balise -> nombre) * "mal emboitee" => tableau a 2 dimensions * (balise fermante -> balise ouvrante en conflit) * "inconnue" => tableau des balises inconnues */ $notonlyonce = array("TABLE", "FRAMESET"); $openclosetags = array( "A" => 0, "ADDRESS" => 0, "APPLET" => 0, "B" => 0, "BIG" => 0, "BLINK" => 0, "BLOCKQUOTE" => 0, "BODY" => 0, "CAPTION" => 0, "CENTER" => 0, "CITE" => 0, "CODE" => 0, "COMMENT" => 0, "DD" => 0, "DFN" => 0, "DIR" => 0, "DIV" => 0, "DL" => 0, "DT" => 0, "DT" => 0, "EM" => 0, "EMBED" => 0, "FONT" => 0, "FORM" => 0, "FRAME" => 0, "FRAMESET" => 0, "H1" => 0, "H2" => 0, "H3" => 0, "H4" => 0, "H5" => 0, "H6" => 0, "HEAD" => 0, "HTML" => 0, "I" => 0, "IFRAME" => 0, "ILAYER" => 0, "KBD" => 0, "LAYER" => 0, "LISTING" => 0, "MAP" => 0, "MARQUEE" => 0, "MENU" => 0, "MULTICOL" => 0, "NOBR" => 0, "NOEMBED" => 0, "NOFRAMES" => 0, "NOLAYER" => 0, "NOSCRIPT" => 0, "OBJECT" => 0, "OL" => 0, "OPTION" => 0, "PARAM" => 0, "PRE" => 0, "S" => 0, "SAMP" => 0, "SCRIPT" => 0, "SELECT" => 0, "SERVER" => 0, "SMALL" => 0, "SPAN" => 0, "STRIKE" => 0, "STRONG" => 0, "STYLE" => 0, "SUB" => 0, "SUP" => 0, "TABLE" => 0, "TD" => 0, "TEXTAREA" => 0, "TFOOT" => 0, "TH" => 0, "THEAD" => 0, "TITLE" => 0, "TR" => 0, "TT" => 0, "U" => 0, "UL" => 0, "VAR" => 0 ); $alltags = array( "!--", "!DOCTYPE", "A", "ADDRESS", "APPLET", "AREA", "B", "BASE", "BASEFONT", "BGSOUND", "BIG", "BLINK", "BLOCKQUOTE", "BODY", "BR", "CAPTION", "CENTER", "CITE", "CODE", "COL", "COLGROUP", "COMMENT", "DD", "DFN", "DIR", "DIV", "DL", "DT", "DD", "DT", "EM", "EMBED", "FONT", "FORM", "FRAME", "FRAMESET", "H1", "H2", "H3", "H4", "H5", "H6", "HEAD", "HR", "HTML", "I", "IFRAME", "ILAYER", "IMG", "INPUT", "ISINDEX", "KBD", "KEYGEN", "LAYER", "LI", "LINK", "LISTING", "MAP", "MARQUEE", "MENU", "META", "MULTICOL", "NOBR", "NOEMBED", "NOFRAMES", "NOLAYER", "NOSCRIPT", "OBJECT", "OL", "OPTION", "P", "PARAM", "PLAINTEXT", "PRE", "S", "STRIKE", "SAMP", "SCRIPT", "SELECT", "SELECT", "SERVER", "SMALL", "SPACER", "SPAN", "STRIKE", "STRONG", "STYLE", "SUB", "SUP", "TABLE", "TBODY", "TD", "TEXTAREA", "TFOOT", "TH", "THEAD", "TITLE", "TR", "TT", "U", "UL", "VAR", "WBR" ); $require = array( "THEAD" => "TABLE", "TH" => "TABLE", "TFOOT" => "TABLE", "TBODY" => "TABLE", "TD" => "TABLE", "TR" => "TABLE", "LI" => array("OL", "UL", "DIR", "MENU"), "FRAME" => "FRAMSET", "INPUT" => "FORM", "SELECT" => "FORM", "TEXTAREA" => "FORM", "PARAM" => array("APPLET", "EMBED", "OBJECT"), "WBR" => "NOBR", "TITLE" => "HEAD", "LINK" => "HEAD", "OPTION" => "SELECT", "DT" => "DL", "DD" => "DL", "HEAD" => "HTML", "BODY" => "HTML" ); $mal_place = array("THEAD" => 0, "TH" => 0, "TFOOT" => 0, "TBODY" => 0, "TD" => 0, "TR" => 0, "LI" => 0, "FRAME" => 0, "INPUT" => 0, "SELECT" => 0, "TEXTAREA" => 0, "PARAM" => 0, "WBR" => 0, "TITLE" => 0, "LINK" => 0, "OPTION" => 0, "DT" => 0, "DD" => 0, "HEAD" => 0, "BODY" => 0 ); $retour = array( "ouvertures multiples" => array(), "non ouverte" => $openclosetags, "non fermee" => $openclosetags, "mal placee" => $mal_place, "mal emboitee" => array(), "inconnue" => array() ); $lines = _AT_file($url); if (!$lines) return FALSE; $file = implode(" ", $lines); $file = preg_replace("/\s+/", " ", $file); $file = preg_replace("/<!--[^>]+>/", "", $file); preg_match_all("/<(\/?[^> ]+)[^>]*>/i", $file, $balises); $pile_balise = array(); for ($i=0;$i<sizeof($balises[0]);$i++) { $balise = strtoupper($balises[1][$i]); if (!in_array($balise, $alltags) && !in_array(substr($balise, 1, strlen($balise)), $alltags) && !in_array($balise, $retour["inconnue"])) { $retour["inconnue"][] = $balise; } else { /* Fermeture d'une balise */ if (substr($balise, 0, 1) == "/") { $balise = substr($balise, 1, strlen($balise)); if (isset($openclosetags[$balise])) { $openclosetags[$balise]--; if (($parent = array_pop($pile_balise)) != $balise) $retour["mal emboitee"][$balise] = $parent; if ($openclosetags[$balise] < 0) { $openclosetags[$balise] = 0; $retour["non ouverte"][$balise]++; } } } /* Ouverture d'une balise */ else { if (isset($require[$balise])) { if (is_array($require[$balise])) { $ok = FALSE; $j=0; while ($j<sizeof($require[$balise]) && !$ok) { if ($openclosetags[$require[$balise][$j]] > 0) $ok = TRUE; $j++; } if (!$ok) { $retour["mal placee"][$balise]++; } } else { if ($openclosetags[$require[$balise]] <= 0) { $retour["mal placee"][$balise]++; } } } if (isset($openclosetags[$balise])) { if (!in_array($balise, $notonlyonce) && ($openclosetags[$balise] > 0) && !in_array($balise, $retour["ouvertures multiples"])) { $retour["ouvertures multiples"][] = $balise; } array_push($pile_balise, $balise); $openclosetags[$balise]++; } } } } foreach ($openclosetags as $key => $value){ if ($value > 0) $retour["non fermee"][$key] = $value; } return $retour; }/// ... Anonymus$an_array = html_check($url);foreach($an_array as $k => $v){ echo"<p><b>".$k."</b>"; foreach($v as $key => $value) if ($value>0) echo"<br>".$key."--".$value; }/// ... Fin Anonymus?> Pour essayer ce script, tu remplaces , tout en haut, l'url vers google par ton url, ou toute autre url. Tu mets ce script tout seul sur une page, et tu lances la page. Tu auras un résultat comme ceci (pas pour google, ça c'est le résultat de mon site !! ) : ouvertures multiples non ouverte DIV--1 UL--1 non fermee CENTER--1 mal placee mal emboitee inconnue L'avantage de cette fonction est qu'elle est évolutive, et tu peux donc la transformer facilement pour y ajouter tes balises préférées. ps : Juste un mot, sur les scripts Nexen. S'ils ont une librairie importante de scripts, il est vrai aussi qu'ils ne font pas souvent le ménage. Ce script date de 2001, et marche encore. Mais beaucoup ne marchent plus, ce qui est assez dommage (changements version, non testée suffisamment,..). De plus, ils sont, comme tu peux t'en rendre compte, assez mal documentés. Ceci dit, avec un peu de connaissances en php, tu peux t'en servir, les modifier, etc... ils fournissent d'excellentes bases pour tous ceux qui veulent disposer de librairies completes, rapides, et pas cheres A.
Guest narcisse Posté 3 Octobre 2004 Posté 3 Octobre 2004 Bonjour et merci pour cette adaptation Je rencontre cependant un problème avec le script, lorsque je lance la page, j'obtiens cela ouvertures multiples non ouverte non fermee mal placee mal emboitee inconnue Sans indication (malheureusement) des balises ouvertes et fermées. Ceci dit, avec un peu de connaissances en php, tu peux t'en servir, les modifier, etc... ils fournissent d'excellentes bases pour tous ceux qui veulent disposer de librairies completes, rapides, et pas cheres J'ai beau lire votre topic epinglé sur le PHP + un livre que j'ai acheté, je n'y comprend toujours rien, il y a comme un blocage.
Anonymus Posté 3 Octobre 2004 Posté 3 Octobre 2004 Tu es dans le cas où il n'y a pas d'erreurs J'ai mis comme exemple google, mais j'ai précisé que la sortie d'écran etait celle de mon site. En effet, il n'y a pas d'erreurs sur google au niveau des balises, j'aurais eu la meme sortie d'ecran que toi. alors qu'il y en a sur mon site, ce qui est plus représentatif Essaies en changeant la ligne : $url = "http://www.google.com"; par $url = "http://www.labonneadresse.com"; Qu'est ce que tu ne comprends pas, en Php ? Que l'on puisse te faire avancer, t'aider A.
Guest narcisse Posté 3 Octobre 2004 Posté 3 Octobre 2004 J'essaye d'apprendre tout seul mais je ne dois pas avoir assez d'imagination pour créer mes propres programmes Là en l'occurence, maintenant, je vais essayer de faire un formulaire qui ira chercher directement une URL rentrer dans ce formulaire et non celle rentrer dans le code source. On verra bien si cela me prend un an ou plus
Anonymus Posté 3 Octobre 2004 Posté 3 Octobre 2004 Un tuyau : Utilises alors le 'method=GET' pour ton formulaire. Ainsi, tu pourras soit utiliser le formulaire, soit utiliser l'url directement Autrement dit, pour un fichier 'formulaire.php' et un fichier 'reponse.php', avec le fichier 'reponse.php', tu pourras te passer du fichier formulaire.php, et rentrer directement dans la barre d'adresse : reponse.php?url=http://www.machintrucchose.com A.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant