Autor Tópico: Função não está funcionando através da "Biblioteca Interna"  (Lida 513 vezes)

JamTC

  • Novato
  • *
  • Mensagens: 49
Função não está funcionando através da "Biblioteca Interna"
« Online: Abril 05, 2016, 03:45:15 pm »
Olá a todos!

Estou enfrentando um problema:

A função a seguir funciona perfeitamente quando utilizada no próprio formulário onde eu a utilizo, ou seja, de modo direto. Porém quando tento utilizá-la, chamando-a de dentro de uma Biblioteca Interna, a mesma não funciona adequadamente.

-x-

Modo Direto:

$string = "Ação";

$string = ereg_replace("[^a-zA-Z0-9_()]", "", strtr($string, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ ", "aaaaeeiooouucAAAAEEIOOOUUC_"));


// Retorna: Acao

Modo Função:

//* No Formulário
$string = RemoveAcentos("Ação");

//* Na Biblioteca Interna
function RemoveAcentos($string) {
   $string = ereg_replace("[^a-zA-Z0-9_()]", "", strtr($string, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ ", "aaaaeeiooouucAAAAEEIOOOUUC_"));
   return $string;
}


// Retorna: Ao

-x-

Tudo me leva a crer que é um BUG no SC.

Alguém pode me ajudar?

[]s.
« Última modificação: Abril 05, 2016, 04:09:46 pm por JamTC »

Yuri Esteves

  • Administrator
  • Expert
  • *****
  • Mensagens: 818
    • Email
Re:Função não está funcionando através da "Biblioteca Interna"
« Responder #1 Online: Abril 05, 2016, 03:49:26 pm »
Qual o tipo de aplicação e evento que você está chamando esse método?

JamTC

  • Novato
  • *
  • Mensagens: 49
Re:Função não está funcionando através da "Biblioteca Interna"
« Responder #2 Online: Abril 05, 2016, 04:01:02 pm »
Oi Yuri,

Boa tarde!

Estava chamando essa função de várias aplicações tipo "Formulário" (OnValidate).

Depois que desconfiei que não estava funcionando, abri uma aplicação tipo "Blank" e no (OnExecute), fiz todos os tipos de teste e constatei que, de fato, não funciona se chamada da "Biblioteca Interna".

Estranho não é?
« Última modificação: Abril 05, 2016, 04:07:30 pm por JamTC »

Jailton

  • Expert
  • *****
  • Mensagens: 2030
Re:Função não está funcionando através da "Biblioteca Interna"
« Responder #3 Online: Abril 05, 2016, 04:13:34 pm »
Oi Yuri,

Boa tarde!

Estava chamando essa função de várias aplicações tipo "Formulário" (OnValidate).

Depois que desconfiei que não estava funcionando, abri uma aplicação tipo "Blank" e no (OnExecute), fiz todos os tipos de teste e constatei que, de fato, não funciona se chamada da "Biblioteca Interna".

Estranho não é?

Não é estranho não, heheh é falta, de alocar corretamente a sua função na sua 'biblioteca interna'.

Use sempre: <?php  antes da sua função e depois dela  ?>, se não o SC não reconhece a função na Biblioteca.

Código: [Selecionar]
<?php
/*
Função para tirar os acentos de uma string! pode ser adaptadas para outras coisas

Como usar:
echo RemoveAcentos("Amanhã não irei caçar");
*/

function RemoveAcentos($string) {
   
$string ereg_replace("[^a-zA-Z0-9_()]"""strtr($string"áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ ""aaaaeeiooouucAAAAEEIOOOUUC_"));
   return 
$string;
}

?>


<?php
Aqui já é outra função que você vai colocar na sua Biblioteca e assim sucessivamente
.
?>



E depois para usar, só ativar na sua app:
« Última modificação: Abril 05, 2016, 04:16:02 pm por Jailton »
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

JamTC

  • Novato
  • *
  • Mensagens: 49
Re:Função não está funcionando através da "Biblioteca Interna"
« Responder #4 Online: Abril 05, 2016, 04:33:04 pm »
Oi Jailton,

Boa tarde!

Sei disso tudo e lhe digo que tudo isso foi feito.

Tenho outras funções, na mesma biblioteca, e elas estão funcionando OK.

O problema é que a função, apesar de reconhecida e executada, não traz o retorno desejado e é isso que acho que não está correto.

Só postei aqui porque, apesar de tudo estar correto, não funciona.

Bem deixa eu exemplificar como está minha Biblioteca:

Biblioteca.php

<?php

Funcao1{
...
}

Funcao2{
...
}

Funcao3{
...
}

?>


Não está correta?
« Última modificação: Abril 05, 2016, 04:53:45 pm por JamTC »

Jailton

  • Expert
  • *****
  • Mensagens: 2030
Re:Função não está funcionando através da "Biblioteca Interna"
« Responder #5 Online: Abril 05, 2016, 04:52:34 pm »
Oi Jailton,

Boa tarde!

Sei disso tudo e lhe digo que tudo isso foi feito.

Tenho outras funções, na mesma biblioteca, e elas estão funcionando OK.

O problema é que a função, apesar de reconhecida e executada, não traz o retorno desejado e é isso que acho que não está correto.

Só postei aqui porque, apesar de tudo estar correto, não funciona.

Bem deixa eu exemplificar pois possa estar usando a biblioteca de forma errada:

Biblioteca.php

<?php

Funcao1{
...
}

Funcao2{
...
}

Funcao3{
...
}


?>


Não está correto?

Usa a minha pra testar:
Código: [Selecionar]
<?php
/*
Função para tirar os acentos de uma string! pode ser adaptadas para outras coisas

echo RemoveAcentos("Amanhã não irei caçar");
*/

function RemoveAcentos($Msg) {

$Msg=str_replace('Â''A'$Msg);
$Msg=str_replace('À''A'$Msg);
$Msg=str_replace('Á''A'$Msg);
$Msg=str_replace('Ä''A'$Msg);
$Msg=str_replace('Ã''A'$Msg);

$Msg=str_replace('â''a'$Msg);
$Msg=str_replace('ã''a'$Msg);
$Msg=str_replace('à''a'$Msg);
$Msg=str_replace('á''a'$Msg);
$Msg=str_replace('ä''a'$Msg);

$Msg=str_replace('Ê''E'$Msg);
$Msg=str_replace('È''E'$Msg);
$Msg=str_replace('É''E'$Msg);
$Msg=str_replace('Ë''E'$Msg);

$Msg=str_replace('ê''e'$Msg);
$Msg=str_replace('è''e'$Msg);
$Msg=str_replace('é''e'$Msg);
$Msg=str_replace('ë''e'$Msg);

$Msg=str_replace('Î''I'$Msg);
$Msg=str_replace('Í''I'$Msg);
$Msg=str_replace('Ì''I'$Msg);
$Msg=str_replace('Ï''I'$Msg);

$Msg=str_replace('î''i'$Msg);
$Msg=str_replace('í''i'$Msg);
$Msg=str_replace('ì''i'$Msg);
$Msg=str_replace('ï''i'$Msg);

$Msg=str_replace('Ô''O'$Msg);
$Msg=str_replace('Õ''O'$Msg);
$Msg=str_replace('Ò''O'$Msg);
$Msg=str_replace('Ó''O'$Msg);
$Msg=str_replace('Ö''O'$Msg);

$Msg=str_replace('ô''o'$Msg);
$Msg=str_replace('õ''o'$Msg);
$Msg=str_replace('ò''o'$Msg);
$Msg=str_replace('ó''o'$Msg);
$Msg=str_replace('ö''o'$Msg);

$Msg=str_replace('Û''U'$Msg);
$Msg=str_replace('Ù''U'$Msg);
$Msg=str_replace('Ú''U'$Msg);
$Msg=str_replace('Ü''U'$Msg);

$Msg=str_replace('û''U'$Msg);
$Msg=str_replace('ú''U'$Msg);
$Msg=str_replace('ù''U'$Msg);
$Msg=str_replace('ü''U'$Msg);

$Msg=str_replace('¦'''$Msg);
$Msg=str_replace(chr(34),''$Msg);
$Msg=str_replace(chr(39),''$Msg);
$Msg=str_replace('ç''c'$Msg);
$Msg=str_replace('Ç''C'$Msg);
$Msg=str_replace('ª''a.'$Msg);
$Msg=str_replace('º''o.'$Msg);

$String="";

for ($j 0;$j <= strlen($Msg); $j++) {
if (ord(substr($Msg$j,1))<=122) {
$String=$String substr($Msg$j1);
}
}

    
$Msg=$String;

return $Msg;

// Fim da Função: RemoveAcentos($Msg)

?>

O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

JamTC

  • Novato
  • *
  • Mensagens: 49
Re:Função não está funcionando através da "Biblioteca Interna"
« Responder #6 Online: Abril 05, 2016, 05:01:44 pm »
Oi Jailton,

Testei!

Obtive o mesmo resultado.

//Retorna: Ao

Só para constar utilizo o Charset Default que é "ISO-8859-1" para todas as minhas aplicações.

O que será?

:(
« Última modificação: Abril 05, 2016, 05:50:41 pm por JamTC »

Jailton

  • Expert
  • *****
  • Mensagens: 2030
Re:Função não está funcionando através da "Biblioteca Interna"
« Responder #7 Online: Abril 05, 2016, 05:50:11 pm »
Oi Jailton,

Testei!

Obtive o mesmo resultado.

//Retorna: Ao

O que será?

:(

Verifica o charset do projeto e da sua app, coloca tudo utf8 que deve resolver.
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

JamTC

  • Novato
  • *
  • Mensagens: 49
Re:Função não está funcionando através da "Biblioteca Interna"
« Responder #8 Online: Abril 05, 2016, 05:57:31 pm »
Oi Jailton,

Não tem outro jeito?

Se eu mudar o charset para utf-8, tudo o que já foi cadastrado irá ser mostrado com caracteres esquisitos, em certos casos.

:(

Jailton

  • Expert
  • *****
  • Mensagens: 2030
Re:Função não está funcionando através da "Biblioteca Interna"
« Responder #9 Online: Abril 05, 2016, 06:02:36 pm »
Oi Jailton,

Não tem outro jeito?

Se eu mudar o charset para utf-8, tudo o que já foi cadastrado irá ser mostrado com caracteres esquisitos, em certos casos.

:(


Mas é por isso que esta afetando esta função a falta do utf8 'tá quebrando o código'.
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

thiagorodrigo

  • Novato
  • *
  • Mensagens: 3
    • Email
Re:Função não está funcionando através da "Biblioteca Interna"
« Responder #10 Online: Junho 30, 2016, 10:25:16 am »
Bom dia, eu estou com esse problema também e não entendo o que está acontecendo. Tenho uma aplicação que chama uma biblioteca com 7 funções, quando clico pra processar os dados que passam por essas funções, no browser da um Fatal Error falando que a primeiraFuncao() não existe, tentei trocar de ordem das funções dentro da biblioteca e sempre a primeira não é reconhecida, trocando só o nome da função no Fatal Error. Quando coloco elas na própria aplicação funciona normal, o que me leva a crer que não é erro de programação.

Alguém faz alguma ideia?

Desde já agradeço.
PS.: É minha primeira postagem de dúvida, se não for aqui me ajudem pf.

Anderson Mamede

  • Iniciante
  • **
  • Mensagens: 84
    • andersonmamede.com.br
Re:Função não está funcionando através da "Biblioteca Interna"
« Responder #11 Online: Junho 30, 2016, 11:33:08 am »
thiagorodrigo


Recomendo você criar um novo tópico para seu problema, pois é diferente do problema que o JamTC estava tendo.