Divide text into ul with id of the string content

0

Laws are actually a list of items, with subitems.

I have copied the code below and the example is at this link link

I was able to make php read the plain text file and assign an ul with the id of the article number, or the title number.

However,

1) in article 245, he assumed a "not found" ID.

2) And the numbering of articles after 999, only 1.

3) The id should add the hierarchy, example id="titulo1_capitulo2_artigo3".

4) Is there any other way to do this programming, or any tip or criticism about my reasoning.

Thank you all

                // Variável com a lei
                $arquivo = 'cf.txt';

                // Variável das palavras chaves
                $encontraTitulo = "TÍTULO";
                $encontraCapitulo = "CAPÍTULO";
                $encontraSecao = "Seção";
                $encontraSubsecao = "Subseção";
                $encontraArtigo = "Art.";

                // Lê conteúdo do txt
                $documento = file_get_contents($arquivo);

                // Converte em linhas
                $linhas = explode("\n", $documento);


                foreach ($linhas as $novalinha) {


                  // Esta parte do código não funcionou online, só local funciona
                  // Limpa linhas vazias
                  if ( empty( rtrim( $novalinha ) ) ) {
                      continue;
                  }

                    // Envolve cada linha em um parágrafo
                    $novalinhas =   "<p>" . $novalinha . "</p>"; 

                   // Verifica se tem o texto título na linha
                   $procuraTitulo = strpos($novalinhas,$encontraTitulo);

                   if ($procuraTitulo === false){
                      // Verifica se tem o texto capítulo na linha
                      $procuraCapitulo = strpos($novalinhas,$encontraCapitulo);

                      if ($procuraCapitulo === false){

                         // Verifica se tem o texto Seção na linha
                         $procuraSecao = strpos($novalinhas,$encontraSecao);

                         if ($procuraSecao === false){

                            // Verifica se tem o texto Subseção na linha
                            $procuraSubsecao = strpos($novalinhas,$encontraSubsecao);

                            if ($procuraSubsecao === false){

                               // Verifica se tem o texto Artigo na linha
                               $procuraArtigo = strpos($novalinhas,$encontraArtigo);

                               if ($procuraArtigo === false){

                                  echo $novalinhas;      

                               } else {

                                  // Captura o número do artigo para atribuir na ID
                                  preg_match('/[0-9]+/', $novalinhas, $matches);
                                  $artigo = implode(' ',$matches);

                                  echo "</ul>";        
                                  echo '<ul id="artigo' . $artigo . '" class="artigo">';
                                  echo "<li>";                    
                                  echo $novalinhas;
                                  echo "</li>";  
                               }     

                            } else {

                               // Captura o número romano da Subseção para atribuir na ID
                               $arr = explode('Subseção ', $novalinhas);
                               $subsecao = preg_replace('/\s+/','',$arr[1]);

                              switch (trim(strip_tags($subsecao))){
                                case 'I':
                                  $subsecao = '1';
                                  break;
                                case 'II':
                                  $subsecao = '2';
                                  break;
                                case 'III':
                                  $subsecao = '3';
                                  break;    
                               default:
                                  $subsecao = 'Não encontrou';
                              }

                               echo "</ul>";        
                               echo '<ul id="subsecao' . $subsecao . '" class="subsecao">';  
                               echo "<li>";                      
                               echo $novalinhas;  
                               echo "</li>"; 
                            }    

                         } else {

                               // Captura o número romano da seção para atribuir na ID
                               $arr = explode('Seção ', $novalinhas);
                               $secao = preg_replace('/\s+/','',$arr[1]);

                              switch (trim(strip_tags($secao))){
                                case 'I':
                                  $secao = '1';
                                  break;
                                case 'II':
                                  $secao = '2';
                                  break;
                                case 'III':
                                  $secao = '3';
                                  break;  
                                case 'IV':
                                  $secao = '4';
                                  break;
                                case 'V':
                                  $secao = '5';
                                  break; 
                                case 'VI':
                                  $secao = '6';
                                  break; 
                                case 'VII':
                                  $secao = '7';
                                  break;
                                case 'VIII':
                                  $secao = '8';
                                  break;
                                case 'IX':
                                  $secao = '9';
                                  break;                                                                                                                        
                               default:
                                  $secao = 'Não encontrou';
                              }

                               echo "</ul>";        
                               echo '<ul id="secao' . $secao . '" class="secao">';
                               echo "<li>";                        
                               echo $novalinhas; 
                               echo "</li>";                  
                         }     

                      } else {


                               // Captura o número romano do capítulo para atribuir na ID
                               $arr = explode('CAPÍTULO ', $novalinhas);
                               $cap = preg_replace('/\s+/','',$arr[1]);

                              switch (trim(strip_tags($cap))){
                                case 'I':
                                  $cap = '1';
                                  break;
                                case 'II':
                                  $cap = '2';
                                  break;
                                case 'III':
                                  $cap = '3';
                                  break;  
                                case 'IV':
                                  $cap = '4';
                                  break;
                                case 'V':
                                  $cap = '5';
                                  break; 
                                case 'VI':
                                  $cap = '6';
                                  break; 
                                case 'VII':
                                  $cap = '7';
                                  break;
                                case 'VIII':
                                  $cap = '8';
                                  break;                                                                                                                      
                               default:
                                  $cap = 'Não encontrou';
                              }

                               echo "</ul>";        
                               echo '<ul id="capitulo' . $cap . '" class="capitulo">';       
                               echo "<li>";                 
                               echo $novalinhas;          
                               echo "</li>";                
                      }

                   } else {

                               // Captura o número romano do título para atribuir na ID
                               $arr = explode('TÍTULO ', $novalinhas);
                               $tit = preg_replace('/\s+/','',$arr[1]);

                              switch (trim(strip_tags($tit))){
                                case 'I':
                                  $tit = '1';
                                  break;
                                case 'II':
                                  $tit = '2';
                                  break;
                                case 'III':
                                  $tit = '3';
                                  break;  
                                case 'IV':
                                  $tit = '4';
                                  break;
                                case 'V':
                                  $tit = '5';
                                  break; 
                                case 'VI':
                                  $tit = '6';
                                  break; 
                                case 'VII':
                                  $tit = '7';
                                  break; 
                                case 'VIII':
                                  $tit = '8';
                                  break;  
                                case 'IX':
                                  $tit = '9';
                                  break;  
                                case 'X':
                                  $tit = '10';
                                  break;                                                                                                                                                           
                               default:
                                  $tit = 'Não encontrou';
                              }

                               echo "</ul>";        
                               echo '<ul id="titulo' . $tit . '" class="titulo">';     
                               echo "<li>";                   
                               echo $novalinhas; 
                               echo "</li>"; 
                   }

                }

Update 04/28/2015

I studied the code again and I got a better result, if anyone can analyze

            function romano($romano) {
                switch (trim(strip_tags($romano))){
                  case 'I':
                    $romano = '1';
                    break;
                  case 'II':
                    $romano = '2';
                    break;
                  case 'III':
                    $romano = '3';
                    break;  
                  case 'IV':
                    $romano = '4';
                    break;
                  case 'V':
                    $romano = '5';
                    break; 
                  case 'VI':
                    $romano = '6';
                    break; 
                  case 'VII':
                    $romano = '7';
                    break;
                  case 'VIII':
                    $romano = '8';
                    break;
                  case 'IX':
                    $romano = '9';
                    break;  
                  case 'X':
                    $romano = '10';
                    break;   
                  case 'XI':
                    $romano = '11';
                    break; 
                  case 'XII':
                    $romano = '12';
                    break;     
                  case 'XIII':
                    $romano = '13';
                    break;     
                  case 'XIV':
                    $romano = '14';
                    break;  
                  case 'XV':
                    $romano = '15';
                    break; 
                  case 'XVI':
                    $romano = '16';
                    break; 
                  case 'XVII':
                    $romano = '17';
                    break;     
                  case 'XVIII':
                    $romano = '18';
                    break;     
                  case 'XIX':
                    $romano = '19';
                    break;  
                  case 'XX':
                    $romano = '20';
                    break;                                                
                  case 'ÚNICO':
                    $romano = '_unico';
                    break;  
                  case 'COMPLEMENTAR':
                    $romano = '_complementar';
                    break;
                  case 'G':
                    $romano = '_geral';
                    break;  
                  case 'E':
                    $romano = '_especial';
                    break;                                                                                                                                               
                 default:
                    $romano = '_especial';
                }
                return $romano;
            } 

            // Variável das palavras chaves
            $encontraParte = "P A R T E";
            $encontraLivro = "LIVRO";
            $encontraTitulo = "TÍTULO";
            $encontraSubtitulo = "SUBTÍTULO";
            $encontraCapitulo = "CAPÍTULO";
            $encontraSecao = "Seção";
            $encontraSubsecao = "Subseção";
            $encontraArtigo = "Art.";

            // Lê conteúdo do txt
            $documento = file_get_contents($arquivo);


            $documento = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $documento);
            // Converte em linhas
            $linhas = explode("\n", $documento);

            foreach ($linhas as $novalinha) {

                // Envolve cada linha em um parágrafo
                $novalinhas =   "<li><p>" . $novalinha . "</p></li>"; 

               // Verifica se tem o texto Linha na linha
               $procuraParte = strpos($novalinhas,$encontraParte);

               if ($procuraParte === false){

               // Verifica se tem o texto Linha na linha
               $procuraLivro = strpos($novalinhas,$encontraLivro);

               if ($procuraLivro === false){

                 // Verifica se tem o texto título na linha
                 $procuraTitulo = strpos($novalinhas,$encontraTitulo);

                 if ($procuraTitulo === false){

                   // Verifica se tem o texto Subtítulo na linha
                   $procuraSubtitulo = strpos($novalinhas,$encontraSubtitulo);

                   if ($procuraSubtitulo === false){

                      // Verifica se tem o texto capítulo na linha
                      $procuraCapitulo = strpos($novalinhas,$encontraCapitulo);

                      if ($procuraCapitulo === false){

                       // Verifica se tem o texto Seção na linha
                       $procuraSecao = strpos($novalinhas,$encontraSecao);

                       if ($procuraSecao === false){

                          // Verifica se tem o texto Subseção na linha
                          $procuraSubsecao = strpos($novalinhas,$encontraSubsecao);

                          if ($procuraSubsecao === false){

                             // Verifica se tem o texto Artigo na linha
                             $procuraArtigo = strpos($novalinhas,$encontraArtigo);

                             if ($procuraArtigo === false){

                                echo $novalinhas;      

                             } else {

                                // Captura o número do artigo para atribuir na ID                  
                                $artigo =  explode(" ", $novalinhas);
                                $caracteres = array("º",".");
                                $artigos = str_replace($caracteres, "", $artigo[1]);

                                echo "</ul>";        
                                echo '<ul id="artigo' . $artigos . '" class="artigo">';                   
                                echo $novalinhas;
                             }     

                          } else {

                             // Captura o número romano da Subseção para atribuir na ID
                            $sub =  explode(" ", $novalinhas);
                            $caracteres = array("Subseção");
                            $subs = romano($sub[1]);   

                            echo "</ul>";        
                            echo '<ul id="subsecao' . $subs . '" class="subsecao">';                     
                            echo $novalinhas;  
                          }    

                       } else {

                             // Captura o número romano da Subseção para atribuir na ID
                            $sub =  explode(" ", $novalinhas);
                            $caracteres = array("Seção");
                            $subs = romano($sub[1]);   

                            echo "</ul>";        
                            echo '<ul id="secao' . $subs . '" class="secao">';                      
                            echo $novalinhas;                 
                       }     

                    } else {

                             // Captura o número romano da Subseção para atribuir na ID
                            $sub =  explode(" ", $novalinhas);
                            $caracteres = array("CAPÍTULO");
                            $subs = romano($sub[1]);  

                            echo "</ul>";        
                            echo '<ul id="capitulo' .  $subs . '" class="capitulo">';                      
                            echo $novalinhas;                        
                    }

                 } else {

                            $sub =  explode(" ", $novalinhas);
                            $caracteres = array("SUBTÍTULO");
                            $subs = romano($sub[1]);  

                            echo "</ul>";        
                            echo '<ul id="subtitulo' . $subs . '" class="subtitulo">';                      
                            echo $novalinhas; 
                 } 

               } else {

                            $sub =  explode(" ", $novalinhas);
                            $caracteres = array("TÍTULO");
                            $subs = romano($sub[1]);  

                            echo "</ul>";        
                            echo '<ul id="titulo' . $subs . '" class="titulo">';                      
                            echo $novalinhas; 
                 } 

               } else {

                            $sub =  explode(" ", $novalinhas);
                            $caracteres = array("LIVRO");
                            $subs = romano($sub[1]);  

                            echo "</ul>";        
                            echo '<ul id="livro' . $subs . '" class="livro">';                      
                            echo $novalinhas; 

                            }
                 } else {

                            $sub =  explode(" ", $novalinhas);
                            $caracteres = array("PARTE");
                            $subs = romano($sub[8]);  

                            echo "</ul>";        
                            echo '<ul id="parte' . $subs . '" class="parte">';                      
                            echo $novalinhas;                
                 }

            }
    
asked by anonymous 23.04.2015 / 22:53

0 answers