Inhalte aus Blob anzeigen lassen

Danke saftmeister,
unserialize war auch meine Idee doch am schwierigsten ist die Trennung des Bildes vom Rest und dessen Wiedergabe als Bild und nicht als Wort Array oder als Zeichensalat.
Das krieg ich jetzt angezeigt:

Message
kfza
kfzatest
Array
1
B-N-230315-125945
1427114175
KFZ
Angebotsart A

Das Bild ist immer noch in dem Array und das macht noch Zicken.

MONI

Mein Code ist (mit dem alten mysql statt mysqli!!!):

PHP:
<?php
include_once("data-conn.php");
$sql = "SELECT * FROM tester ORDER BY id DESC";
$ergebnis =  mysql_query($sql) or die("SQL Error: ".mysql_error());
$anz_ds =  mysql_num_rows($ergebnis);
for ($ii = 0 ; $ii < $anz_ds ; $ii++)
{
$id = mysql_result($ergebnis,$ii,"id");
$data = mysql_result($ergebnis,$ii,"data");

$message = unserialize($data);
$array = $message;

foreach($array as $elem){
  echo $elem."<br />";

//oder auch mit:
// foreach($array as $key => $elem){
// echo $elem."<br />";

}

}
?>
 
Mir kam in den Sinn, das alles aus dem Blob mittels unserialize() erstmal in ein Objekt umgewandelt werden muss. Dann kannst du das Element Images loopen:

PHP:
$message = unserialize($blobdata);
foreach($message->Images as $image)
{
  // in $image jetzt jeweils ein Bild
  echo $image->name;

  // in $image->data sind jetzt die Bilddaten enthalten
}

EDIT: Sorry, hab nicht richtig hingesehen. Images ist einn Membervariable des Objekts Message. Es handelt sich bei Images um ein Array. Eines der Elemente des Array heißt data und das sind die Bilddaten.

Es ergibt sich dieses Klassen-Schema:

PHP:
<?php
class Message
{
  /**
  * Überschrift
  * @var string
  */
  public $Headline;
   
  /**
  * Körper
  * @var string
  */
  public $Body;
   
  /**
  * Bilddaten
  * @var array
  */
  public $Images;
   
  /**
  * Editierbar
  * @var boolean
  */
  public $Editable;
   
  /**
  * Eigentümer
  * @var string
  */
  public $Owner;
   
  /**
  * Zeitpunkt der Erstellung als Unixtimestamp
  * @var int
  */
  public $Creation;
   
  /**
  * Kategorie
  * @var string
  */
  public $Category;
   
  /**
  * Sonstiges
  * @var string
  */
  public $Issue;
}

$message->Images ist wie schon gesagt ein Array aus den Elementen

PHP:
$image = array(
  'data' => 'Bilddaten - in diesem Falle Jpeg (erkennbar am Header JFIF)',
  'type' => 2, /* Typ des Bildes als numerischer Wert */
  'size' => 4576, /* Größe des Bilds wahrscheinlich in Byte */
  'width' => 115, /* Breite des Bilds */
  'height' => 145, /* Höhe des Bilds */
  'name' => 'front.jpg' /* Originaler Dateiname */
);

Demzufolge sollte man so darauf zugreifen können:

PHP:
$message = unserialize($blobdaten);

// Gibt 'kfza' aus
echo $message->Headline;

// Gibt 'front.jpg' aus
echo $message->Images['name'];

// Bilddaten sind in
//header('Content-Type: image/jpeg');
//echo $message->Images['data'];
 
Zuletzt bearbeitet:
Hallo saftmeister,
wollte Dir gerade schreiben das da was nicht stimmt. Da hab ich den Nachtrag gesehen (ab EDIT: Sorry, ...).
Sieht jetzt schon besser aus. Doch ich hab das Problem jetzt gar nicht mehr zu wissen wie der gesamte Code dann aussieht.
MONI
 
Zuletzt bearbeitet:
Zurück