Je n'arrive pas à comprendre ce bout de code...

Statut
N'est pas ouverte pour d'autres réponses.

k o D

Elite
Voilà, ce code-ci:

Code:
function convert_message($message,$affichesmiley)
{
  $debut_cite = "<br/>
                <table width=\"85%\" cellspacing=\"0\" border=\"1px\" cellpadding=\"0\" bordercolor=\"#000000\">
                <tr>
                  <td>
                    <span style=\"font-size:10px\">";
  $fin_cite = "</span><br/>
                  </td>
                </tr>
                </table>";
  $message = eregi_replace("\[cite:(.+)\](.+)\[/cite\]", "Citation de \\1 $debut_cite \\2 $fin_cite ", $message );
  if($affichesmiley=="true")
  {
    $fp = file("smileys.txt");
    $i=0;
    $fin = sizeof($fp);
    while($i!=$fin)
    {
      $chaine = $fp[$i];
      $image2 = stristr($chaine, " ** ");
      $image = str_replace(" ** ","",$image2);
      $symbole = str_replace($image2 ,"", $chaine);
      $image = trim($image);
      $message = str_replace($symbole,"<img src=\"smiley/$image\" alt=\"$image\">",$message);
      $i++;
    };
  };
/* Au cas ou la nouvelle version ne marche pas, cette versionmarche un peu :D
  $message = eregi_replace("\[img\]([^[]*)\[/img\]", '<IMG SRC=\\1 ALT=\\1>', $message );
  $message = eregi_replace("\[b\]([^[]*)\[/b\]", '<B>\\1</B>', $message );
  $message = eregi_replace("\[i\]([^[]*)\[/i\]", '<i>\\1</i>', $message );
  $message = eregi_replace("\[u\]([^[]*)\[/u\]", '<u>\\1</u>', $message );
  $message = preg_replace("/([\w\.]+)(@)([\w\.]+)/i", "<a href=\"mailto:$0\">$0</a>", $message);
  $message = preg_replace("/([^\w\/])(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i","$1http://$2",$message);
  $message = preg_replace("/^(=)([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i","<A TARGET=\"_blank\" HREF=\"$1\">$1</A>",$message);
*/
  $message = eregi_replace("\[b\]([^[]*)\[/b\]", '<b>\\1</b>', $message );
  $message = eregi_replace("\[i\]([^[]*)\[/i\]", '<i>\\1</i>', $message );
  $message = eregi_replace("\[u\]([^[]*)\[/u\]", '<u>\\1</u>', $message );
  $message = preg_replace("/([\w\.\-]+)(@)([\w\.\-]+)/i", "<a href=\"mailto:$0\">$0</a>", $message);
  $message = preg_replace("/([^\w\/])(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i","$1http://$2",$message);
  $message = preg_replace("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i", "<a target=\"_blank\" href=\"$1\">$1</a>",$message);
  $message = eregi_replace("\[img\]<a target=\"_blank\" href=\"([^[]*)\">([^[]*)</a>\[/img\]", '<img src=\\2 ALT="\\2">', $message );
  $message = eregi_replace("\[img\]([^[]*)\[/img\]", '<img src=\\1 ALT="\\1">', $message );

  return $message;
};
Il permet de modifier une chaine de caractère pour savoir afficher les smileys etc... (Comme le fait ce forum pour afficher les citations, les smileys etc...)

En fait je ne comprend pas cette ligne:

Code:
  $message = eregi_replace("\[cite:(.+)\](.+)\[/cite\]", "Citation de \\1 $debut_cite \\2 $fin_cite ", $message );
 
1er
OP
k o D

k o D

Elite
Mouais... :?
 

Carambar

Elite
Maitre_des_Cles a dit:
En fait je ne comprend pas cette ligne:

Code:
  $message = eregi_replace("\[cite:(.+)\](.+)\[/cite\]", "Citation de \\1 $debut_cite \\2 $fin_cite ", $message );
La fonction eregi_replace sert à remplacer une chaîne de caracterès avec une autre chaîne. Ca peut être très utile dans certains cas. Plus d'infos ici :

http://www.manuelphp.com/php/function.eregi-replace.php
 
1er
OP
k o D

k o D

Elite
oui je suis déjà aller voir, mais je ne capte ce que c'est qe celà:

Code:
\[cite:(.+)\](.+)\[/cite\]",
 

Carambar

Elite
prototype :
Code:
string  eregi_replace ( string pattern , string replacement , string string)
Code:
$message = eregi_replace("\[cite:(.+)\](.+)\[/cite\]", "Citation de \\1 $debut_cite \\2 $fin_cite ", $message );
string pattern : \[cite:-(.+)\](.+)\[/cite\]
string replacement : Citation de \\1 $debut_cite \\2 $fin_cite
string string : $message

Donc, tout ce qui est [cite:-(...)](...)[/cite] dans $message est remplacé par "Citation de \1 $debut_cite \2 $fin_cite". Je suppose que (.+) est une expréssion qui représente une chaîne de caractères indeterminée.

P.S: \ est utilisé pour les séquences d'échappement pour éviter d'utiliser certains caractères propres à un langage de programmation.
 
1er
OP
k o D

k o D

Elite
bon concretement, si dans cette phrase:

[ b]Salut à tous![ /b] [:)]
je veux changer le [:)] par le smiley "01.gif" et mettre la phrase en gras (avec les balises [ b] et [ /b]) je fais comment?
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut