Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}