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
cette fonction est faite,

et ensuite je dois afficher cette chaine de caractère sur mon pdf en affichant text1 puis img 1 text 2 puis img 2 et c'est la que ça coince...

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
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
68
69
70
71
72
73
74
75
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' />, &agrave; toi de jou&eacute";
 
$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;
}
merci d'avacne