[Resolvido] Url EspaçO Inicio E Final
#1
Posted 16/07/2010, 07:19
#2
Posted 16/07/2010, 08:27
Seguinte, utilize a função str_replace:
<?php $url = "testando a url.html"; str_replace(" ", "", $url) echo $url; //Será exibido testandoaurl.html ?>
Fanzendo isto todos os caracteres conhecidos como " " (espaço) serão substituídos por "" (não espaço).
Acho que era isso, qualquer coisa posta ai.
Abraço
"O impossível é apenas questão de opinião" J.W.
--------------------------
Att.
Alan Martini
#3
Posted 16/07/2010, 11:03
/*** * Função para remover acentos de uma string * * @autor Thiago Belem <contato@thiagobelem.net> */ function removeAcentos($string, $slug = false) { $string = strtolower($string); // Código ASCII das vogais $ascii['a'] = range(224, 230); $ascii['e'] = range(232, 235); $ascii['i'] = range(236, 239); $ascii['o'] = array_merge(range(242, 246), array(240, 248)); $ascii['u'] = range(249, 252); // Código ASCII dos outros caracteres $ascii['b'] = array(223); $ascii['c'] = array(231); $ascii['d'] = array(208); $ascii['n'] = array(241); $ascii['y'] = array(253, 255); foreach ($ascii as $key=>$item) { $acentos = ''; foreach ($item AS $codigo) $acentos .= chr($codigo); $troca[$key] = '/['.$acentos.']/i'; } $string = preg_replace(array_values($troca), array_keys($troca), $string); // Slug? if ($slug) { // Troca tudo que não for letra ou número por um caractere ($slug) $string = preg_replace('/[^a-z0-9]/i', $slug, $string); // Tira os caracteres ($slug) repetidos $string = preg_replace('/' . $slug . '{2,}/i', $slug, $string); $string = trim($string, $slug); } return $string; }
Bom dia Dr. House M.D.
Seguinte, utilize a função str_replace:<?php $url = "testando a url.html"; str_replace(" ", "", $url) echo $url; //Será exibido testandoaurl.html ?>
Fanzendo isto todos os caracteres conhecidos como " " (espaço) serão substituídos por "" (não espaço).
Acho que era isso, qualquer coisa posta ai.
Abraço
EIA - Empreendimentos Informática e Administração
Twitter: twitter.com/eder_frances
#4
Posted 16/07/2010, 13:16
<?php // Este e título que o usuário digitou e será transformado em URL. $url = " testando a url "; str_replace(" ", "", $url); $urlFinal = strtolower(str_replace(" ", '-', $url)); echo $urlFinal.".html"; //Está exibido testandoaurl.html tudo bem ele retira todos os espaços mais teria que ser só o do inicio e do final como deixado digitado pelo usuário acima na string $url. // Onde o resultado que preciso seria testando-a-url.html, se não tiver a verificação de espaços no inicio e fim e deixar a url está sendo gerada assim -testando-a-url-.html ?>
Será possível este tipo de verificação? Obrigado por me responder.
#5
Posted 16/07/2010, 13:48
Certo, então o que pode ser feito é:
<?php $url = "testando a url.html"; //vai criar um array com as palavras separadas onde tiver espaço $separando = explode(" ",$url); //vai juntar o array separando por traço ( - ) $urlnova = implode("-",$separando); echo $url; //Será exibido testando-a-url.html ?>
"O impossível é apenas questão de opinião" J.W.
--------------------------
Att.
Alan Martini
#6
Posted 16/07/2010, 15:08
<?php // String principal de teste de titulo digitado pelo usuario onde será gerado a url. // Veja que o usuario digitou muitos espaços se for gerar uma url com o acima retornaria -testando-a-url-d-a--------------.html ou seja não removeu espaços desnecessario na url e nem retirou espaços inicial ou final caso tinha para não iniciar com hifem na subistituição em espaço. $url = " testando a url d a "; //vai criar um array com as palavras separadas onde tiver espaço $separando = explode(" ",$url); // Faz a contagem de explode $nPalavras = count($separando); // Incia o for da contagem de n de palavras. for((int) $i=0; $i <= $nPalavras; $i++){ // Usei trim para remover espaços caso tenha sido no explode verifica se e vazio caso não verdadeiro. if(trim($separando[$i]) <> NULL){ // A primeira palavra so inicia. if ($i == 1){ // Inicia a criar a url. $urlfinal .= $separando[$i]; }else{ // Juntar separando depois da primeira por traço ( - ). $urlfinal .= "-".$separando[$i]; } } } echo $urlfinal.".html"; //Será exibido testando-a-url-d-a.html ?>
Obrigado desde já.
#7
Posted 16/07/2010, 16:46
O que pode ser feito é uma verificação de caracteres especiais, pode ser feito no recebimento da URL.
<?php public static function removerAcentos($var) { $acentos = array('ã','á','â','é','ê','í','õ','ó','ú','Ã','Á','Â','É','Ê','Í','Õ','Ó','Ú'); $normais = array('a','a','a','e','e','i','o','o','u','A','A','A','E','E','I','O','O','U'); $var = str_replace($acentos, $normais, $var); $especiais = array('/','|','*',':','[',']','{','}',"'",'"','(', ')','<','>',','); $var = str_replace($especiais, '', $var); $var = str_replace(' ', '', $var); $var = strtolower($var); return $var; } ?>
Isso ai, abraço.
"O impossível é apenas questão de opinião" J.W.
--------------------------
Att.
Alan Martini
#8
Posted 16/07/2010, 17:08
Com expressão regular saia mais fácil isso aí.Olá amigos olha o codigo que montei se puder dar uma olhada e opinar para ajudar a melhorar ele:
<?php // String principal de teste de titulo digitado pelo usuario onde será gerado a url. // Veja que o usuario digitou muitos espaços se for gerar uma url com o acima retornaria -testando-a-url-d-a--------------.html ou seja não removeu espaços desnecessario na url e nem retirou espaços inicial ou final caso tinha para não iniciar com hifem na subistituição em espaço. $url = " testando a url d a "; //vai criar um array com as palavras separadas onde tiver espaço $separando = explode(" ",$url); // Faz a contagem de explode $nPalavras = count($separando); // Incia o for da contagem de n de palavras. for((int) $i=0; $i <= $nPalavras; $i++){ // Usei trim para remover espaços caso tenha sido no explode verifica se e vazio caso não verdadeiro. if(trim($separando[$i]) <> NULL){ // A primeira palavra so inicia. if ($i == 1){ // Inicia a criar a url. $urlfinal .= $separando[$i]; }else{ // Juntar separando depois da primeira por traço ( - ). $urlfinal .= "-".$separando[$i]; } } } echo $urlfinal.".html"; //Será exibido testando-a-url-d-a.html ?>
Obrigado desde já.
$urlFinal = preg_replace("\s+", "-", trim($url));
Com o trim você já mata os espaços no começo e no final. Depois com a expressão regular trocar qualquer seqüência de espaços por um hífen. Usar também uma função como essa removerAcentos é bom.
$urlFinal = removerAcentos(preg_replace("\s+", "-", trim($url)));
#9
Posted 16/07/2010, 17:24
#10
Posted 16/07/2010, 17:28
$urlFinal = preg_replace("/\s+/", "-", trim($url));
#11
Posted 16/07/2010, 17:37
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)