begin process at 2012 05 27 18:20:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > REMPLACER DES LETTRES EN IMAGES

REMPLACER DES LETTRES EN IMAGES


 Information sur la source

 Description

C'est un ancien code que j'avais fait juste dans un but esthétique, son but est tout simplement de remplacer une lettre par une image de lettre prédéfinis.

Je poste ce code avant tout pour avoir les avis d'autre codeur sur ma façon de coder et ma logique (même si sa date :)) ...

Source

  • <?php
  • /*******************************************************************************
  • ** Fonction permettant de remplacer les lettres d'un phrase par des images, il peut être utile pour
  • ** un certains effet graphique voulu .
  • ** Auteur : Damien MEHALA (Damtux ou Skypee)
  • ** E-mail : damtux@live-prod.com
  • ** Site internet : Live-Prod.com
  • ** En cas d'utilisation non personnel de ce script et sans autorisation vous devrez me contacter
  • ** à l'adresse ci-dessus.
  • ** PS : rli_img = remplace lettre in image
  • *********************************************************************************/
  • function rli_img($string, $dossier, $extension)
  • {
  • if(isset($erreur_script) && !empty($erreur_script))
  • { echo 'Les erreurs suivantes ont &eacute;t&eacute; trouv&eacute;e :';
  • foreach($erreur_script as $erreur)
  • { echo $erreur.'<br>'; }
  • unset($erreur_script);
  • }
  • $erreur_script = array(); // Gestionnaire d'erreur
  • $dossier_decom = str_split($dossier);
  • if(!in_array('/', $dossier_decom))
  • { $dossier = $dossier.'/'; }
  • $extension_possible = array('jpg','bmp','png','gif');
  • $extension_decom = str_split($extension);
  • if(in_array('.', $extension_decom)) // Si il trouve un point il retire
  • { $extension = substr($extension, 1, strlen($extension));
  • if(!in_array($extension, $extension_possible))
  • { $erreur_script[] = 'L\'extension pr&eacute;ciser n\'est pas support&eacute;e'; }
  • }
  • else
  • {
  • if(!in_array($extension, $extension_possible))
  • { $erreur_script[] = 'L\'extension pr&eacute;ciser n\'est pas support&eacute;e'; }
  • }
  • // De 00 à 11 c'est A, de 12 à 13 c'est ae, de 14 à 15 c'est c, de 16 à 23 c'est e, de 24 à 31 c'est i, de 32 à 33 c'est n, de 34 à 47 c'est O, de 48 à 49 c'est oe, de 50 à 51 c'est S, 52 c'est B, de 53 à 55 c'est d, de 56 à 63 c'est u et de 64 à 67 c'est y;
  • $caractere_speciaux = array('á','Á','â','Â','à','À','å','Å','ã','Ã','ä','Ä','æ','Æ','ç','Ç','é','É','ê','Ê','è','È','ë','Ë','í','Í','î','Î','ì','Ì','ï','Ï','ñ','Ñ','ó','Ó','ô','Ô','ò','Ò','ø','Ø','õ','Õ','ö','Ö','ð','½','¼','¨','¦','ß','Ð','þ','Þ','ú','Ú','û','Û','ù','Ù','ü','Ü','ý','Ý','ÿ','¾');
  • $remplacement = array('a','A','a','A','a','A','a','A','a','A','a','A','ae','AE','c','C','e','E','e','E','e','E','e','E','i','I','i','I','i','I','i','I','n','N','o','O','o','O','o','O','O','O','o','O','o','O','o','oe','OE','s','S','b','D','d','d','U','u','U','u','U','u','U','y','Y','y','Y');
  • $texte_norm = str_replace($caractere_speciaux, $remplacement, $string);
  • $texte = str_split($string);
  • $taille_du_texte = strlen($texte_norm) - 1;
  • for($i = 0; $i <= $taille_du_texte; $i++)
  • {
  • if($i == 0)
  • { $retour = '<img src="'.$dossier . $texte[$i].'.'.$extension.'" alt="" border="none"/>'; }
  • else
  • { $retour .= '<img src="'.$dossier . $texte[$i].'.'.$extension.'" alt="" border="none"/>'; }
  • }
  • return $retour;
  • }
  • ?>
<?php
 /*******************************************************************************
   ** Fonction permettant de remplacer les lettres d'un phrase par des images, il peut être utile pour
   **  un certains effet graphique voulu .
   ** Auteur : Damien MEHALA (Damtux ou Skypee)
   ** E-mail : damtux@live-prod.com
   ** Site internet : Live-Prod.com
   ** En cas d'utilisation non personnel de ce script et sans autorisation vous devrez me contacter
   **  à l'adresse ci-dessus.
   ** PS : rli_img = remplace lettre in image
  *********************************************************************************/

 function rli_img($string, $dossier, $extension)
  {
   if(isset($erreur_script) && !empty($erreur_script))
    { echo 'Les erreurs suivantes ont &eacute;t&eacute; trouv&eacute;e :';
	   foreach($erreur_script as $erreur)
        { echo $erreur.'<br>'; }
	  unset($erreur_script); 
	}
     $erreur_script = array(); // Gestionnaire d'erreur

   $dossier_decom = str_split($dossier);
   if(!in_array('/', $dossier_decom))
    { $dossier = $dossier.'/'; }

	$extension_possible = array('jpg','bmp','png','gif');
    $extension_decom = str_split($extension);
	if(in_array('.', $extension_decom)) // Si il trouve un point il retire
	 { $extension = substr($extension, 1, strlen($extension));
        if(!in_array($extension, $extension_possible))
         { $erreur_script[] = 'L\'extension pr&eacute;ciser n\'est pas support&eacute;e'; }
     }
	else
	 {
	  if(!in_array($extension, $extension_possible))
	   { $erreur_script[] = 'L\'extension pr&eacute;ciser n\'est pas support&eacute;e'; }
	 }
          // De 00 à 11 c'est A, de 12 à 13 c'est ae, de 14 à 15 c'est c, de 16 à 23 c'est e, de 24 à 31 c'est i, de 32 à 33 c'est n, de 34 à 47 c'est O, de 48 à 49 c'est oe, de 50 à 51 c'est S, 52 c'est B, de 53 à 55 c'est d, de 56 à 63 c'est u et de 64 à 67 c'est y;
	  $caractere_speciaux = array('á','Á','â','Â','à','À','å','Å','ã','Ã','ä','Ä','æ','Æ','ç','Ç','é','É','ê','Ê','è','È','ë','Ë','í','Í','î','Î','ì','Ì','ï','Ï','ñ','Ñ','ó','Ó','ô','Ô','ò','Ò','ø','Ø','õ','Õ','ö','Ö','ð','½','¼','¨','¦','ß','Ð','þ','Þ','ú','Ú','û','Û','ù','Ù','ü','Ü','ý','Ý','ÿ','¾');
      $remplacement = array('a','A','a','A','a','A','a','A','a','A','a','A','ae','AE','c','C','e','E','e','E','e','E','e','E','i','I','i','I','i','I','i','I','n','N','o','O','o','O','o','O','O','O','o','O','o','O','o','oe','OE','s','S','b','D','d','d','U','u','U','u','U','u','U','y','Y','y','Y');
	  $texte_norm = str_replace($caractere_speciaux, $remplacement, $string);
      $texte = str_split($string);
      $taille_du_texte = strlen($texte_norm) - 1;
       for($i = 0; $i <= $taille_du_texte; $i++)
        { 
	     if($i == 0)
	      { $retour = '<img src="'.$dossier . $texte[$i].'.'.$extension.'" alt="" border="none"/>'; }
	     else
	      { $retour .= '<img src="'.$dossier . $texte[$i].'.'.$extension.'" alt="" border="none"/>'; }
	    }
      return $retour;
     }
?>



 Sources de la même categorie

Source avec une capture MODULE JOOMLA 1.5 NOW LISTENING par Alcantornet
Source avec Zip Source avec une capture UPLOAD CENTER par basssem81
Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK

 Sources en rapport avec celle ci

REDIMENSIONNEMENT D'IMAGE PHP par JStevens
Source avec Zip Source avec une capture GESTIONNAIRE DE NEWS BASIQUE AVEC UPLOAD D'IMAGES par cod57
Source avec Zip Source avec une capture UPLOADEUR DE FICHIERS MULTIPLES V1 par cod57
CLASS GALERIE PHOTO par Xiryl
Source avec Zip Source avec une capture CONVERTISSEUR DE NOMBRES EN TEXTE par macruz

Commentaires et avis

Commentaire de Astalavista le 16/09/2009 00:29:04

Je te donne mon avis sur ton code :
- Je ne voit pas ce que $erreur_script fait dans ta fonction :) utilise trigger_error plutôt
- Ta vérification de l'extension n'est pas très optimisé, tu pourrais faire ca par exemple :
if(!in_array(substr($extension, -3), $extension_possible))echo "extension non pris en charge...";
- Pour ta boucle final, tu devrais enlever ton if a l'intérieur en initialisant ton $retour a une chaine sans rien : $retour = ""; juste avant, sa évite un if a tester a chaque fois ... Mais sinon, ta boucle pourrais être enlever, regarde voir la fonction preg_replace, tu pourra faire tout ca en une ligne :)

Commentaire de neigedhiver le 16/09/2009 01:37:46

Salut,

Pour vérifier l'extension d'un fichier, il ne faut pas faire comme ça... Et si l'extension fait 4 voire 5 caractères ? => .jpeg, .mpeg, .html, .xhtml
Et si le fichier est un fichier caché ? => .htaccess

Bref... Le mieux est, à mon sens, d'utiliser une expression régulière... Par exemple :
$extension = '';
if (preg_match('`.+\.([^\.]*)$`', $nom_fichier, matches) {
  $extension = $matches[1];
}

Cette expression régulière garde tous les caractères présents après le dernier point, à condition que celui-ci ne soit pas le premier caractère de la chaîne.

Ainsi :
'fichier.html' => 'html'
'.htaccess' => ''
'.fichier.cache' => 'cache'

Commentaire de Damtux972 le 16/09/2009 03:26:07

@Astalavista, ben pour etre sincère, moi non plus je ne sais pas que fait $erreur_script.
@neigedhiver, parcontre je ne vois pas trop l'interet d'autoriser toute les extensions puisque son but est de remplacer une lettre en image. Mais pourquoi pas, si sa fait plaisir.
@all : J'ai bien conscience que la vérification de l'extension est limité et qu'elle a été faite à l'arrache.
Merci d'avoir pris le temps de lire ce code tout bête et de me dire ce qui n'allait pas. Je l'ai coder sur un coup de tête (en janvier 2008) sans prendre le temps d'y revenir dessus, je vais l'améliorer quand j'aurais du temps libre. Merci les gars ^^

Commentaire de neigedhiver le 16/09/2009 09:49:03

Euh ouais... Je me suis arrêté à "extension d'un fichier" lol

Mais euh une image peut avoir une extension jpeg malgré tout. Ouais, j'aurais mieux fait de me coucher plutôt que de poster un commentaire somme toute pas franchement indispensable ^^

Commentaire de kankrelune le 16/09/2009 11:12:41

Une regexp pour récupérer une extension de fichier Ô_o

$extension = '';
if (($pos = strrpos($nom_fichier, '.')) !== false)
    $extension = substr($nom_fichier,$pos+1);
}

Pour ce qui est du trigger_error tout dépend de la manière dont tu gère tes erreurs... ne pas passer pas le gestionnaire d'erreur de php est justifié si tu gère toi même tes erreurs mais dans ce cas il faut mettre en place un moyen de les récupérer par exemple en passant $erreur_script par référence en paramètre de ta fonction... .. .

@ tchaOo°

Commentaire de neigedhiver le 16/09/2009 14:12:50

Ben oui... ton code retournera 'htaccess' pour un fichier .htaccess
Et d'une manière générale, il retournera le nom du fichier si c'est un fichier caché...

Commentaire de kankrelune le 16/09/2009 18:07:16

oui sauf que dans le cas d'une vérif d'extension on se fout d'avoir "htaccess" ou "" pour faire la vérif et on économise une regexp... .. . ;o)

@ tchaOo°

Commentaire de Astalavista le 16/09/2009 18:51:35

Au final, il faudrait mieux faire une doc pour la fonction et exiger une extension sans . et on fait juste un in_array et si non, une erreur... sa éviterais un surplus de commentaire .... XD

Commentaire de kohntark le 16/09/2009 20:44:09

Salut,

A mon avis ta fonction pourrait faire 2 fois moins de lignes (voire plus), et surtout être plus rapide.
str_split consomme "beaucoup" de ressources. Pour qq chaînes de longueurs raisonnables ça ne change rien mais si cette fonction est présente partout dans ton code ça risque de poser problème. Imagine plusieurs chaines de 1000 caractères => à chaque fois c'est un tableau de 1000 valeurs en mémoire.
Par exemple $dossier_decom = str_split($dossier);[...] à quoi bon ?
Pourquoi pas :
$dossier = (substr($dossier,-1) == '/') ? $dossier : $dossier.'/';

Comme cela a été dit, même chose pour l'extension. Il y a pas mal de solutions, ça par exemple :

$extension_possible = array('jpg','jpeg','bmp','png','gif');
if (in_array(pathinfo($complete_file_path, PATHINFO_EXTENSION), $extension_possible)) { ...
Ca te permettrait, moyennant quelques modifs, de ne passer que 2 arguments à la fonction.

Ou encore l'extension fileinfo (>= 5.3 sinon nécessite une bibliothèque)

Tu devrais laisser la possibilité de choisir le css.

Bref, il y aurait d'autres choses à optimiser (comme les car spéciaux par exemple), mais avant cela il faudrait définir la cible :
  - est ce une fonction qui permet, au travers des données venant de l'utilisateur, d'afficher des images ?
  - est ce une fonction qui n'est destinée qu'au webmaster pour lui éviter d'entrer trop de code ?

Dans le second cas son intérêt est limité. Personnellement je préfère coder les images "en dur" Ceci étant, elle peut trouver son intérêt si le contenu est dynamique, mais dans ce cas je suis de l'avis de Altalavista : une doc suffisante et la fonction est 4 fois moins longue.
Dans le premier cas il manque pas mal de tests (chemin url valide, traitements de la chaîne postée ou "gettée", etc ...)

Cordialement,

Kohntark-

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Lettre en image... [ par kodiask ] voilà je voudrais savori si quelqu'un sais comment remplacer une lettre par un image...sachant que les lettre proviendrai d'une BDD...voilà si quelqu' remplacer caractere affiché par une variable dans "echo" [ par pipouz ] bonsoir a tousalors voila, j'ai un code permettant l'envoi de fichier sur un serveur, et me donnant le lien de se fichier , une fois uploadermais je v Probleme Unlink et Copy image hebergeur!!! [ par lod666 ] BonjourJ'ai un sérieux problème avec un hebergeur concernant les fonctions COPY et UNLINKConcretement si je demande la suppresion d'une image unlink(" remplacer les ? et ponctuation ainsi que les espaces dans une chaine de caractère [ par loupile ] Bonjour j'ai une chaine de caractère qui est du type ...$chaine = 'bien choisir son pc ?';dans cette chaine je voudrais supprimer les ponctuations :  afficher champ en php [ par get_tips ] Bonjour a tous , apres mettre arraché les cheveux en cherchant pdt des heures je me decide de faire appelle a vous.Je suis entrain de creer un site we image cliquable [ par sabou94 ] Bonjour, Voilà j'ai une page dans mon application(gestion de questionnaires) qui me permet d'updater les questions d'un questionnaire.Sur cette page i Les fichiers [ par Bumcello ] Bonjour,Le script suivant sert à uploader des images de types differents. Et donc si je choisis un fichier jpeg cela ne fonctionne pas cela m'affiche Lien php [ par Heny ] Bonjour Dans une premiére page nommée Page01.php il ya un tableau de 10 lignes et  de deux colonnes une pour les images et l'autre p Decallage lors de l'affichage d'image. [ par Mastronic ] Bonjour, je veux realiser un explorateur. hé je but sur un soucis qui me semble basic.. mais tres genant.</ Problème Upload/Get [ par R3dDragon ] J'ai un petit soucis, expliquez en détails ci-dessous:Un système d'upload envoi à la page rec.php, la variable $image, et pour que les gens ne soit pa


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,998 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales