Salve a tutti sono un fotografo ignorante che non riesce a far funzionare uno script macedonia per l'inserimento di metadati in un db mysql. O meglio......
il file php in questione si incarica, una volta lanciato, di guardare in una casella data, la presenza di eventuali immagini JPG, arricchite di metadati (autore, descrizione, titolo,ecc.).
Se le rileva inizia un ciclo "while" che tra le altre cose estrae i suddetti metadati per inserirli nei campi di un db mysql.
Il problema si verifica quando deve individuare e registrare le "keyword", ogni volta che esegue questa operazione per una immagine successiva alla prima del ciclo si porta dietro anche le keyword dell' immagine precedente così che alla fine l'ultima immagine caricata nel db si trova ad avere una sfilza di keyword che non c'entrano niente. Non riesco a capirne i motivi e sopratutto non riesco ad azzerare questa operazione di modo che la variabile $keyword. si presenti vuota ogniqualvolta il ciclo ricomincia.
ecco parte dello script incriminato:
Codice PHP:
//apre la cartella e cerca i file immagine----------------------------------------------
$files = array();
if ($search = opendir("./cartella")){
while ($ima = readdir($search)){
if (substr($ima,-4) == ".jpg"){
$files[] = $ima;
$n++;
//per ogni file recupera le info-----------------------------------------------
$size = getimagesize("./cartella/$ima", $info);
if (isset($info["APP13"])) {
$iptc = iptcparse($info["APP13"]);
//definisce il valore delle info-----------------------------------------------
$image = $ima ;
$title = $iptc['2#105'][0] ;
$title = addslashes(stripslashes($title));
$caption = $iptc['2#120'][0] ;
$caption = addslashes(stripslashes($caption));
if ( $iptc['2#025'][0] !="" ){ //parte incriminata
foreach ($iptc['2#025'] as $key ){ //read all keywords
// anche aggiungendo questa stringa che in realtà non mi convince proprio "empty($keyword .);" non funziona
$keyword .= "$key, " ;
}
}
Grazie e Buona giornata a tutti!