IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Chaînes de caractères > Expressions régulières
        Transformer les mails et urls en liens cliquables
        Enlever les accents d'une chaîne
        Verifie que le texte entré comporte uniquement des chiffres et des opérateurs arithmétiques
        BBCode simple
        Mettre des mots en surbrillance dans un texte



Auteur : iubito
Version : 11/01/2006
Transformer les mails et urls en liens cliquables
//Transform URL and e-mails into links
$texte = eregi_replace(
   "(^|[ \t\r\n\(:,]+)?". //punctuation before URL
   //Protocole
   "((ftp|http|https|gopher|mailto|pop|smtp|news|nntp|telnet|wais|".
   "file|imap|prospero|peercast|ed2k|irc|aim|mime|ftam|pnm|rtsp|ldap):".
   "[A-Za-z0-9/](([A-Za-z0-9$|.+!*()\.,;/?:@&~=_-])|%[A-Fa-f0-9]{2})+".
   "[A-Za-z0-9/&#=_-]+)". //valid chars at the end of an URL
   "([\.\),:;? \t\r\n]+([^A-Za-z0-9/&%#=_-]|$))?", //punctuation not followed by valid char
 "\\1<a href='\\2' target=\"blank\">\\2</a>\\6", $texte);

$texte = eregi_replace("(^|[ \t\r\n\(,<>:]+)?".
   "([_a-z0-9-]+[^:/=](\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+(\?[&;A-Za-z0-9=_-]+)?)".
   "([\.\),:;<>? \t\r\n]+([^A-Za-z0-9/&%#=_-]|$))?",
 "\\1<a href=\"mailto:\\2\">\\2</a>\\6", $texte); 

Auteur : iubito
Version : 11/01/2006
Enlever les accents d'une chaîne
/**
 * Enlève les accents
 *
 * Utile pour le tri alphabétique.
 * @param string $str
 * @author iubito
 * @return string
 */
function removeDiacritics($str)
{
   return strtr($str,
   'àâäåãáÂÄÀÅÃÁæÆçÇéèêëÉÊËÈïîìíÏÎÌÍñÑöôóòõÓÔÖÒÕšùûüúÜÛÙÚýÿž',
   'aaaaaaaaaaaaaacceeeeeeeeiiiiiiiinnoooooooooosuuuuuuuuyyz');
}

Auteur : doof
Version : 11/01/2006
Verifie que le texte entré comporte uniquement des chiffres et des opérateurs arithmétiques
Il vaut mieux vérifier avant qu'elle ne renvoie pas d'erreur, une parenthèse non fermée ou une division par zéro va entrainer une erreur.
if (preg_match('#(^[\d(]+[ +*()/\d-]*[\d)]+$)#', $txt)) {
  ...
  ...
}
Avec ce masque, on peut même remplacer toutes les opérations par leur resultat dans une chaîne quelconque :
$txt=@preg_replace('#([\d(]+[ +*()/\d-]*[\d)]+)#e', "'<b>'.round($0, 3).'</b>'", $txt);

Auteur : Caerbannog
Version : 16/01/2006
BBCode simple
<?

function bb($t)
{
     $t = htmlentities($t);
     $in = Array("![(barre|hr)]!iU",
                 "![(barre|hr)s*=?s*([0-9]{1,2}|100)(%?)]!iU",

         "![(b|g)](.*)[/\1]!iUs",
         "!(.*)!iUs",
         "![(u|s)](.*)[/\1]!iUs",
       
         "![(center|centre)](.*)[/\1]!iUs",
         "![(right|droite|droit)](.*)[/\1]!iUs",
         "![(left|gauche)](.*)[/\1]!iUs",
         "![(justify|justifie)](.*)[/\1]!iUs",
       
         "![(color|couleur)s*=?s*(red|gray|blue|lightgrey|green|black|#[[:xdigit:]]{6})](.*)[/\1]!iUs",
         "![(size|taille)s*=?s*([0-9]+)](.+)[/\1]!iUs",
       
         "![(h|title|titre)s*=?s*([2-4])](.+)[/\1[2-7]?]!iU",
       
         "![(url|lien)]s*(http://[^[]<>]+)s*[/\1]!iU",
         "![(url|lien)]s*([[:alnum:] &;-]+)s*[/\1]!iUe",
         "![(url|lien)s*=?s*(http://[^[]<>]+)s*](.*)[/\1]!iUs",
         "![(url|lien)s*=?s*([[:alnum:] &;-]+)s*](.*)[/\1]!iUse",
             "!  !");
                 
     $out = Array("<hr />",
                  "<hr width="$2$3" />",

          "<b>$2</b>",
          "<i>$1</i>",
          "<u>$2</u>",
       
          "<div style="text-align: center;">$2</div>",
          "<div style="text-align: right;">$2</div>",
          "<div style="text-align: left;">$2</div>",
          "<div style="text-align: justify;">$2</div>",
       
          "<span style="color: $2;">$3</span>",
          "<span style="font-size: $2px;">$3</span>",
       
          "<h$2>$3</h$2>",

          "<a href="$2">$2</a>",
          "'<a href="" . FNAME . "' . htmlentities(urlencode(html_entity_decode("$2"))) . '">$2</a>'",
          "<a href="$2">$3</a>",
          "'<a href="" . FNAME . "' . htmlentities(urlencode(html_entity_decode("$2"))) . '">$3</a>'",
         
              "&nbsp; ");
       
     for($i = 0; $i < count($in) - 1; $i++)
     {
     $t = preg_replace($in[$i], $out[$i], $t);
     }
   
     $t = preg_replace_callback("![(list|liste)s*=?s*([1IaA]?)]s*(:?[*](.*)s*)+[/\1]!iUs",
                                create_function('$matches',
"switch($matches[2])
{
     case '1':
     $result = '<ol class="un">';
     break;
     case 'i':
     $result = '<ol class="ii">';
     break;
     case 'I':
     $result = '<ol class="II">';
     break;
     case 'a':
     $result = '<ol class="aa">';
     break;
     case 'A':
     $result = '<ol class="AA">';
     break;
     case '':
     $result = '<ul>';
     break;
}
for($i = 3; $i < count($matches) - 1; $i++)
{
     $result.= '<li>' . $matches[$i] . '</li>';
}
return $result . '</' . substr($result, 1, 2) . 'l>';"),
                        $t);
     return nl2br($t);
}

?>
Pour avoir des listes numérotées
<style type="text/css">
.un {
     list-style-type: decimal;
}
.aa {
     list-style-type: lower-alpha;
}
.AA {
     list-style-type: upper-alpha;
}
.ii {
     list-style-type: lower-roman;
}
.II {
     list-style-type: upper-roman;
}
</style>
Utilisation
<?
echo bb("[g]Titre en Gras.[/g]\n[barre]\n[droite]Texte séparé 
par une barre horizontale aligné à droite.[/droite]");
?>

Auteur : Moloc'h
Version : 16/01/2006
Mettre des mots en surbrillance dans un texte
<?
function str_light ( $chaine , $word )
    {
    $replacement = '' ;

            foreach ( $word as $val )
            {    
            $replacement .= $val . '|' .  upper_word ( $val ) . '|' ;
            }

        $replacement = substr ( $replacement , 0 , strlen ( $replacement ) - 1 ) ;
        $chaine = eregi_replace ( $replacement , 
'<span style="font-weight: bold;background-color: #FF0000;"></span>' , $chaine ) ;

    return $chaine ;
    }

    function upper_word ( $str )
    {
    $str = strtr ( $str , 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ' , 
'aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn' ) ;
    $str = strtoupper ( $str ) ;
    return $str ;
    }
?> 
Utilisation
<?
$word = array ( 'de' , 'du' ,  'des' , 'le' , 'la' , 'les' , 'un' , 'une' , ',' , 'et' , 'ou' ) ;
$str = "L'édition de cette année du 20 au 27 mars partout en France traitera des dernières tendances en vogue, 
comme le phénomène des blogs ou encore l'internet mobile.";
    
echo str_light ( $str , $word ) ;
?> 


Consultez les autres pages sources


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.