Filtre chaine caractère pour classe FPDF
                    
        
     
             
                    zoubila44
    
        
    
                    Messages postés
            
                
     
             
            114
        
            
                                    Statut
            Membre
                    
                -
                                     
zoubila44 Messages postés 114 Statut Membre -
        zoubila44 Messages postés 114 Statut Membre -
        Salut tout le monde,
Je vous explique mon problème,
je suis en train de développez une fonctionnalité de géneration de pdf ( avec la classe FPDF ).
en gros je vais chercher en base des chaines de caractères et je les affiche sur mon pdf, jusque la pas de souci.
le problème c'est que dans mes chaines de carac j'ai des images ( ex: balise <img src="tutu/tutu.png" height="50" width="50" /> )
et du text.
je dois faire un fonction qui va parcourir la chaine, stocker le text jusqu'a ce qu'il rencontre une balise <img, stocker la source de l'image, width et height, continuez a parcourir le text jusqu'a la prochaine image en stockant source,width,heigth, et on parcour la suite de la chaine jusqu'a la fin de celle ci
et ensuite je dois afficher cette chaine de caractère sur mon pdf en affichant text1 puis img 1 text 2 puis img 2
ca fais 2 semaine que je galère .. je ne suis pas très doué pour manipuler les chaines de carac en PHP
Voici ou j'en suis: a savoir pas grand chose
Merci d'avacne
                
            
                
    
    
    
        Je vous explique mon problème,
je suis en train de développez une fonctionnalité de géneration de pdf ( avec la classe FPDF ).
en gros je vais chercher en base des chaines de caractères et je les affiche sur mon pdf, jusque la pas de souci.
le problème c'est que dans mes chaines de carac j'ai des images ( ex: balise <img src="tutu/tutu.png" height="50" width="50" /> )
et du text.
je dois faire un fonction qui va parcourir la chaine, stocker le text jusqu'a ce qu'il rencontre une balise <img, stocker la source de l'image, width et height, continuez a parcourir le text jusqu'a la prochaine image en stockant source,width,heigth, et on parcour la suite de la chaine jusqu'a la fin de celle ci
et ensuite je dois afficher cette chaine de caractère sur mon pdf en affichant text1 puis img 1 text 2 puis img 2
ca fais 2 semaine que je galère .. je ne suis pas très doué pour manipuler les chaines de carac en PHP
Voici ou j'en suis: a savoir pas grand chose
function filtreQuest($chaine,$text){
  $chaine="Salut tout le monde, je vais vous montrer les images de guitare et de basse tout d'abords voici la <span>guitare</span> <img src='images/guitare.png'> ensuite va venir la <span> basse </span> <img src='images/basse.jpg' width='50' height='50'>, à toi de joué";
  $chaine=str_replace('<span>', '', $chaine);
  $chaine=str_replace('</span>', '', $chaine);
        if(strpos($chaine, '<img')){
        $text=strstr($chaine, '<img',TRUE);
        
  
  }else{
    }
    return $text;
  }
echo filtreQuest($chaine,$text);
Merci d'avacne
        A voir également:         
- Filtre chaine caractère pour classe FPDF
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
2 réponses
                        
                    Salut, sans trop t'en dire car à mon avis tu as mal cherché, va voir du coté de explode. 
Cette fonction permet de rechercher une occurence dans une chaine et de la renvoyé en tant que tableau.
 
                
                
    
                Cette fonction permet de rechercher une occurence dans une chaine et de la renvoyé en tant que tableau.
require('FPDF/fpdf.php');
$chaine="Salut tout le monde, je vais vous montrer les images de guitare et de basse tout d'abord voici la <span>guitare</span> <img src='images/guitare.png' width='510' height='45'/> ensuite va venir la <span> basse </span> <img src='images/basse.jpg' width='150' height='41' />, à toi de joué";
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Helvetica','B',16);
$pdf->SetFillColor(6,211,248);
$pdf->SetTextColor(243,11,180);
$pdf->Cell(0,10,'INSTRUMENTS',1,1,'C',TRUE);
$pdf->Ln(10);
$pdf->SetFillColor(20,150,50);
$pdf->SetTextColor(255,255,255);
$pdf->Cell(0,10,filtreQuest($chaine),0,1,'L',TRUE);
$pdf->Ln(40);
$pdf->MultiCell(0,10,$chaine,1,1,'L',FALSE);
$pdf->Output();
function filtreQuest($chaine){
  $chaine=str_replace('<span>', '', $chaine);
  $chaine=str_replace('</span>', '', $chaine);
        if(strpos($chaine, '<img')){
          $chaine=str_replace('<', '|', $chaine);
          $chaine=str_replace('/>', '|', $chaine);
          $tab=explode('|', $chaine);
          foreach ($tab as $key => $value) {
            if (strpos($value, 'img ')===0) {
              $text[$key]=f_get_info_image($value);
             } else{
              $text[$key]=$value;
             }
          }
        }
  return $text;
}
var_dump(filtreQuest($chaine));
function f_get_info_image($imgBalise){
  
  $res=array('src'=>'','height'=>'', 'width'=>'');
  
  $imgBalise = str_replace('"', '|', $imgBalise);
  $imgBalise = str_replace("'", '|', $imgBalise);
  
  $pos_src=strpos($imgBalise, 'src=|');
  if($pos_src===false){}else{
    $endPosSrc=strpos($imgBalise, "|",$pos_src+5);
    $res["src"]=substr($imgBalise, $pos_src+5, $endPosSrc-($pos_src+5));
  }
  $pos_h=strpos($imgBalise, 'height=|');
  if($pos_h===false){}else{
    $endPosH=strpos($imgBalise, "|",$pos_h+8);
    $res["height"]=substr($imgBalise, $pos_h+8, $endPosH-($pos_h+8));
  }
  $pos_w=strpos($imgBalise, 'width=|');
  if($pos_w===false){}else{
    $endPosW=strpos($imgBalise, "|",$pos_w+7);
    $res["width"]=substr($imgBalise, $pos_w+7, $endPosW-($pos_w+7));
  }           
  
  return $res;
}
voici mon code a jour je me suis planté et du coup oui j'utilise explode
Mon souci est plus au niveau de l'affichage dans le pdf :s la reutilisation des données ...
Voici le vardump que j'obtient:
array (size=5)
0 => string 'Salut tout le monde, je vais vous montrer les images de guitare et de basse tout d'abord voici la guitare ' (length=106)
1 =>
array (size=3)
'src' => string 'images/guitare.png' (length=18)
'height' => string '45' (length=2)
'width' => string '510' (length=3)
2 => string ' ensuite va venir la basse ' (length=29)
3 =>
array (size=3)
'src' => string 'images/basse.jpg' (length=16)
'height' => string '41' (length=2)
'width' => string '150' (length=3)
4 => string ', à toi de joué' (length=28)
