PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 28-07-2015 09:02:49

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

preg_split()

Saluton les anciens, c'est MK qui est de  passage, et bonjour aux plus récents.

Mon problème est simple mais dépasse mes maigres compétences en matière d'expressions rationnelles :

<?php
$verso=utf8_decode("[Am]Bo[Dm]nita, la canción que nos están can[Am]tando.");
$pattern= "??????"; // par quoi remplacer ces ????
$bouts=preg-split($pattern, $verso);
?>

de façon à ce que $bouts contienne :

contenu de $bouts a écrit :

Array{0=>"[Am]",1=>"Bo",2=>"[Dm]",3=>"nita, la canción que nos están can",4=>"[Am]",5=>"tando."}

Car je veux insérer le résultat dans un document via FPDF et modifier la couleur des noms des accords, bien sûr il faudrait que $pattern s'adapte à tout ce qui pourra être entre [ ].

Merci de votre attention.

@mike.



Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#2 28-07-2015 19:52:34

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : preg_split()

Bon, en attendant une solution avec preg_split(), je fais avec les moyens du bord

<?php
function decoupe_vers($vers){
  $bouts=array();
  $i=-1;
  $bout='';
  while(++$i<strlen($vers)){
    switch($vers[$i]){
      case'[':
        if($bout<>''){$bouts[]=$bout;}
        $bout='[';
        break;
      case ']':
        $bouts[]=$bout.']';
        $bout='';
        break;
      default :
        $bout.=$vers[$i];
      }
    }
  $bouts[]=$bout;
  return $bouts;
  }
?>

ça fonctionne, c'est déjà ça.
Si vous allez là http://www.avcxjo-moko-kantas.fr/bonita.php et que vous cliquez sur l'un des deux boutons les boutons qui vont bien vous verrez le résultat.
La seule chose qui reste mystérieuse pour moi c'est pourquoi le titre de la chanson dans l'entête est décalé vers le haut.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums