Page 1 sur 1

Trnasformation en BBCode

Posté : 17 août 2006, 12:15
par triban
Alors voila en fait j'explique le probléme...
Avec ce code-la:
#
<?php
#
if(!isset($_POST['text']))
#
        {?>
#
        <form method="post">
#
 
#
$colors{7} = 'CC3399';
#
$colors{8} = '3300CC';
#
$colors{9} = '996633';
#
$colors{10} = 'FF9900';
#
$colors{11} = '008080';
#
 
#
for($i = 15; $i <= 24; $i  )
#
        {$colors{$i} = $colors{$i-13};}
#
 
#
$colors{27} = 'FFFF00';
#
$colors{28} = '999999';
#
$colors{29} = '996600';
#
$colors{30} = 'FF0000';
#
 
#
        $j = 0;
#
        for($i = 0; $i < strlen($_POST['text']); $i  )
#
                {
#
                if($_POST['text']{$i} == "\r")
#
                        {$j  ;}
#
                elseif($_POST['text']{$i} == "\n")
#
                        {;}
#
                else
#
                        {$rows{$j} .= $_POST['text']{$i};}
#
                }
#
       
#
       
#
        $rows{0} = '<span style="font-weight:bold; color:blue;">'.$rows{0}.'</span>';
#
        $rows{13} = '<span style="font-weight:bold; color:#000000;">'.$rows{13}.'</span>';
#
        $rows{26} = '<span style="font-weight:bold; color:#000000;">'.$rows{26}.'</span>';
#
       
#
        ?><div align="center" style="font-family:Arial, Helvetica, sans-serif; font-size:12px;"><?php
#
       
#
        for($i = 0; $i <= $j; $i  )
#
                {
#
                if(isset($colors{$i}))
#
                        {
#
                        $tmp = '<span style="color:#'.$colors{$i}.'">';
#
                        $ok = false;
#
                        for($k = 0; $k < strlen($rows{$i}); $k  )
#
                                {
#
                                if(strpos('1234567890', $rows{$i}{$k}) === false || $ok == true)
#
                                        {$tmp .= $rows{$i}{$k};}
#
                                else
#
                                        {$tmp .= '</span>'.$rows{$i}{$k}; $ok = true;}
#
                                }
#
                        $rows{$i} = $tmp;
#
                        }
#
                echo($rows{$i}."<br />\n");
#
                }
#
               
#
        ?></div><?php
#
        }?>
Ce code la donne ceci:

http://fkraiem.no-ip.org/test.php

Quand j'utilise ce programme, qui est un convertisseur de rapport de bataille pour un jeu, voici ce que cela me donne:

Image

En fait, au lieu d'obtenir le rapport directement, j'aimerais avoir le résultat en BBCode de ce genre la :

Code : Tout sélectionner

[center][b] [COLOR=blue]Unités de l'Attaquant (Unités tués ou Détruites) [/b][/COLOR] [COLOR=#009933]Esclaves[/COLOR] XXX (XXX) [COLOR=#006699]Porteurs de Sabres[/COLOR] XXX (XXX) [COLOR=#990033]Boucaniers[/COLOR] XXX (XXX) [COLOR=#CC9966]Frégate [/COLOR] XXX (XXX) [COLOR=#6699CC]Caravelles[/COLOR] XXX (XXX) [COLOR=#CC3399]Cog de Guerre[/COLOR]XXX (XXX) [COLOR=#3300CC]Cog de Transports[/COLOR] XXX (XXX) [COLOR=#996633]Canon[/COLOR] XXX (XXX) [COLOR=#FF9900]Pinace[/COLOR] XXX (XXX) [COLOR=-----]Navire de Colonisation[/COLOR]XXX (XXX) [b]Unités du Défenseur: (Unités tués ou Détruites)[/b] [COLOR=#009933]Esclaves[/COLOR] XXX (XXX) [COLOR=#006699]Porteurs de Sabres[/COLOR] XXX (XXX) [COLOR=#990033]Boucaniers[/COLOR] XXX (XXX) [COLOR=#CC9966]Frégate [/COLOR] XXX (XXX) [COLOR=#6699CC]Caravelles[/COLOR] XXX (XXX) [COLOR=#CC3399]Cog de Guerre[/COLOR]XXX (XXX) [COLOR=#3300CC]Cog de Transports[/COLOR] XXX (XXX) [COLOR=#996633]Canon[/COLOR] XXX (XXX) [COLOR=#FF9900]Pinace[/COLOR] XXX (XXX) [COLOR=-----]Navire de Colonisation[/COLOR]XXX (XXX) [b]Ressources Capturées[/b] [COLOR=#FFFF00]Or[/COLOR]: XXX [COLOR=#999999]Pierre [/COLOR]: XXX [COLOR=#996600]Bois[/COLOR]: XXX [COLOR=#FF0000]Nourriture[/COLOR]: XXX [/center]
Voila...
J'espére avoir été le plus clair possible ^^.
Désolé si cela ne va pas dans cette catégorie.

Merci de votre aide en tout cas :D [/url]

Posté : 17 août 2006, 13:03
par @rthur
Bonjour,

Essaye de remplacer

Code : Tout sélectionner

<span style="color:#'.$colors{$i}.'">
par

Code : Tout sélectionner

[color=#'.$colors{$i}.']
et idem pour </span> avec [/color]

Posté : 17 août 2006, 13:11
par Truc
Salut,

Tu peux éventuellement modifier ton code pour directement écrire en bbcode en modifiant ces deux lignes :
$tmp = '<span style="color:#'.$colors{$i}.'">'; 
par
$tmp = '[COLOR=#'.$colors{$i}.']'; 
$tmp .= '</span>'.$rows{$i}{$k}; $ok = true;
par
$tmp .= '[/COLOR]'.$rows{$i}{$k}; $ok = true;
Sinon tu devras penser aux expression régulières

Ce sujet serait effectivement plus à sa place dans le Forum "Débuter en PHP"... Je déplace
:wink:

Posté : 17 août 2006, 13:17
par triban
Oki, je vais essayer ca de suite :).
Merci beaucoup du coupe de main !

Posté : 17 août 2006, 13:28
par Truc
Le titre n'est pas non plus très explicite... tu peux éditer ton 1er message pour le rendre plus pertinant afin de faciliter d'éventuelles recherches avec le même souci que toi :wink: