Jump to content
marcossantana10

Problema em função que retira acento e espaço

Recommended Posts

To criando um blog e preciso salvar a imagem que upo junto com a noticia com o nome do título dessa notícia, porém, sem acentos e espaços. Uso uma função que tá resolvendo o problema dos espaços, no entanto, não o dos caracteres especiais.

 

Função:

function formataUrl($nome){
    $url = strtolower($nome);
    $url = str_replace(" ", "-", $url);
    $url = preg_replace(array("/(á|à|ã|â|ä)/","/(Á|À|Ã|Â|Ä)/","/(é|è|ê|ë)/","/(É|È|Ê|Ë)/","/(í|ì|î|ï)/","/(Í|Ì|Î|Ï)/","/(ó|ò|õ|ô|ö)/","/(Ó|Ò|Õ|Ô|Ö)/","/(ú|ù|û|ü)/","/(Ú|Ù|Û|Ü)/","/(ñ)/","/(Ñ)/"),explode(" ","a A e E i I o O u U n N"), $url);

    return $url;
}

 

Eu uso assim:

    $titulo = $_POST['titulo'];
    $data = $_POST['data'];
    $autor = $_POST['autor'];
    $url = formataUrl($titulo);
    $texto = $_POST['texto'];
    $capa = $_FILES['capa'];

 

Logo, se eu cadastrar: "Função de teste", ele deveria salvar no banco: "funcao-de-teste", mas ele salva: "fun????o-de-teste".

Dá pra ver onde estou errando?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Nightmare SEP
      Bom dia,
      Estou com problema com acentos no PHPMailer (classe para envio de e-mails). Conforme anexo.
       
      Na configuração do e-mail de destinatário, o nome do destinatário tem acento, quando enviado o e-mail, ao invés de aparecer o nome, aparece aqueles caracteres ali (conforme anexo).
      Acontece o mesmo se eu coloco acentuação no assunto do e-mail.
       
      require("../phpmailer/class.phpmailer.php"); $mail = new PHPMailer(); $mail->IsHTML(true); $mail->CharSet = 'utf-8';  
      Será que pode ser algo no php.ini? Lá eu vi que está marcado o default_charset = 'utf-8'. Ou não tem nada a ver?
       
      EDITANDO:
      Funciona os acentos no corpo do e-mail. Só não funciona no ASSUNTO e no NOME DO DESTINATÁRIO.
       

    • By Jonathan Gibim
      Estou precisando fazer consultas em tabelas com CHARSET UTF-8  e COLLATION utf8_general_ci os dados no BD ficam salvos da seguinte forma
       
      Ex: São Paulo no BD fica São Paulo
       
      Ao buscar "São Paulo" eu converto para São Paulo e realizo a busca normalmente, porem ao buscar "Sao Paulo" sem a acentuação não me retorna nada, tem alguma ideia do que posso fazer?
    • By ricardosac
      Boa tarde!
       
      Alguém possa me ajudar a resolver o problema de como remover acentuação e espaços.
       
      Ao selecionar estado Alagoas e cidade Barra de São Miguel, retorna assim Barra de São Miguel.html e que deveria ser substituído por barradesaomiguel.html.
      Segue abaixo:
       
      <div id="wrap">
                <form name="myForm" action method="post">
                <select class="selcls" name="estados" onchange="updateModels(this.form)">
                  <option>Selecione estado</option>
                  <option>Acre</option>
                  <option>Alagoas</option>

                  </select> <select class="selcls" name="cidades"></select>
                  <input id="B1" type="button" value="Ok" class="btn btn-primary">
                </form>
              </div>

              <script type="text/javascript">
              var cidades = [];
             cidades.Acre = ['Rio Branco','Acrelândia','Assis Brasil','Brasiléia','Bujari','Capixaba','Cruzeiro do Sul','Epitaciolândia','Feijó','Jordão','Mâncio Lima','Manoel Urbano','Marechal Thaumaturgo','Plácido de Castro','Porto Acre','Porto Walter','Rodrigues Alves',  'Santa Rosa do Purus','Sena Madureira','Senador Guiomard','Tarauacá','Xapuri'];
             cidades.Alagoas = ['Maceió','Água Branca','Anadia','Arapiraca','Atalaia','Barra de Santo Antônio','Barra de São Miguel','Batalha','Belém','Belo Monte','Boca da Mata','Branquinha','Cacimbinhas','Cajueiro','Campestre','Campo Alegre','Campo Grande','Canapi','Capela','Carneiros','Chã Preta','Coité do Nóia','Colônia Leopoldina','Coqueiro Seco','Coruripe','Craíbas',  'Delmiro Gouveia','Dois Riachos','Estrela de Alagoas','Feira Grande','Feliz Deserto','Flexeiras','Girau do Ponciano','Ibateguara','Igaci','Igreja Nova','Inhapi','Jacaré dos Homens','Jacuípe','Japaratinga','Jaramataia','Jequiá da Praia','Joaquim Gomes','Jundiá','Junqueiro','Lagoa da Canoa','Limoeiro de Anadia','Major Isidoro','Mar Vermelho','Maragogi','Maravilha','Marechal Deodoro','Maribondo','Mata Grande','Matriz de Camaragibe','Messias','Minador do Negrão','Monteirópolis','Murici','Novo Lino','Olho d\'Água das Flores','Olho d\'Água do Casado','Olho d\'Água Grande','Olivença','Ouro Branco','Palestina','Palmeira dos Índios','Pão de Açúcar','Pariconha','Paripueira','Passo de Camaragibe','Paulo Jacinto', 'Penedo','Piaçabuçu','Pilar','Pindoba','Piranhas','Poço das Trincheiras','Porto Calvo','Porto de Pedras','Porto Real do Colégio','Quebrangulo','Rio Largo','Roteiro','Santa Luzia do Norte','Santana do Ipanema','Santana do Mundaú','São Brás','São José da Laje','São José da Tapera','São Luís do Quitunde','São Miguel dos Campos','São Miguel dos Milagres','São Sebastião','Satuba','Senador Rui Palmeira','Tanque d\'Arca','Taquarana','Teotônio Vilela','Traipu','União dos Palmares','Viçosa'];
              // ---
              function updateModels(theForm) 
               { if(theForm.estados.selectedIndex<1){return false; }
                 var op=theForm.estados.options;
                 var newModels = cidades[op[op.selectedIndex].value];
                 theForm.cidades.options.length = 0;
                 theForm.cidades.options[0] = new Option("Selecione cidade", "");
                 theForm.cidades.options[0].selected = true;
                 for (var i=0; i<newModels.length; i++) 
                 { theForm.cidades.options[i+1] = new Option(newModels, newModels); }  
               }
              // ---
              // check both selections have been made
               document.getElementById("B1").onclick=function(event)
                { event=event || window.event;
                  var targElem = event.target || event.srcElement;
                  var thisForm=targElem.parentNode;
                  if(thisForm.estados.selectedIndex>0 && thisForm.cidades.selectedIndex>0)
                    { var cidadesP= thisForm.cidades;
                            location.href= cidadesP[cidadesP.selectedIndex].value+".html"; }
                      else { return false; } 
                }

              </script>
    • By marcelocardoso
      olá galera..
      como faço para resolver na hora de gravar no banco de dados, tipo:

      tenho a variavel::::   não precisa mais vir pra cima do meu .....
      ele guarda no banco assim>>>>   n227o precisa mais vir pra cima meu ....

      Como posso resolver isso, estou usando ASP,
      tem alguma função para usar antes de gravar...
    • By Jack Oliveira
      Ola pessoal boa tarde
      alguém teria alguma tabela de Caracteres Especiais que poderia me passar que seja desse formato
       
      á ... Ã¡
      ã ....ã
      ç ... Ã§
      í ....
      õ ...
      ô ..
      ú...
      ê..
      é..
      à..
      è..
       
       
      uma tabela que seja completa com este seguinte caracteres ai com todos os acentuação das letras
       
      Eu tava usando assim mais quando meu o meu código function ela estava dando erro ao mostra a letra correta  [Não]
      minha pagina ficava toda em branco
      function DestaqueSN($Destaque){ if ($Destaque == 'S') { echo '<span class="btn btn-info">Sim</span>'; } elseif ($Destaque == 'N') { echo '<span class="btn btn-danger">N&atilde;o</span>'; } }  Ai mudei para este aqui que deu certo porem falta algumas caracteres ainda para que toda as letras apareça com seus acentos 
       
       
      function DestaqueSN($Destaque){ if ($Destaque == 'S') { echo '<span class="btn btn-info">Sim</span>'; } elseif ($Destaque == 'N') { echo '<span class="btn btn-danger">Não</span>'; } }   Esta é a minha função ela esta de boa até aqui
      function UrlAmigavel($str){ $str = strtolower(utf8_decode($str)); $i=1; $str = strtr($str, utf8_decode('àáâãäåæçèéêëìíîïñòóôõöøùúûýýÿ'), 'aaaaaaaceeeeiiiinoooooouuuyyy'); $str = preg_replace("/([^a-z0-9])/",'-',utf8_encode($str)); while($i>0) $str = str_replace('--','-',$str,$i); if (substr($str, -1) == '-') $str = substr($str, 0, -1); return $str; } Bom sendo mais claro no meu problema no meu formulário estou fazendo assim
      EX: se eu colocar assim ele da aquele erro de acentos
       
      <div class="col-md-6"> <div class="form-group"> <label>Endereço:</label> <input class="form-control" onkeypress="ucfirst()" value="<?php echo $dados['endereco']; ?>" name="endereco"> </div> </div>  ai tive que fazer que fazer assim para que aparecesse a letra ç
      <div class="col-md-6"> <div class="form-group"> <label>Endereço:</label> <input class="form-control" onkeypress="ucfirst()" value="<?php echo $dados['endereco']; ?>" name="endereco"> </div> </div> Eu tenho mais alguns campos desse que tem acentos só que não sei todos, se alguém estiver todas as tabelas completas fico grato
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.