IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fonction BBcode ajout Youtube


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Fonction BBcode ajout Youtube
    Bonjour

    J'aurai besoin d'un coup de main avec une fonction bbcode pour y ajouter le bbcode youtube.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    // Fonction BBcode
    $bbcode = array (	
    	'£\\[b\\](.+)\\[/b\\]£isU' ,
    	'£\\[i\\](.+)\\[/i\\]£isU' ,
    	'£\\[u\\](.+)\\[/u\\]£isU' ,
    	'£\\[s\\](.+)\\[/s\\]£isU' ,
    	'£\\[color=(red|darkred|blue|darkblue|green|darkgreen|yellow|gold|black|white|grey|darkgrey|orange|darkorange|brown|olive|cyan|indigo|purple|violet|#[\\w\\d]{6};)\\](.+)\\[/color\\]£isU' ,
    	'£\\[color=#([a-zA-Z0-9]{6}|[a-zA-Z0-9]{3})\\](.+)\\[/color\\]£isU' ,
    	'£\\[size=(xx-small|x-small|small|medium|large|x-large|xx-large)\\](.+)\\[/size\\]£isU' ,
    	'/\\[size=(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|)\\](.*?)\\[\\/size\\]/si',
    	'/\\[img\\](.+?)\\[\\/img\\]/si',
    	'£\\[url=(?:http://)?([\\w\\d_/?&%#=~\\.;-]+)\\](.+)\\[/url\\]£iU' ,
    	'£\\[url=(?:http://)?([\\w\\d_/?&%#=~\\.;-]+:[0-9]+)\\](.+)\\[/url\\]£iU' ,
    	'£\\[url\\](?:http://)?([\\w\\d_/?&%#=~\\.;-]+)\\[/url\\]£iU' ,
    	'£\\[url\\](?:http://)?([\\w\\d_/?&%#=~\\.;-]+:[0-9]+)\\[/url\\]£iU' ,
    	'£(?<![\\w\\d_/?&%#=~\\.;->"])(?:(http://)|(w{3}\\d?\\.))([\\w\\d_/?&%#=~\\.;-]+)£i' ,
    	'£\\[url=(ftp://[\\w\\d_/?&%#=~\\.;-]+)\\](.+)\\[/url\\]£iU' ,
    	'£\\[url\\](ftp://[\\w\\d_/?&%#=~\\.;-]+)\\[/url\\]£iU' ,
    	'£(?<![\\w\\d_/?&%#=~\\.;->"])(ftp://[\\w\\d_/?&%#=~\\.;-]+)£i' ,
    	'£\\[email\\]([\\w\\d_\\.-]+@[\\w\\d_\\.-]+\\.[\\w\\d]{2,5})\\[/email\\]£iU' ,
    	'£\\[email=([\\w\\d_\\.-]+@[\\w\\d_\\.-]+\\.[\\w\\d]{2,5})\\](.+)\\[/email\\]£iU',
    	'£\\[spoil\\](.+)\\[/spoil\\]£isU' ,
    	'£\\[float=left\\](.+)\\[/float\\]£isU' ,
    	'£\\[float=right\\](.+)\\[/float\\]£isU', 
    	'£\\[textalign=(left|right|justify|center)\\](.+)\\[/textalign\\]£isU',
    	'£\\[list\\](.+)\\[/list\\]£isU',
    	'£\\[puce\\](.+)\\[/puce\\]£isU',
    	'`\\<<<@!1!@>>>).)*?(?R).*?)+|.+?)\\[/quote\\]£is', 'quote', $matches[2]).'</div></div>';
        else 
        	return '<div class="bbcode_quote_global"><span class="bbcode_quote_titre">'. ((!empty($matches[1])) ? $matches[1].' a dit :' : 'Citation :') . '</span><div class="bbcode_quote">'.$matches[2].'</div></div>';
    }
    
    function bbcode ($chaine) {
    	if( (substr_count($chaine,'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ') > 0 &&  substr_count($chaine,'
    ')) > 0) { $chaine = preg_replace_callback ('£\[code\](.*)\[/code\]£isU' , 'decodequote' , $chaine); //Fonction chasseuse de QUOTE imbriquées $chaine = preg_replace_callback('£\[quote(?:="([^"]+)")?\]((?:(?:(?!\[/quote]).)*?(?R).*?)+|.+?)\[/quote\]£is', 'quote', $chaine); $chaine = preg_replace_callback ('£\[code\](.*)\[/code\]£isU' , 'recodequote' , $chaine); $chaine = preg_replace_callback ('£^(.*)\[code\]£isU' , 'strbbcode1' , $chaine); $chaine = preg_replace_callback ('£\[/code\](.*)\[code\]£isU' , 'strbbcode2' , $chaine); $chaine = preg_replace_callback ('£\[/code\](.*)$£isU' , 'strbbcode3' , $chaine); } else { global $bbcode , $xhtml , $emoticonc , $emoticonv ,$emoticonnb; $chaine = preg_replace_callback('£\[quote(?:="([^"]+)")?\]((?:(?:(?!\[/quote]).)*?(?R).*?)+|.+?)\[/quote\]£is', 'quote', $chaine); for($em=0;$em<$emoticonnb;$em++) $chaine = str_replace($emoticonc[$em],'<img src="'.$emoticonv[$em].'" border="0" alt="" />',$chaine); $chaine = preg_replace ($bbcode , $xhtml , $chaine); } return ($chaine); }
    Et ensuite pour afficher les bbcode j'ai ceuci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    function afficher_panneau_bbcode($id_textarea){
    	global $design, $global_lang;
    	$return = '
    	<img style="cursor:pointer;" onclick="javascript:put_bbcode(\'\', \'\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/gras.png" title="'.$global_lang['bb0'].'" />
    	<img style="cursor:pointer;" onclick="javascript:put_bbcode(\'\', \'\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/italique.png" title="'.$global_lang['bb1'].'" />
    	<img style="cursor:pointer;" onclick="javascript:put_bbcode(\'\', \'\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/souligne.png" title="'.$global_lang['bb2'].'" />
    	<img style="cursor:pointer;" onclick="javascript:put_bbcode(\'\', \'\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/barre.png" title="'.$global_lang['bb3'].'" />
    	<img src="'.$design.'bbcode/separateur.png" />
    	<img style="cursor:pointer;" onclick="javascript:put_bbcode(\'[img]\', \'[/img]\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/image.png" title="'.$global_lang['bb4'].'" />
    	<img style="cursor:pointer;" onclick="javascript:put_bbcode(\'[float=left]\', \'[/float]\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/flottant_gauche.png" title="'.$global_lang['bb5'].'" />
    	<img style="cursor:pointer;" onclick="javascript:put_bbcode(\'[float=right]\', \'[/float]\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/flottant_droit.png" title="'.$global_lang['bb6'].'" />
    	<img src="'.$design.'bbcode/separateur.png" />
    	<img style="cursor:pointer;" onclick="javascript:put_bbcode(\'\', \'\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/lien.png" title="'.$global_lang['bb7'].'" />
    	<img style="cursor:pointer;" onclick="javascript:put_bbcode(\'\', \'\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/email.png" title="'.$global_lang['bb8'].'" />
    	<img style="cursor:pointer;" onclick="javascript:put_bbcode(\'
    • [puce]\', \'[/puce]
    \', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/liste.png" title="'.$global_lang['bb9'].'" /> <img src="'.$design.'bbcode/separateur.png" /> <img style="cursor:pointer;" onclick="javascript:put_bbcode(\'<<<@!4!@>>>\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/citation.png" title="'.$global_lang['bb10'].'" /> <img style="cursor:pointer;" onclick="javascript:put_bbcode(\'[spoil]\', \'[/spoil]\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/spoil.png" title="'.$global_lang['bb11'].'" /> <img src="'.$design.'bbcode/separateur.png" /> <img style="cursor:pointer;" onclick="javascript:put_bbcode(\'\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/code.png" title="'.$global_lang['bb12'].'" /> <img style="cursor:pointer;" onclick="javascript:put_bbcode(\'[shell]\', \'[/shell]\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/codeconsole.png" title="'.$global_lang['bb13'].'" /> <br /> <img style="cursor:pointer;" onclick="javascript:put_bbcode(\'[textalign=left]\', \'[/textalign]\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/text_left.png" title="'.$global_lang['bb14'].'" /> <img style="cursor:pointer;" onclick="javascript:put_bbcode(\'[textalign=center]\', \'[/textalign]\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/text_center.png" title="'.$global_lang['bb15'].'" /> <img style="cursor:pointer;" onclick="javascript:put_bbcode(\'[textalign=right]\', \'[/textalign]\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/text_droite.png" title="'.$global_lang['bb16'].'" /> <img style="cursor:pointer;" onclick="javascript:put_bbcode(\'[textalign=justify]\', \'[/textalign]\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/test_justify.png" title="'.$global_lang['bb17'].'" /> <img src="'.$design.'bbcode/separateur.png" /> <img style="cursor:pointer;" onclick="javascript:put_bbcode(\'\', \'\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/exposant.png" title="'.$global_lang['bb18'].'" /> <img style="cursor:pointer;" onclick="javascript:put_bbcode(\'\', \'\', \''.$id_textarea.'\');return(false)" src="'.$design.'bbcode/indice.png" title="'.$global_lang['bb19'].'" /> <!--------------------------------------------------- Youtube ---------------------------------------------------------> <!--------------------------------------------------- Youtube ---------------------------------------------------------> <img src="'.$design.'bbcode/separateur.png" /> <select name="size"> <optgroup label="'.$global_lang['fct7'].'"> <option value="7" onclick="javascript:put_bbcode(\'\', \'\', \''.$id_textarea.'\');return(false)">'.$global_lang['fct2'].'</option> <option value="9" onclick="javascript:put_bbcode(\'\', \'\', \''.$id_textarea.'\');return(false)">'.$global_lang['fct3'].'</option> <option value="12" selected="selected" onclick="javascript:put_bbcode(\'\', \'\', \''.$id_textarea.'\');return(false)">'.$global_lang['fct4'].'</option> <option value="18" onclick="javascript:put_bbcode(\'\', \'\', \''.$id_textarea.'\');return(false)">'.$global_lang['fct5'].'</option> <option value="24" onclick="javascript:put_bbcode(\'\', \'\', \''.$id_textarea.'\');return(false)">'.$global_lang['fct6'].'</option> </optlabel> </select> <img src="'.$design.'bbcode/separateur.png" /> <select name="coul" class="sbouton"> <optgroup label="Couleur">'; $tab = array('#444444', 'darkred', 'red', 'orange', 'brown', 'yellow', 'green', 'olive', 'cyan', 'blue', 'darkblue', 'indigo', 'violet', 'white', 'black'); $tabsurnon = array($global_lang['col0'], $global_lang['col1'], $global_lang['col2'], $global_lang['col3'], $global_lang['col4'], $global_lang['col5'], $global_lang['col6'], $global_lang['col7'], $global_lang['col8'], $global_lang['col9'], $global_lang['col10'], $global_lang['col11'], $global_lang['col12'], $global_lang['col13'], $global_lang['col14']); for($i=0; $i<count($tab); $i++) $return .= ' <option value="'.$tab[$i].'" class="genmed" onclick="javascript:put_bbcode(\'[color='.$tab[$i].']\', \'[/color]\', \''.$id_textarea.'\');return(false)" style="color:'.$tab[$i].';">'.$tabsurnon[$i].'</option>'; $return .= '</optgroup> </select> <br /> '; return $return; }
    merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Par défaut
    je ne me suis pas tartiné tout ton code, mais voici ce que j'ai fait pour mon site:
    il n'y a qu'à mettre l'url ... et même si il y a d'autre paramètres dans l'url que le "v", ça marche quand même, tout est prévue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->source=preg_replace('#\[you-tube\](.+)?www.youtube.com/watch?(.+)?v=(.+)(&.+)?\[/you-tube\]#iUs','<iframe width="480" height="390" src="http://www.youtube.com/embed/$3" frameborder="0" allowfullscreen></iframe>', $this->source);

  3. #3
    Invité
    Invité(e)
    Par défaut
    Re'

    Bon j'ai essayer de faire avec mais ça ne fonctionne pas !
    J'ai fait comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	'`\\[sup\\](.+)\\[/sup\\]`isU',
    	//------------------------------------------ ajout youtube -------------------------------------------------
    	'`\\[youtube\\](.+)?www.youtube.com/watch?(.+)?v=(.+)(&.+)?\\[/youtube\\]`isU',
    	//------------------------------------------ ajout youtube -------------------------------------------------
    	\\[shell\\](.+)\\[/shell\\]£isU'
    ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	'<sup>$1</sup>' ,
    	//------------------------------------------ ajout youtube -------------------------------------------------
    	'<iframe width="480" height="390" src="http://www.youtube.com/embed/$3" frameborder="0" allowfullscreen></iframe>',
    	//------------------------------------------ ajout youtube -------------------------------------------------	
    	'<div class="bbcode_shell_titre">Code console : </div><div class="bbcode_shell"><pre>$1</pre></div>'
    Pour finir ça m'affiche les balise [youtube]LE LIEN[/youtube]

  4. #4
    Membre éclairé
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Par défaut
    je ne comprend pas trop ta manière de faire ...
    pourquoi deux antislashes au lieu d'un seul ? les deux anti-slashes c'est bon en java, mais pas en php

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Dominique49 Voir le message
    je ne comprend pas trop ta manière de faire ...
    pourquoi deux antislashes au lieu d'un seul ? les deux anti-slashes c'est bon en java, mais pas en php
    Ok ça c'est fais et effectivement ca change rien !!

  6. #6
    Membre éclairé
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Par défaut
    oups, sorry, j'ai codé ce code pour accepter ceci :

    [you-tube]lien[/you-tube]

    désolé. donc la regex pour prendre [youtube][/youtube], ce serait donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->source=preg_replace('#\[youtube\](.+)?<a href="http://www.youtube.com/watch?%28.+%29?v=%28.+%29%28&.+%29?%5C" target="_blank">www.youtube.com/watch?(.+)?v=(.+)(&.+)?\</a>[/youtube\]#iUs','<iframe width="480" height="390" src="http://www.youtube.com/embed/$3" frameborder="0" allowfullscreen></iframe>', $this->source);

Discussions similaires

  1. [RegEx] fonction d'ajout d'attribut dans une balise html
    Par the magic developer dans le forum Langage
    Réponses: 4
    Dernier message: 30/10/2008, 12h48
  2. Réponses: 6
    Dernier message: 27/08/2008, 13h58
  3. [Dates] Fonction date: ajouter 3 jours à une date
    Par bobic dans le forum Langage
    Réponses: 8
    Dernier message: 12/03/2007, 11h05
  4. Réponses: 3
    Dernier message: 06/12/2006, 13h53
  5. [phpbb] Probléme fonction bbcode
    Par jdotti dans le forum Langage
    Réponses: 3
    Dernier message: 22/09/2006, 23h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo