function print_recs($recs) { $tableau = array(); // pour chaque zone/champ trouvée dans la notice foreach ($recs as $rec) { /** * * iso2709_decode() -> sert à bien décoder les accents * \n -> retour à la ligne * \t -> tabulation * */ // la variable $retour sert à stocker les différents éléments d'une notice $notice = "\t<notice>\n"; // un bloc foreach sert ici à analyser les différentes zones et sous zones // du format unimarc foreach ($rec->getValues('200$a') as $val) { // echo sert à afficher dans le terminal // echo '200$a : '.iso2709_decode($val)."\n"; // on met dans $retour tout ce que l'on veut dans son fichier xml $notice .= "\t\t<titre>" . iso2709_decode($val) . "</titre>\n"; } // pour chaque sous-zone souhaitée, on dublique le bloc foreach foreach ($rec->getValues('200$e') as $val) { // echo '200$e : '.iso2709_decode($val)."\n"; $notice .= "\t\t<b200e>" . iso2709_decode($val) . "</b200e>\n"; } foreach ($rec->getValues('010$a') as $val) { // echo '010$a : '.iso2709_decode($val)."\n"; $notice .= "\t\t<isbn>" . iso2709_decode($val) . "</isbn>\n"; } foreach ($rec->getValues('200$b') as $val) { // echo '200$b : '.iso2709_decode($val)."\n"; $notice .= "\t\t<b200b>" . iso2709_decode($val) . "</b200b>\n"; } foreach ($rec->getValues('200$c') as $val) { // echo '200$c : '.iso2709_decode($val)."\n"; $notice .= "\t\t<b200c>" . iso2709_decode($val) . "</b200c>\n"; } foreach ($rec->getValues('200$d') as $val) { // echo '200$d : '.iso2709_decode($val)."\n"; $notice .= "\t\t<b200d>" . iso2709_decode($val) . "</b200d>\n"; } foreach ($rec->getValues('200$e') as $val) { // echo '200$e : '.iso2709_decode($val)."\n"; $notice .= "\t\t<b200e>" . iso2709_decode($val) . "</b200e>\n"; } foreach ($rec->getValues('200$f') as $val) { // echo '200$f : '.iso2709_decode($val)."\n"; $notice .= "\t\t<b200f>" . iso2709_decode($val) . "</b200f>\n"; } foreach ($rec->getValues('200$g') as $val) { // echo '200$g : '.iso2709_decode($val)."\n"; $notice .= "\t\t<b200g>" . iso2709_decode($val) . "</b200g>\n"; } foreach ($rec->getValues('205$a') as $val) { // echo '200$g : '.iso2709_decode($val)."\n"; $notice .= "\t\t<b205a>" . iso2709_decode($val) . "</b205a>\n"; } $index = 0; foreach ($rec->getValues('210$d') as $val) { // echo '200$g : '.iso2709_decode($val)."\n"; $notice .= "\t\t<champdate>" . iso2709_decode($val) . "</champdate>\n"; // ICI j'essaye d'extraire uniquement une année // dans un contenu texte avec d'autres éléments $information_date = iso2709_decode($val); // echo $information_date."\n"; $pattern = '/[\\d]{4}/'; preg_match_all("/[\\d]{4}/", $information_date, $matches, PREG_SET_ORDER); foreach ($matches as $val) { // echo "matched: " . $val[0] . "\n"; // echo "part 1: " . $val[1] . "\n"; $notice .= "\t\t<annee>" . $val[0] . "</annee>\n"; $index = $val[0]; } } foreach ($rec->getValues('330$a') as $val) { // echo '200$g : '.iso2709_decode($val)."\n"; $notice .= "\t\t<b330a>" . iso2709_decode($val) . "</b330a>\n"; } $notice .= "\t</notice>\n"; // pour afficher une séparation dans la console entre chaque notice // echo "----\n"; $data = new stdClass(); $data->index = $index; $data->notice = $notice; $tableau[] = $data; //$index; } return $tableau; }
function print_recs($recs) { $retour = ""; // pour chaque zone/champ trouvée dans la notice foreach ($recs as $rec) { /** * * iso2709_decode() -> sert à bien décoder les accents * \n -> retour à la ligne * \t -> tabulation * */ // la variable $retour sert à stocker les différents éléments d'une notice $retour .= "\t<notice>\n"; // un bloc foreach sert ici à analyser les différentes zones et sous zones // du format unimarc foreach ($rec->getValues('200$a') as $val) { // echo sert à afficher dans le terminal echo '200$a : ' . iso2709_decode($val) . "\n"; // on met dans $retour tout ce que l'on veut dans son fichier xml $retour .= "\t\t<titre>" . iso2709_decode($val) . "</titre>\n"; } // pour chaque sous-zone souhaitée, on dublique le bloc foreach foreach ($rec->getValues('200$e') as $val) { echo '200$e : ' . iso2709_decode($val) . "\n"; $retour .= "\t\t<b200e>" . iso2709_decode($val) . "</b200e>\n"; } foreach ($rec->getValues('010$a') as $val) { // echo '010$a : '.iso2709_decode($val)."\n"; $retour .= "\t\t<isbn>" . iso2709_decode($val) . "</isbn>\n"; } foreach ($rec->getValues('200$b') as $val) { // echo '200$b : '.iso2709_decode($val)."\n"; $retour .= "\t\t<b200b>" . iso2709_decode($val) . "</b200b>\n"; } foreach ($rec->getValues('200$c') as $val) { // echo '200$c : '.iso2709_decode($val)."\n"; $retour .= "\t\t<b200c>" . iso2709_decode($val) . "</b200c>\n"; } foreach ($rec->getValues('200$d') as $val) { // echo '200$d : '.iso2709_decode($val)."\n"; $retour .= "\t\t<b200d>" . iso2709_decode($val) . "</b200d>\n"; } foreach ($rec->getValues('200$e') as $val) { // echo '200$e : '.iso2709_decode($val)."\n"; $retour .= "\t\t<b200e>" . iso2709_decode($val) . "</b200e>\n"; } foreach ($rec->getValues('200$f') as $val) { // echo '200$f : '.iso2709_decode($val)."\n"; $retour .= "\t\t<b200f>" . iso2709_decode($val) . "</b200f>\n"; } foreach ($rec->getValues('200$g') as $val) { // echo '200$g : '.iso2709_decode($val)."\n"; $retour .= "\t\t<b200g>" . iso2709_decode($val) . "</b200g>\n"; } foreach ($rec->getValues('205$a') as $val) { // echo '200$g : '.iso2709_decode($val)."\n"; $retour .= "\t\t<b205a>" . iso2709_decode($val) . "</b205a>\n"; } foreach ($rec->getValues('330$a') as $val) { // echo '200$g : '.iso2709_decode($val)."\n"; $retour .= "\t\t<b330a>" . iso2709_decode($val) . "</b330a>\n"; } $retour .= "\t</notice>\n"; // pour afficher une séparation dans la console entre chaque notice echo "----\n"; } // on renvoie le contenu de $retour return $retour; }