Note: Due to the (old) bug https://bugs.php.net/bug.php?id=57141 the database file passed to px_open_fp needs to be opened with write permissions (e.g. using the r+ flag). It will crash with a fatal error if opened in read only mode.
(PECL paradox >= 1.3.0)
px_set_blob_file — Définit le fichier depuis lequel les blobs seront lus
$pxdoc
, string $filename
) : boolDéfinit le nom du fichier depuis lequel les blobs seront lus. Sans l'appel à cette fonction, px_get_record() ou px_retrieve_record() retournera uniquement les données des champs blob si les données sont des parties des enregistrements et ne sont pas stockées dans un fichier blob. Les données blob sont stockées dans un enregistrement si elles sont suffisamment petites pour correspondre à la taille du champ blob.
L'appel aux fonctions px_put_record(), px_insert_record() ou px_update_record() sans appeler la fonction px_set_blob_file() fera que les champs Blobs seront tronqués à moins que les données rentrent juste dans le fichier de base de données.
Deux appels à cette fonction fermera le premier fichier blob et ouvrira le nouveau.
pxdoc
Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().
filename
Le nom du fichier. Son extension doit être .MB
.
Cette fonction retourne TRUE
en cas de succès ou FALSE
si une erreur survient.
Note: Due to the (old) bug https://bugs.php.net/bug.php?id=57141 the database file passed to px_open_fp needs to be opened with write permissions (e.g. using the r+ flag). It will crash with a fatal error if opened in read only mode.
I could not get the OO interface to set_blob_file() to work....
<?php
$fp = fopen("/home/httpd/vhosts/newjcs/SALLY.DB", "r");
$pxdoc = new paradox_db();
$pxdoc->set_blob_file('/home/httpd/vhosts/newjcs/SALLY.MB');
?>
.............................
Fatal error: paradox_db::set_blob_file(): Paradox database has not been opened or created when setting the blob file
.............................
but worked nicely when called procedurally, so quick example to grab the images from a paradox DB , the field names you will have to change to suit.
<?php
$pxdoc = px_new();
$fp = fopen("/blah/SALLY.DB", "r");
px_open_fp($pxdoc, $fp);
px_set_blob_file($pxdoc,'/blah/SALLY.MB');
$numrecords=px_numrecords($pxdoc);
for($x=1;$x<=$numrecords;++$x){
$yaks=px_get_record($pxdoc,$x);
if($yaks['Picture']){
file_put_contents("/blah/ims/{$yaks['Val No']}.bmp",$yaks['Picture']);
}
}
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>