Préparation.
Le jus ensuite récupéré pourra être mis dans une saucière.
Alternatives.
Divers ingrédients peuvent être rajoutés comme des tomates ou des champignons.

Création de site web/Web-design
Le Web-design renseigne sur la conception et l'évaluation de site web ergonomique.
Critères de qualité.
Pour être ergonomique, un site doit avoir :
Il doit être adapté aux besoins des utilisateurs et réutilisable.
Le site doit s'adapter au niveau des utilisateur pas l'inverse.
le site doit être accessible depuis différentes plateformes.
Développement.
Le développement web se base sur 2 points forts :
Évaluation.
Elle est de 2 types :
Phase de test.
Soumettre à des utilisateurs lambda des scénarios type et voir comment ils se débrouillent. cela se fait sur un échantillon (10 à 15 personnes).
Principes d' utilisabilité.
auxquels s'appliquent les règles ergonomiques correspondantes.
Architecture cohérente.
L'architecture doit s'adapter aux besoins.

Pose d'un closoir
Le closoir est un produit utilisé en toiture pour réaliser l'étanchéité du faitage ou de l'arêtier. Il se présente en rouleau à dérouler sur les surfaces considérées.
= Mise en œuvre =

Programmation PHP/Exemples/DomXml
Les documents au format XML ont des imbrications parfois complexes et il n'est pas rare de devoir avoir recours à plusieurs fonctions pour faire le travail de décapsulation du contenu.
À travers cet exemple pratique nous écrirons une fonction pour convertir tout document XML en tableau suivant l'approche du web2 qui tient en deux tags très galvaudés [meta] et [data].
Écriture d'un XML complexe.
<?xml version="1.0" encoding="UTF-8"?>
<root>
 <tag1 m1="attTag1" m2="att2">
 <sous-tag1>texte sous-tag1
 <sous-tag2></sous-tag2>
 texte tag1
 </sous-tag1>
 </tag1>
 <tag1>
 <sous-tag1>texte sous-tag1
 <sous-tag2 att1="att2" att3="att3"></sous-tag2>
 </sous-tag1>
 <tag3>
 <sous-tag1>texte sous-tag1
 <sous-tag2 att1="attribut1"></sous-tag2>
 </sous-tag1>
 <etEncoreUnTagSuperflu>
 <sous-tag1>texte sous-tag1
 <sous-tag2>test</sous-tag2>
 </sous-tag1>
 <tag1>
 <p><b><sous-tag1>texte sous-tag1
 <sous-tag2 att1="attribut1" /></b>
 </sous-tag1>
 ceci</p>est du body texte à extraire
 </tag1>
 </etEncoreUnTagSuperflu>
 text de début ou de fin
 </tag3>
 </tag1>
 <tagNfo id="1" description="description">texteDescription</tagNfo>
</root>
Création de la fonction.
On doit maintenant écrire une fonction, la plus optimale possible, pour charger "document.xml" dans un tableau...
Cette fonction doit :
On écrit la fonction récursive qui décapsulera chaque tag en deux sous-tableaux par tag ([meta] ou attributs ) et ([data] ou nœud texte)
Cette fonction doit :
 function getAttribute($node)
 {// >((dom)node) ((array)tab)>
 $tab=array();
 foreach($node->attributes() as $k1->$v1)
 $tab[$k1->{"}->name]=$k1->{"}->value;
 return $tab;
Description :
On s'attaque ensuite au plus gros du travail de notre convertisseur à savoir codice_3 :
 function domxml2array($node,&$tab,&$i)
 {// >((dom)node, (array)tab, (int)i) ((array)tab)>
 if($next=$node->first_child()) #1
 do
 switch($next->node_type()) #2
 case 3:
 $tab['data']=$next->node_value();
 break;
 case 1:
 $tab[$next->node_name()."#".++$i]['meta'] = $this->getAttribute($next);
 $this->domxml2array($next,$tab[$next->node_name()."#".$i],$i);
 break;
 }while($next=$next->next_sibling()); #3
 return $tab;
Description :
La fonction utilitaire print_r_html disponible sur php.net permettra de déposer le contenu à l'écran :
function print_r_html($data,$return_data=false)
 $data = print_r($data,true);
 $data = str_replace( " ","&nbsp;", $data);
 $data = str_replace( "\r\n","<br/>\r\n", $data);
 $data = str_replace( "\r","<br/>\r", $data);
 $data = str_replace( "\n","<br/>\n", $data);
 if (!$return_data)
 echo $data;
 else
 return $data;
Création de la classe.
On élabore une classe utilitaire pour php4 à implémenter au fur et à mesure :
<?php
Class DomTree
 var $tab = array();
 var $domNode;
 function DomTree($xml,$type)
 {// >((string)xml,(int)type) ((dom)node)>
 if(!$type)
 $this->domNode = domxml_open_file($xml);
 } else {
 $this->domNode = domxml_open_mem($xml);
 function getTag($tag)
 {// >((string)tag) ((dom)node)>
 return $this->domNode->get_elements_by_tagname($tag);
 function getAttribute($node)
 {// >((dom)node) ((dom)node)>
 $tab=array();
 foreach($node->attributes() as $k1->$v1)
 $tab[$k1->{"}->name]=$k1->{"}->value;
 return $tab;
 function domxml2array($node,&$tab,&$i)
 {// >((dom)node, (array)tab, (int)i) ((array)tab)>
 if($next=$node->first_child())
 do
 switch($next->node_type()) 
 case 3:
 $tab['data']=$next->node_value(); 
 break;
 case 1:
 $tab[$next->node_name()."#".++$i]['meta'] = $this->getAttribute($next);
 $this->domxml2array($next,$tab[$next->node_name()."#".$i],$i);
 break;
 }while($next=$next->next_sibling());
 return $this->tab=$tab;
Application.
Dans un fichier test.php on instancie la classe et on l'exécute:
<?php
 header("Cache-Control: no-cache, must-revalidate");
 header("Content-Type: text/html");
 // appel de la classe
 require_once"DomTree.class.php";
 // création de l'objet
 $doc = new DomTree('document.xml');
 // sélection du nœud
 $root = $doc->getTag('root');
 // conversion du nœud root en tableau
 $tab = $doc->domxml2array($root[0]);
 // affichage du tableau
 print_r_html($tab);
Aperçu.
On obtient un arbre structuré easy2use pour le web2
Array
 [tag1#1] => Array
 [meta] => Array
 [m1] => attTag1
 [m2] => att2
 [sous-tag1#2] => Array
 [meta] => Array
 )
 [data] => texte tag1
 [sous-tag2#3] => Array
 [meta] => Array
 )
 [data] => 
 )
 [data] => 
 [tag1#4] => Array
 [meta] => Array
 )
 [sous-tag1#5] => Array
 [meta] => Array
 )
 [data] => texte sous-tag1
 [sous-tag2#6] => Array
 [meta] => Array
 [att1] => att2
 [att3] => att3
 [data] => 
 [tag3#7] => Array
 [meta] => Array
 )
 [sous-tag1#8] => Array
 [meta] => Array
 )
 [data] => texte sous-tag1
 [sous-tag2#9] => Array
 [meta] => Array
 )
 [data] => 
 text de début ou de fin
 [etEncoreUnTagSuperflu#10] => Array
 [meta] => Array
 )
 [sous-tag1#11] => Array
 [meta] => Array
 )
 [data] => texte sous-tag1
 [sous-tag2#12] => Array
 [meta] => Array
 )
 [data] => test
 [data] => 
 [tag1#13] => Array
 [meta] => Array
 )
 [p#14] => Array
 [meta] => Array
 )
 [b#15] => Array
 [meta] => Array
 )
 [sous-tag1#16] => Array
 [meta] => Array
 )
 [data] => texte sous-tag1
 [sous-tag2#17] => Array
 [meta] => Array
 [att1] => attribut1
 [data] => 
 ceci
 [data] => est du body texte à extraire
 )
 [tagNfo#18] => Array
 [meta] => Array
 [id] => 1
 [description] => description
 [data] => texteDescription
En bref.
On a une fonction fort utile à porter sur php5 ou à optimiser histoire de ne plus avoir d'incréments dans les données du tableau.

Programmation/Comparaisons
Une comparaison est une expression booléenne. C'est à dire qu'elle a pour valeur vrai ou faux.
Exemple : codice_1 a pour valeur vrai.
Les opérateurs de comparaison sont les suivants :
Comme dans toute expression, les opérandes peuvent utiliser d'autres expressions, des variables etc...
Exemple :
 A : ENTIER = 5
 B : ENTIER = -3
Pour cet exemple, l'expression codice_8 retourne faux.
La comparaison est souvent utilisée dans les structures de contrôle pour assigner une condition à l'exécution (répétitive ou non) d'une série d'instructions :
 SI A > B ALORS
 FIN SI
 TANT QUE B < 10 FAIRE
 FIN TANT QUE

Photographie/Fabricants/Nikon/Nikon AI-S Micro-Nikkor 55 mm f/2,8

Photographie/Fabricants/Nikon/Nikon AF-D Micro-Nikkor 60 mm f/2,8

Photographie/Fabricants/Nikon/Nikon PC Micro-Nikkor 85 mm f/2,8 D

Photographie/Fabricants/Nikon/Nikon AI-S Micro-Nikkor 105 mm f/2,8

Photographie/Fabricants/Nikon/Nikon AF-D Micro-Nikkor 105 mm f/2,8

Photographie/Fabricants/Nikon/Nikon AF-D Micro-Nikkor 200 mm f/4 IF-ED

Photographie/Fabricants/Nikon/Nikon AF-D Micro-Nikkor 70-180 mm f/4,5-5,6

Photographie/Fabricants/Olympus/Olympus Zuiko 35 mm f/3,5 Macro

Photographie/Fabricants/Olympus/Olympus Zuiko Digital ED 50 mm f/2 Macro