Exemple #1
0
 function setIdname($idname, $item, $withPrefix = TRUE)
 {
     global $ctrl_idnames;
     if ($idname == 'loc') {
         return localValido($item, TRUE);
     }
     //elseif ($idname=='k')  COD_CHAVE (field 0)!
     if (!array_key_exists($idname, $ctrl_idnames)) {
         $ctrl_idnames[$idname] = array(1, array());
     }
     // contador e lista de ocorrências
     if (isset($ctrl_idnames[$idname][1][$item])) {
         $id = $ctrl_idnames[$idname][1][$item];
     } else {
         $id = $ctrl_idnames[$idname][1][$item] = $ctrl_idnames[$idname][0];
         $ctrl_idnames[$idname][0]++;
     }
     return $withPrefix ? "{$idname}{$id}" : $id;
 }
 foreach ($xp->query("//section | //td") as $node) {
     if (preg_match("/{$anyID_REGEX}/s", $node->textContent, $m)) {
         $sec0 = $m[1];
         $id0 = sprintf("{$sec0}%04d", $m[2]);
         $line = $node->getLineNo();
         $tipo = $node->nodeName;
         $hasLocationClass = $xp->evaluate("boolean(.//a[@class='location1'])", $node);
         $hasRangeClass = $node->getAttribute('class') == 'range-resumos';
         if (!$hasRangeClass) {
             $hasRangeClass = $xp->evaluate("boolean(.//*[@class='range-resumos'])", $node);
         }
         $dump = preg_replace('/\\n\\s+/', "\n\t", $node->textContent);
         list($dump, $hasRange) = IDnormalize($dump, TRUE);
         if ($hasLocationClass) {
             //print "  (debug ".$xp->query(".//a[@class='location1']",$node)->item(0)->nodeValue.") ";
             $lastLocID = localValido($xp->query(".//a[@class='location1']", $node)->item(0)->nodeValue, TRUE);
         }
         $thisRanges = [];
         $ERRO = '';
         $isGrupo = preg_match('/\\sgrupos?[\\.\\s]/i', $dump);
         // usa no if
         if ($hasRange) {
             preg_replace_callback("/({$stdID_REGEX}) \\- ({$stdID_REGEX})/s", function ($m) use(&$ranges, &$instrucoes_autores, &$idLoc, $lastLocID, &$ERRO, $isGrupo, &$thisRanges) {
                 $err = '';
                 if (isset($instrucoes_autores["{$m['1']} grupo"])) {
                     $i = $instrucoes_autores["{$m['1']} grupo"];
                     if ($isGrupo && $i['r1'] == $m[2] && ($xx = $idLoc[$i['local']]) != $lastLocID) {
                         $err = $ERRO = "CONFERIR: deveria ser {$xx} = {$i['local']}.";
                     } elseif ($isGrupo && $i['r1'] != $m[2]) {
                         //r0 ok
                         $err = $ERRO = "ERRO: certo seria {$i['r0']}-{$i['r1']}.";