Bonjour à tous,
J'en appelle au plus doué d'entre vous, pour m'aider à sortir du mauvais pas.
En effet, je dois modifier une partie d'un site PHP suite à un changement de base de données.
Interbase > mysql.
Lors du changement, nous avions des fichiers externes à la base de données. Et nous avons réintégré
le contenu du fichier (il est en hexa à 1ere vu) dans un champs blob. Le problème c'est que je ne sais pas comment
lire le champs blob. Si je passe par une requête classique, les données ne semble pas cohérente.
Vous noterez que l'utilisation de la fonction ord qui comme je le pense permet de convertir l'hexa en caractère.
Voici l'ancien code.
Quelqu'un aurait il la gentillesse de me dire ce que je dois remplacer pour que ça fonctionne avec un blob ?
J'ai lu quelque part qu'il existait des fonctions de stream. Est ce utile ici ? Comment les utiliser ?
Merci à tous !
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 function ChercheActiviteHEXA($pchemin,$pInfoSurLinux,$pNumClient,$pNoUser,$pleJour,$pleMois,$plAnnee,$pBorneInf,$pBorneSup){ $fp = fopen($pchemin,"r"); $TabHor= Array(); $JourCherche= ((($pleMois-1)*31)+$pleJour); $nb=1; while (!feof($fp)) { $donnees=fgets($fp,289); if (($nb>=$JourCherche) && ($nb<=($JourCherche+8))) { for ($i=0;$i<24;$i++) { for ($j=0;$j<12;$j++) { // 12 tranches de 5 min par heure $value = ord( $donnees[$j+($i*12)-1] ); $indHeure=($i*60)+($j*5); if ($value=='') $value=11; if ((($value>0)) &&(($indHeure>=$pBorneInf)&&($indHeure<=$pBorneSup))) $TabHor[$nb-$JourCherche][$indHeure]=$value; // Donne l'info en minute par journée } } } if($nb>=($JourCherche+10)) { fclose($fp); return $TabHor; } $nb++; } fclose($fp); return $TabHor;
Partager