begin process at 2012 02 12 21:14:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

BBCODE et IMAGE...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

BBCODE et IMAGE...

samedi 21 juin 2008 à 16:45:26 | BBCODE et IMAGE...

scharly3

Bonjour,
Me voici dans la phase de finalisation d'un forum et pour l'insertion des images j'utilise :


function filtreimage($message)
{
    list($debut, $fin) = explode("[img]", $message);
    list($image, $fin) = explode("[/img]", $fin);
    if($image!="") {
    $infos_image = getImageSize($image); // Fonction getImageSize permet de connaitre les dimensions de l'imgage
        if($infos_image[0]<= 400 && $infos_image[1]<= 400)// si l'image fait moins de 400 * 400
        {
       
            $image="<img src=\"$image\" />";
        }
        else // si elle fait plus de 400*400
        {
            if($infos_image[0]<=$infos_image[1]) // Redimension de selon la largeur ou la longueur
            {
            $width=$infos_image[0]/$infos_image[1]*400;
            $height=400;
            }
            else
            {
            $width=400;
            $height=$infos_image[1]/$infos_image[0]*400;
            }
            $image="<a href=\"$image\" target=\"_blank\"><img src=\"$image\" width = \"$width\" height=\"$height\" /></a>";
       
        }
    $message=$debut.$image.$fin;//reformation du message avec les balises
    }
    return $message;
}


Or, avec cette méthode, je ne peut traiter qu'une image par message les autres images éventuellement présentes sont supprimées, que puis-je utiliser d'autre que  "list($debut, $fin) = explode("[img]", $message);
    list($image, $fin) = explode("[/img]", $fin); " pour extraire et traiter mon image?
Merci.

samedi 21 juin 2008 à 17:25:23 | Re : BBCODE et IMAGE...

pysco68

tu peux utiliser preg_replace() si tu sais te servir d'expressions régulières...

je t'ai ressorti un petit parser BBCode que j'avais écrit il y a quelques années.... regarde comment je fais... et puis si tu veux utilise le ;)


function bbcode ($chaine) {
   $motifs = array(
       '\[b\](.*?)\[\/b\]\',
       '\[i\](.*?)\[\/i\]\',
       '\[u\](.*?)\[\/u\]\',
       '\[img\](.*?)\[\/img\]\',
       '\[url\=(.*?)\](.*?)\[\/url\]\',
       '\[code\](.*?)\[\/code\]\'
   );
   $remplace = array(
       '<b>\\1</b>',
       '<i>\\1</i>',
       '<u>\\1</u>',
       '<img src="\\1">',
       '<a href="\\1">\\2</a>',
       '<code>\\1</code>'
   );
   return preg_replace($motifs, $remplace, $chaine);
}

Bon je sais que c'est pas des plus propres versiones, et que dans certaines conditions d'arborescence elle déglingue... mais elle marche ;)

Bonne journée!


Developpement Web Yannic GraphiX | Mon CMS yArt et sa démo

samedi 21 juin 2008 à 17:28:09 | Re : BBCODE et IMAGE...

scharly3

Tous mes autres bbcode utilise les regex, mais la je doit récupéré l'url pour la traiter dans une fonction pour l'image ce n'est donc à ma connaissance pas faisable par ce moyen la.
samedi 21 juin 2008 à 17:35:47 | Re : BBCODE et IMAGE...

Evangun

Réponse acceptée !
Bonjour,

je ne comprend pas bien le problème... explode te renvoie un tableau. Avec ton list tu ne prends que les deux premiers éléments alors qu'il faudrait traiter le tableau entier avec une simple boucle foreach...

à+
samedi 21 juin 2008 à 17:36:05 | Re : BBCODE et IMAGE...

pysco68

Réponse acceptée !
maintenant je comprends ton problème ;)

regarde voir cette fonction: http://fr.php.net/manual/fr/function.preg-replace-callback.php
elle devrait t'aider ;)


Developpement Web Yannic GraphiX | Mon CMS yArt et sa démo

samedi 21 juin 2008 à 17:40:36 | Re : BBCODE et IMAGE...

scharly3

Evangun Merci, je n'avais pas réellement compris le fonctionnement d'explode.
pysco68 : Merci, cette solution m'a l'air encore plus performante.
samedi 21 juin 2008 à 18:29:46 | Re : BBCODE et IMAGE...

scharly3

Bonjour,

J'ai essayé de comprendre la fonction preg_replace_callback sans grand succès,
en effet lorsque j'effectue ceci: $message=preg_replace_callback("#\[img\](.+?)\[\/img\]#isU","filtreimage",$message);
Ma fonction filtreimage recoit un tableau de plus il semble que les [img][/img] soit transmit aussi à la fonction.

Une petite indication sur son fonctionnement me serrait d'une grande aide.

Pour l'instant mon code ressemble à ceci:

$message=preg_replace_callback("#\[img\](.+?)\[\/img\]#isU","filtreimage",$message);

function filtreimage($images)
{
   
     foreach($images as $image)
    {
        if($image!="") {
        $infos_image = getImageSize($image); // Fonction getImageSize permet de connaitre les dimensions de l'imgage
            if($infos_image[0]<= 400 && $infos_image[1]<= 400)// si l'image fait moins de 400 * 400
            {
           
                $image="<img src=\"$image\" />";
            }
            else // si elle fait plus de 400*400
            {
                if($infos_image[0]<=$infos_image[1]) // Redimension de selon la largeur ou la longueur
                {
                $width=$infos_image[0]/$infos_image[1]*400;
                $height=400;
                }
                else
                {
                $width=400;
                $height=$infos_image[1]/$infos_image[0]*400;
                }
                $image="<a href=\"$image\" target=\"_blank\"><img src=\"$image\" width = \"$width\" height=\"$height\" /></a>";
           
            }
        $message=$image;
        }
    }
    return $message;
   
}



Merci
samedi 21 juin 2008 à 18:35:49 | Re : BBCODE et IMAGE...

scharly3

Réponse acceptée !
Quel horreur on ne pe pas editer ton post :d Je vien de comprendre le pourquoi d'un tableau en entrée de fonction ^^'
samedi 21 juin 2008 à 18:36:09 | Re : BBCODE et IMAGE...

pysco68

preg_replace_callback rends effectivement un tableau....  pourrais tu me montrer à quoi il ressemble?

peut-ête qu'a final ce sera quand même plus rapide à faire avec un simple explode...


Developpement Web Yannic GraphiX | Mon CMS yArt et sa démo

samedi 21 juin 2008 à 18:37:56 | Re : BBCODE et IMAGE...

scharly3

Le tableau est finalement le resultat de la regex, c'est a dire les variables $1,$2 ... trouvé dans la chaine ^^' pas trés clair tous ca sur php.net

1 2

Cette discussion est classée dans : fin, message, image, infos, list


Répondre à ce message

Sujets en rapport avec ce message

envoyer une image dans le $message de mail() [ par linov ] Bonjour,Comment faire pour envoyer une image dans le $message envoyé par la fonction mail() ?Syntaxe ? Paramètres ? Est-ce possible ?Merci de votre ai Problème de date avec liste déroulante [ par ArRkHaOn ] Bonjour tout le monde j'ai un petit problème phpj'aime qu'a partir d'une date de début est de fin il met dans une liste déroulante toues les date de t afficher une image.. [ par milkasoprano ] Bonjour tous le monde... Voila depuis quelques heures je reflechis sur la facon de proceder pour afficher une image... Voila je me demande comment ca surcharge constructeur et avis pour mes classes [ par vega11 ] Bonjour à tous, je refais actuellement mon site en php objet 5 après un super stage en JAVA, je trouve le php réellement sympa en objet ^^Une chose me probleme de variables [ par inkydjango ] salut a tous j'ai un gros probleme sur une page upload ..en effet, jai repiquer un texte d'upload sur un serveur en local: celui marche tres bien, je Update BoutonRadio [ par ManuAntibes ] Bonjour J'ai un problème, pour enregistrer les infos dans une base de donnée. j'ai des infos à recup et à enregistrer dans une BDD, les infos provie Ajouter info dans le binaire d'une image [ par josh666 ] Bonjour a tous ! J'aimerais savoir s'il est possible dajouter des infos au début d'un fichier images(binaire) , sans que cela la corrompe... c'Est a d Renommer image après transfert. [ par Tilix ] Bonjour, Je voudrais renommer une image uploader en fonction d'une variable... J'ai récupéré un tit système d'upload sur ce site, mais il enregistre Problème sur l'upload d'image [ par ren999 ] bonjour a tous je suis en train de créer mon site et j'ai l'intention d'utiliser la méthode forum pour créer les pages web tout marche bien sauf l'upl pas de message à la reception du formulaire [ par jaxelr ] utiliser et comprendre[color=blue][/color][^^yeuxenlair]


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,499 sec (4)

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