Webmaster Hub: function d'encodage - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

function d'encodage Noter : -----

#1 L'utilisateur est hors-ligne   ste 

  • Groupe : Membre
  • Messages : 166
  • Inscrit(e) : 22-mars 04
  • Localisation:Villeneuve-sur-Lot
  • Société:***

Posté 05 juin 2004 - 08:47

bonjour,

j'ai créée à moment donné une function en PHP, dont le but est de remplacer des symboles, dans un fichier source texte, par l'équivalent en élèment XHTML, dans la page web.

voilà la function :
function code2xhtml($var) { // changer les symboles en xhtml !
    if(ereg("^\#", $var) || ereg("^(\`)", $var) || ereg("^(\%)", $var) || ereg("^\*", $var)) {
      if(ereg("^\#", $var)) {
        if(preg_match("/^(\#{3})/", $var))
            $var = preg_replace("/^(\#{3})(.+)(\#{3})$/", "<h3>$2</h3>\n", $var); // h3
        elseif(preg_match("/^(\#{2})/", $var)) {
            if(ereg("\|", $var)) 
                $var = preg_replace("/^(\#{2})(.+)\|(.+)(\#{2})$
/", "<h2 class=\"$2\">$3</h2>\n", $var); // h2
            else $var = preg_replace("/^(\#{2})(.+)(\#{2})$/", "<h2>$2</h2>\n", $var); // h2
        }
        elseif(preg_match("/^(\#)/", $var))
            $var = preg_replace("/^(\#)(.+)(\#)$/", "<h1>$2</h1>\n", $var); // h1
      }
    
      if(ereg("^(\`)", $var)) {
        if(preg_match("/^\`dl/", $var))
            $var = preg_replace("/^(\`dl)\|(.+)$/", "<dl class=\"$2\">\n", $var); // <dl>
        if(preg_match("/^\`dt/", $var))
            $var = preg_replace("/^(\`dt)\|(.+)$/", "<dt>$2</dt>\n", $var); // <dt>
        elseif(preg_match("/^\`/", $var)) {
            $var = preg_replace("/^(\`)(.+)(\`)$/", "<dd>$2</dd>\n", $var); // <dd>
            
            if($var == "<dd> </dd>\n") $var = "<dd>&nbsp;</dd>\n";
        }
        if(preg_match("/^\`fdl/", $var))
            $var = preg_replace("/^(\`fdl)$/", "</dl>\n", $var); // </dl>
        
      }
    
      if(ereg("^(\%)", $var)) {
        if(preg_match("/^(\%{2})/", $var))
            $var = preg_replace("/^(\%{2})$/", "</ul>\n", $var); // </ul>
        elseif(preg_match("/^(\%)/", $var))
            $var = preg_replace("/^(\%)$/", "<ul>\n", $var); // <ul>
      }
    
      if(preg_match("/^\*/", $var))
            $var = preg_replace("/^(\*)(.+)$/", "<li>$2</li>\n", $var); // li
    }
    else { // si ne correspond pas aux premières conditions !
        if($var == "") $var = "<p>&nbsp;</p>\n"; // <p> vide !
        elseif(preg_match("/^\{p/", $var)) 
          $var = preg_replace("/(\{p)\|([^\]]*)\|([^\
]]*)(\})/", "<p class=\"$2\">$3</p>\n", $var); // mise en gras
        else $var = "<p>$var</p>\n"; // <p>
    }
    
    return($var);
}


On fait certainement mieux, certes et je ne dirais pas le contraire ; le soucis est que je ne sais pas en quoi ou pourquoi, serait plus juste, la condition else (// si ne correspond pas aux premières conditions !) ne se vérifie jamais...
Résultat, je n'arrive pas à avoir l'implémentation des élèments p !

PS : Suis-je clair ?

Ce message a été modifié par ste - 05 juin 2004 - 08:48.

0

#2 L'utilisateur est hors-ligne   Sylvain Trovalet 

  • Groupe : Membre
  • Messages : 98
  • Inscrit(e) : 22-avril 04
  • Localisation:BZH

Posté 09 juin 2004 - 10:38

ça ne répond pas tout à fait à ta question mais je pense que cela peut t'apporter une piste à suivre.

/**
 * convertiso()
 * Fonction de remplacement de caractères accentués par leur équivalent ISO
 * (on peut rajouter des caractères dans le tableau $arr)
 * 
 * _AT_param $str la chaine de caractère que l'on veut codifier
 * _AT_return la chaine de caractère codifiée 
 */
function convertiso ($str){
	$arr=array(
	"à"=>"&agrave;",
	"â"=>"&acirc;",
	"ä"=>"&auml;",
	"é"=>"&eacute;",
	"è"=>"&egrave;",
	"ê"=>"&ecirc;",
	"ë"=>"&euml;",
	"î"=>"&icirc;",
	"ï"=>"&iuml;",
	"ù"=>"&ugrave;",
	"û"=>"&ucirc;",
	"ü"=>"&uuml;",
	"ô"=>"&ocirc;",
	"ö"=>"&ouml;",
	);
	foreach($arr as $key=>$element)
	// Il faut cependant savoir que str_replace est plus rapide que ereg_replace,
	// mais n'est disponible qu'a partir de PHP 3.0.6
	{$str=str_replace($key,$element,$str);}	
	return $str; 
}

0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)