IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Chaînes de caractères
        Gérer de l'UTF8 sans tenir compte de l'encodage du navigateur
        Crypter une adresse email pour éviter le spam
        Un BBCode pour faire des smileys
        Melanger une phrase
        2.1. Expressions régulières (5)
                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
Gérer de l'UTF8 sans tenir compte de l'encodage du navigateur
Deux fonctions qui permettent écrire de l'arabe, du chinois, du russe...
sans se soucier de savoir si l'utilisateur a forcé le codage ou laissé le choix "codage auto" dans le navigateur.
/**
 * utf8entities
 *
 * Pour améliorer l'htmlentities() pour les chaînes en UTF-8 !
 *
 * Transforme une chaîne UTF8 en entitées HTML & # nnn; n={0..9} visible
 * dans tous les navigateurs.
 * @param string $source Encoded using UTF-8
 * @return string String of unicode entities
 * @see http://www.php.net/utf8_decode
 * @see http://www.randomchaos.com/document.php?source=php_and_unicode
 */
function utf8entities($str)
{
   if (!is_string($str)) die('<b>Warning:</b><br/>'
                     .'<tt>utf8entities(string $source)</tt> : $source should be a string.');
   
   //utf8 to unicode
   $unicode = array();       
   $values = array();
   $lookingFor = 1;
   $len = strlen($str);
   for ($i = 0; $i < $len; $i++ )
   {
      $thisValue = ord($str[$i]);
      if ($thisValue < 128)
         $unicode[] = $thisValue;
      else
      {
         if (count($values) == 0)
            $lookingFor = ($thisValue < 224)?2:3;
         $values[] = $thisValue;
         if (count($values) == $lookingFor)
         {
            $number = ($lookingFor == 3)
               ?(($values[0]%16)*4096) + (($values[1]%64)*64) + ($values[2]% 64)
               :(($values[0]%32)*64) + ($values[1]%64);
            $unicode[] = $number;
            $values = array();
            $lookingFor = 1;
         } // if
      } // if
   } // for
   
   $entities = '';
   foreach($unicode as $value)
      $entities .= $value<128 ? chr($value) : ('&#'.$value.';');
   return $entities;
}


/**
 * Retourne <kbd>true</kbd> si la string ou l'array de string est encodé en UTF8.
 *
 * Exemple d'utilisation. Vous voulez afficher un fichier texte sans vous soucier
 * de son encodage (UTF-8 ou 8-bit).
 * $array = file('fichier.txt');
 * $isUTF8 = isUTF8($array);
 * foreach($array as $val)
 * {
 *     echo $isUTF8?utf8entities($val)
 *                 :htmlentities($val);
 * }
 * @param mixed A string, or an array from a file() function.
 * @return boolean
 * @author iubito
 */
function isUTF8($string)
{
   if (is_array($string))
   {
      $enc = implode('', $string);
      return @!((ord($enc[0]) != 239) && (ord($enc[1]) != 187) && (ord($enc[2]) != 191));
   }
   else
   {
      return (utf8_encode(utf8_decode($string)) == $string);
   }   
}
Ma fonction utf8entities ne transforme pas les & en &amp;. Ainsi si on passe "&eacute;" ou "é" ça imprime "é" à l'écran. Mais c'est vrai que ça peut être un bug vu que ça se comporte pas exactement comme htmlentities. Il en va de même pour < et >. Donc si on veut exactement le même comportement qu'htmlentities, il faut modifier la ligne (vers la fin du code)
$entities .= $value<128 ? chr($value) : ('&#'.$value.';');
en
$entities .= $value<128 ? htmlentities(chr($value)) : ('&#'.$value.';');

Auteur : trakiss
Version : 11/01/2006
Crypter une adresse email pour éviter le spam
<?php
function spam($chaine) {

  $ret_chaine='';
  $lg = strlen($chaine);

  for ($x = 0; $x < $lg; $x++) {
    $ord = ord(substr($chaine, $x, 1));
    $ret_chaine .= "&#$ord;";
   }

   echo $ret_chaine;
 }

spam("trakiss@2037.biz");
?>

Auteur : trakiss
Version : 11/01/2006
Un BBCode pour faire des smileys
<?php

function bbcode($text)
{
   $text = nl2br($text);
   
   $text = str_replace("[b]", "<b>", $text);
   $text = str_replace("[/b]", "</b>", $text);

   $text = str_replace("[u]", "<u>", $text);
   $text = str_replace("[/u]", "</u>", $text);

   $text = str_replace("[i]", "<i>", $text);
   $text = str_replace("[/i]", "</i>", $text);
   
   $text = str_replace("[center]", "<center>", $text);
   $text = str_replace("[/center]", "</center>", $text);
   
   $text = str_replace("  ", "&nbsp;&nbsp;", $text);
   
   $text = str_replace(':)','<img src="http://www.monsite.com/images/smiley/smile.gif" alt="" style="border:0"/>',$text);
   $text = str_replace(';)','<img src="http://www.monsite.com/images/smiley/hehe.gif" alt="" style="border:0"/>',$text);
   $text = str_replace(':P','<img src="http://www.monsite.com/images/smiley/langue.gif" alt="" style="border:0"/>',$text);
   $text = str_replace(':D','<img src="http://www.monsite.com/images/smiley/bigrin.gif" alt="" style="border:0"/>',$text);
   $text = str_replace(':o','<img src="http://www.monsite.com/images/smiley/bouh.gif" alt="" style="border:0"/>',$text);
   $patterns = array();
   $replacements = array();

   $patterns[] = "#\[img\](.*?)\[/img\]#si";
   $replacements[] = "<img src=\"\\1\" border=\"0\" />";

   $patterns[] = "#\[url\]([a-z0-9]+?://){1}([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)\[/url\]#is";
   $replacements[] = "<a href=\"\1\2\" target=\"_blank\" class=\"postlink\">\1\2</a>";

   $patterns[] = "#\[url\]((www|ftp)\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)\[/url\]#si";
   $replacements[] = "<a href=\"http://\\1\" target=\"_blank\" class=\"postlink\">\\1</a>";

   $patterns[] = "#\[url=([a-z0-9]+://)([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)\](.*?)\[/url\]#si";
   $replacements[] = "<a href=\"\\1\\2\">\\6</a>";

   $patterns[] = "#\[url=(([\w\-]+\.)*?[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)\](.*?)\[/url\]#si";
   $replacements[] = "<a href=\"http://\\1\">\\5</a>";

   $patterns[] = "#\[email\]([a-z0-9\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
   $replacements[] = "<a href=\"mailto:\\1\">\\1</A>";
   
   return preg_replace($patterns, $replacements, $text);
}

echo bbcode($truc);
?>

Auteur : ozzmax
Version : 17/01/2006
Melanger une phrase
$phrase = "Entre ici la phrase de ton choix, et en plus tu peux mettre 2 espaces  si tu veux";
   $matrice = split(" +",trim($phrase)); //Split la phrase dans une matrice avec les espaces comme références
   $cp = count($matrice);
   $mele = $matrice; // copie l'array pour avoir la meme grosseur
   
   echo"La phrase originale est : $phrase <br>";
   echo"La phrase mèlée est : ";
   
   for($cpt=0;$cpt<$cp;$cpt++){
      $tmp = rand(0,$cp);
      
      while(vérif($tmp,$mele)){
         $tmp = rand(0,$cp);
      }
      
      $mele[$cpt] = $tmp;
   
      $tmp-=1; //décrémente de 1 car le count ne tiens pas compte du 0
      //quand sa sort ici les mots sont mélangé on les affiche
      echo "$matrice[$tmp] ";
   }   

/*Fonction qui vérifie qu'il n'y a pas de doublons
   @param $nombre est le nombre que la classe rand génère
   @param $mele matrice passée en référence pour ne pas perdre les valeurs de la variable
   @return true si c'est un doublons
*/
function vérif($nombre,&$mele){
      for($i=0;$i<count($mele);$i++){
         if($mele[$i]==$nombre){
            return true;
         }
      }
      return false;
}


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.