-1
I have the following code:
<?php
// Lê conteúdo do txt
$documento = 'TÍTULO I
Dos Princípios Fundamentais
Art. 1º A República Federativa do Brasil, formada pela união indissolúvel dos Estados e Municípios e do Distrito Federal, constitui-se em Estado Democrático de Direito e tem como fundamentos:
I - a soberania;
II - a cidadania
III - a dignidade da pessoa humana;
IV - os valores sociais do trabalho e da livre iniciativa;
V - o pluralismo político.
Parágrafo único. Todo o poder emana do povo, que o exerce por meio de representantes eleitos ou diretamente, nos termos desta Constituição.
Art. 2º São Poderes da União, independentes e harmônicos entre si, o Legislativo, o Executivo e o Judiciário.
Art. 3º Constituem objetivos fundamentais da República Federativa do Brasil:
I - construir uma sociedade livre, justa e solidária;
II - garantir o desenvolvimento nacional;
III - erradicar a pobreza e a marginalização e reduzir as desigualdades sociais e regionais;
IV - promover o bem de todos, sem preconceitos de origem, raça, sexo, cor, idade e quaisquer outras formas de discriminação.
Art. 4º A República Federativa do Brasil rege-se nas suas relações internacionais pelos seguintes princípios:
I - independência nacional;
II - prevalência dos direitos humanos;
III - autodeterminação dos povos;
IV - não-intervenção;
V - igualdade entre os Estados;
VI - defesa da paz;
VII - solução pacífica dos conflitos;
VIII - repúdio ao terrorismo e ao racismo;
IX - cooperação entre os povos para o progresso da humanidade;
X - concessão de asilo político.
Parágrafo único. A República Federativa do Brasil buscará a integração econômica, política, social e cultural dos povos da América Latina, visando à formação de uma comunidade latino-americana de nações.
TÍTULO II
Dos Direitos e Garantias Fundamentais
CAPÍTULO I
DOS DIREITOS E DEVERES INDIVIDUAIS E COLETIVOS
Art. 5º Todos são iguais perante a lei, sem distinção de qualquer natureza, garantindo-se aos brasileiros e aos estrangeiros residentes no País a inviolabilidade do direito à vida, à liberdade, à igualdade, à segurança e à propriedade, nos termos seguintes:
I - homens e mulheres são iguais em direitos e obrigações, nos termos desta Constituição;
II - ninguém será obrigado a fazer ou deixar de fazer alguma coisa senão em virtude de lei;
III - ninguém será submetido a tortura nem a tratamento desumano ou degradante;';
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;
}
function concatena($concatenaHierarquia) {
if ($contatenaParte = 1) {
$concatenaHierarquia .= $valorParte;
}
if ($contatenaLivro = 1) {
$concatenaHierarquia .= $valorLivro;
}
if ($contatenaTitulo = 1) {
$concatenaHierarquia .= $valorTitulo;
}
if ($contatenaSubtitulo = 1) {
$concatenaHierarquia .= $valorSubtitulo;
}
if ($contatenaCapitulo = 1) {
$concatenaHierarquia .= $valorCapitulo;
}
if ($contatenaSecoes = 1) {
$concatenaHierarquia .= $valorSecao;
}
if ($contatenaSubsecoes = 1) {
$concatenaHierarquia .= $valorsubsecao;
}
if ($contatenaArtigos = 1) {
$concatenaHierarquia .= $valorArtigo;
}
return $concatenaHierarquia;
}
// 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.";
$concatenaHierarquia = "";
$valorParte = "";
$valorLivro = "";
$valorTitulo = "";
$valorSubtitulo = "";
$valorCapitulo = "";
$valorSecao = "";
$valorsubsecao = "";
$valorArtigo = "";
$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){
$contatenaPars = 0;
// Verifica se tem o texto Linha na linha
$procuraLivro = strpos($novalinhas,$encontraLivro);
if ($procuraLivro === false){
$contatenaLivs = 0;
// Verifica se tem o texto título na linha
$procuraTitulo = strpos($novalinhas,$encontraTitulo);
if ($procuraTitulo === false){
$contatenaTits = 0;
// Verifica se tem o texto Subtítulo na linha
$procuraSubtitulo = strpos($novalinhas,$encontraSubtitulo);
if ($procuraSubtitulo === false){
$contatenaSubtits = 0;
// Verifica se tem o texto capítulo na linha
$procuraCapitulo = strpos($novalinhas,$encontraCapitulo);
if ($procuraCapitulo === false){
$contatenaCaps = 0;
// Verifica se tem o texto Seção na linha
$procuraSecao = strpos($novalinhas,$encontraSecao);
if ($procuraSecao === false){
$contatenaSecoes = 0;
// Verifica se tem o texto Subseção na linha
$procuraSubsecao = strpos($novalinhas,$encontraSubsecao);
if ($procuraSubsecao === false){
$contatenaSubsecoes = 0;
// Verifica se tem o texto Artigo na linha
$procuraArtigo = strpos($novalinhas,$encontraArtigo);
if ($procuraArtigo === false){
$contatenaArtigos = 0;
echo $novalinhas;
} else {
$contatenaArtigos = 1;
// Captura o número do artigo para atribuir na ID
$artigo = explode(" ", $novalinhas);
$caracteres = array("º",".");
$artigos = str_replace($caracteres, "", $artigo[1]);
$valorArtigo = 'artigo' . $artigos;
echo "</ul>";
echo '<ul id="' . $valorArtigo . '" class="artigo">';
echo $novalinhas;
$valorArtigo = 'artigo' . $artigos;
echo "Concatena: " . concatena($concatenaHierarquia);
}
} else {
$contatenaSubsecao = 1;
// Captura o número romano da Subseção para atribuir na ID
$subsecao = explode(" ", $novalinhas);
$caracteres = array("Subseção");
$subsecoes = romano($subsecao[1]);
$valorSubsecoes = 'subsecao' . $subsecoes;
echo "</ul>";
echo '<ul id="' . $valorSubsecoes . '" class="subsecao">';
echo $novalinhas;
echo "Concatena: " . concatena($concatenaHierarquia);
}
} else {
$contatenaSecao = 1;
// Captura o número romano da Subseção para atribuir na ID
$secao = explode(" ", $novalinhas);
$caracteres = array("Seção");
$secoes = romano($secao[1]);
$valorSecoes = 'secao' . $secoes;
echo "</ul>";
echo '<ul id="' . $valorSecoes . '" class="secao">';
echo $novalinhas;
echo "Concatena: " . concatena($concatenaHierarquia);
}
} else {
$contatenaCapitulo = 1;
// Captura o número romano da Subseção para atribuir na ID
$cap = explode(" ", $novalinhas);
$caracteres = array("CAPÍTULO");
$caps = romano($cap[1]);
$valorCapitulo = 'capitulo' . $caps;
echo "</ul>";
echo '<ul id="' . $valorCapitulo . '" class="capitulo">';
echo $novalinhas;
echo "Concatena: " . concatena($concatenaHierarquia);
}
} else {
$contatenaSubtitulo = 1;
$subtit = explode(" ", $novalinhas);
$caracteres = array("SUBTÍTULO");
$subtits = romano($subtit[1]);
$valorSubtitulo = 'subtitulo' . $subtits;
echo "</ul>";
echo '<ul id="' . $valorSubtitulo . '" class="subtitulo">';
echo $novalinhas;
echo "Concatena: " . concatena($concatenaHierarquia);
}
} else {
$contatenaTitulo = 1;
$tit = explode(" ", $novalinhas);
$caracteres = array("TÍTULO");
$tits = romano($tit[1]);
$valorTitulo = 'titulo' . $tits;
echo "</ul>";
echo '<ul id="' . $valorTitulo . '" class="titulo">';
echo $novalinhas;
echo "Concatena: " . concatena($concatenaHierarquia);
}
} else {
$contatenaLivro = 1;
$liv = explode(" ", $novalinhas);
$caracteres = array("LIVRO");
$livs = romano($liv[1]);
$valorLivro = 'livro' . $livs;
echo "</ul>";
echo '<ul id="' . $valorLivro . '" class="livro">';
echo $novalinhas;
echo "Concatena: " . concatena($concatenaHierarquia);
}
} else {
$contatenaParte = 1;
$par = explode(" ", $novalinhas);
$caracteres = array("PARTE");
$pars = romano($par[8]);
$valorParte = 'parte' . $pars;
echo "</ul>";
echo '<ul id="' . $valorParte. '" class="parte">';
echo $novalinhas;
echo "Concatena: " . concatena($concatenaHierarquia);
}
}
?>
Returns this error:
PHP Notice: Undefined variable: valueParte in /home/5DUrnw/Prog.php on line 155
He tells me that the variable was not defined, but on line 194, I defined it
Does anyone know why?
+1 and I think (I’m not sure, because I don’t know PHP in depth) that you can use the function as if it were a closure through its own syntax (fountain).
– mgibsonbr
I’m going to study about closure, but as far as the question is, I’m defining the variables outside the function, so they should work in the function, not that?
– Alê Moraes
@Alêmoraes, the variables defined outside the function are not the same used inside
concatena
.– rray
If I use the signature of the function you showed, I have this error > Warning: Missing argument 2 for concatena(), called in C: wamp www leis 1 - converter_txt_ul pesquisa_converter_txt_ul.php on line 300 and defined in C:wamp www laws 1 - converter_txt_ul pesquisa_converter_txt_ul.php on line 92
– Alê Moraes
he still doesn’t have this valueParte, né?
– Alê Moraes
@Anyway, you should call her once with all the arguments, so q seems this is not proper in your case, I’m thinking of another solution.
– rray
Thanks, what I intend to do is concatenate the hierarchies, I do not know if my approach is good
– Alê Moraes