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;
}
}