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 arythmétiques.
        BBCode simple
        Mettre des mots en surbrillance dans un texte

rechercher
precedent    sommaire    suivant    telecharger


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 arythmé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 hrizontale 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 ) ;
?>

rechercher
precedent    sommaire    suivant    telecharger

Valid XHTML 1.1!Valid 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.