Aller au contenu

Script Nexen


Guest narcisse

Sujets conseillés

Guest narcisse

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.

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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 :lol:;)

A.

Lien vers le commentaire
Partager sur d’autres sites

Guest narcisse

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.

Lien vers le commentaire
Partager sur d’autres sites

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 :lol:

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.

Lien vers le commentaire
Partager sur d’autres sites

Guest narcisse

J'essaye d'apprendre tout seul mais je ne dois pas avoir assez d'imagination pour créer mes propres programmes :blush:

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 :1eye:

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...