Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Html {
- /**
- * Permet de générer facilement de l'HTML
- *
- * @author PifyZ
- * @version 1.0 19/02/2012
- **/
- private $html = '';
- private $inline = array('br', 'hr', 'img', 'input'); /* Ils ne sont pas tout listés (à changer au besoin) */
- private $balisesOuverte = array();
- public function __construct() {
- /* Vide */
- }
- public function __call($balise, $attributs) {
- $attributs = implode('|', $attributs);
- $attributs = explode('|', $attributs);
- $return = '<' . $balise;
- foreach ($attributs AS $attribut) :
- $pregMatch1 = '#(.[^:]+):(.+)#';
- $pregReplace1 = ' $1="$2"';
- $pregMatch2 = '#texte:(.+)#';
- $pregReplace2 = '$1';
- if (preg_match($pregMatch1, $attribut) AND !preg_match($pregMatch2, $attribut)) :
- $return .= preg_replace($pregMatch1, $pregReplace1, $attribut);
- endif;
- $texte = (preg_match($pregMatch2, $attribut)) ? preg_replace($pregMatch2, $pregReplace2, $attribut) : '';
- endforeach;
- if (in_array($balise, $this->inline)) :
- $return .= ' />';
- else :
- $this->balisesOuverte[] = $balise;
- $return .= '>' . $texte;
- endif;
- $this->html .= $return;
- return $this;
- }
- public function texte($texte) {
- $this->html .= $texte;
- return $this;
- }
- public function fin() {
- $this->html .= '</' . array_pop($this->balisesOuverte) . '>';
- return $this;
- }
- public function __toString() {
- return $this->html;
- }
- }
- /* Exemple d'utilisation (non testé) ->
- $html = new Html();
- $html->h1('texte:Titre de taille 1')->fin()
- ->p('texte:Texte')->fin();
- echo $html;
- Ou encore (génère le même code) (non testé) ->
- $html = new Html();
- $html->h1()
- ->texte('Titre de taille 1')
- ->fin()
- ->p()
- ->texte('Texte')
- ->fin();
- echo $html;
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement