Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

VitorBrown

str_replace e mysql

Recommended Posts

Bom estou desenvolvendo um sisteminha de notícias para estudo sou iniciante em php e queria saber como usar o str_replace e se da maneira que estou desenvolvendo é a correta, por favor me ajuda ):?

Esse é meu código

Eu quero que o $titulo2 fique sem caracteres como pontos, espaços e por ai vai.

Obrigado e até mais. =/

<?php
header('Content-Type: text/html; charset=utf-8');
include("php/conexao.php");
// executa a instrução SQL
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');
$titulo = $_POST['titulo'];
$titulo2 = $_POST['titulo'];
$descricao = $_POST['descricao'];
$imagem = $_POST['imagem'];
function trocar_acentos ($titulo2){
$titulo2 = str_replace(' ','_',$titulo2);
$titulo2 = str_replace('á','a',$titulo2);
$titulo2 = str_replace('â','a',$titulo2);
$titulo2 = str_replace('ã','a',$titulo2);
$titulo2 = str_replace('à','a',$titulo2);
$titulo2 = str_replace('Á','A',$titulo2);
$titulo2 = str_replace('À','A',$titulo2);
$titulo2 = str_replace('Â','A',$titulo2);
$titulo2 = str_replace('Ã','A',$titulo2);
$titulo2 = str_replace('è','e',$titulo2);
$titulo2 = str_replace('é','e',$titulo2);
$titulo2 = str_replace('ê','e',$titulo2);
$titulo2 = str_replace('É','E',$titulo2);
$titulo2 = str_replace('È','E',$titulo2);
$titulo2 = str_replace('Ê','E',$titulo2);
$titulo2 = str_replace('í','i',$titulo2);
$titulo2 = str_replace('ì','i',$titulo2);
$titulo2 = str_replace('î','i',$titulo2);
$titulo2 = str_replace('Í','I',$titulo2);
$titulo2 = str_replace('Ì','I',$titulo2);
$titulo2 = str_replace('Î','I',$titulo2);
$titulo2 = str_replace('ó','o',$titulo2);
$titulo2 = str_replace('ò','o',$titulo2);
$titulo2 = str_replace('ô','o',$titulo2);
$titulo2 = str_replace('Ó','O',$titulo2);
$titulo2 = str_replace('Ò','O',$titulo2);
$titulo2 = str_replace('ú','u',$titulo2);
$titulo2 = str_replace('ù','u',$titulo2);
$titulo2 = str_replace('ú','u',$titulo2);
$titulo2 = str_replace('û','u',$titulo2);
$titulo2 = str_replace('ü','u',$titulo2);
$titulo2 = str_replace('Ú','U',$titulo2);
$titulo2 = str_replace('Ù','U',$titulo2);
$titulo2 = str_replace('Û','U',$titulo2);
$titulo2 = str_replace('Ü','U',$titulo2);
$titulo2 = str_replace('Ç','C',$titulo2);
$titulo2 = str_replace('ç','c',$titulo2);
$titulo2 = strtolower($titulo2);
return $titulo2;
}
$sql = mysql_query("INSERT INTO categoria(categoria, descricao, imagem, titulo2) VALUES ('$titulo','$descricao','$imagem','$titulo2');");
if ($query == true) {
header("Location: Usuario.php?certinho"); }
else {
header("Location: Usuario.php?erro");
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se lhe ajuda:

/**
 * TurnLink
 *
 * Função criada para transformar strings substituindo caracteres especiais de forma que possam ser usadas como urls amigáveis.
 * Ex.: Recebe a string "Laço o cavalo no céu Noturno com o cão ao lado" retorna "laco-o-cavalo-no-ceu-noturno-com-o-cao-ao-lado" 
 *
 * @param $str String a ser filtrada.
 * @return string Retorna a string com os caracteres substituídos.
 */


function turnLink($str)
{
$str = trim($str);
$str = strtolower($str); //Tudo em minusculo
$a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ~^@#$%!\|/<>';
$b = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr------------';
$str = utf8_decode($str);
$str = strtr($str, utf8_decode($a), $b); //substitui letras acentuadas por "normais"
$str = str_replace(" ","-",$str); //modifica os espacos
$str = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
return  utf8_encode($str);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso tudo é desnecessário, daria para utilizar array ao invés de várias chamadas a mesma função.

 

Neste caso recomendo usar expressão regular.

<?php

$string = 'ÁÍÓÚÉÄÏÖÜËÀÌÒÙÈÃÕÂÎÔÛÊ   áíóúéäïöüëàìòùèãõâîôûêÇç';

echo strtolower( preg_replace( array( '/[`^~\'"]/', '/\W+/' ), array( null, '_' ), iconv( 'UTF-8', 'ASCII//TRANSLIT', $string ) ) );

Saída

aioueaioueaioueaoaioue_aioueaioueaioueaoaiouecc

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.