");
if ($i===false) $i=strpos($fcontents,"<".$input_params['NOTICEELEMENT']." ");
if ($i!==false) {
//on pense à récup le charset du xml
if($encoding === ""){
$s=strpos($fcontents,"");
if(isset($s) && isset($e)){
$entete = substr($fcontents,$s,$e+2);
$rx = "//m";
if (preg_match($rx,$entete, $m)) $encoding = strtoupper($m[1]);
}
}
$i1=strpos($fcontents,"".$input_params['NOTICEELEMENT'].">");
while ((!feof($fi))&&($i1===false)) {
$fcontents.=fread($fi,4096);
$i1=strpos($fcontents,"".$input_params['NOTICEELEMENT'].">");
}
// nouvelles versions de BCDI : la notice mere et la notice fille sont dans 1 seule notice => si on a une fille (=notice partie), on extrait la mere (notice generale) pour envoyer le bon nombre de noties à traiter
$i_notpartie=strpos($fcontents,"");
$i1_notpartie=strpos($fcontents,"");
$i_notgenerale=strpos($fcontents,"");
$i1_notgenerale=strpos($fcontents,"");
if($i_notpartie!==false && $i1_notpartie!==false) {
if($i_notgenerale!==false && $i1_notgenerale!==false){
// envoi de la notice mere
$notice="<".$input_params['NOTICEELEMENT'].">".substr($fcontents,$i_notgenerale,$i1_notgenerale+strlen("")-$i_notgenerale)."".$input_params['NOTICEELEMENT'].">";
$requete="insert into import_marc (no_notice, notice, origine, encoding) values($n,'".addslashes($notice)."','$origine','$encoding')";
pmb_mysql_query($requete);
$n++;
$index[]=$n;
// envoi de la notice fille
$notice=substr($fcontents,$i,$i1+strlen("".$input_params['NOTICEELEMENT'].">")-$i);
$requete="insert into import_marc (no_notice, notice, origine, encoding) values($n,'".addslashes($notice)."','$origine','$encoding')";
pmb_mysql_query($requete);
$n++;
$index[]=$n;
$fcontents=substr($fcontents,$i1+strlen("".$input_params['NOTICEELEMENT'].">"));
$i=false;
}
}
// si pas de fille, on traite la notice de manière standard
elseif ($i1!==false) {
$notice=substr($fcontents,$i,$i1+strlen("".$input_params['NOTICEELEMENT'].">")-$i);
$requete="insert into import_marc (no_notice, notice, origine, encoding) values($n,'".addslashes($notice)."','$origine','$encoding')";
pmb_mysql_query($requete);
$n++;
$index[]=$n;
$fcontents=substr($fcontents,$i1+strlen("".$input_params['NOTICEELEMENT'].">"));
$i=false;
}
} else {
if (!feof($fi))
$fcontents.=fread($fi,4096);
else break;
}
}
return $index;
}
}
?>