Arquivo da tag: string

PHP: Normalizar string para usar na URL amigável/dinâmica

A tempos atras aqui mesmo no blog, postei um artigo ensinando a Como fazer URLs amigaveis com .htaccess e php. Entretanto, para ficar mais completo, você pode incrementar a função abaixo:

1
2
3
4
5
6
7
8
function NormalizaURL($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;
}

ela fará que uma string se torne uma URL amigável, ou seja, de fácil leitura humana e dos buscadores (SEO).

Por exemplo, você tem uma noticia com o titulo:
Rihanna toma caipirinha, come picolé, tatua braço e faz castelo na areia no RJ

Ao passar pelo codigo, ira retornar:
rihanna-toma-caipirinha-come-picole-tatua-braco-e-faz-castelo-na-areia-no-rj

Agora é so montar a url como desejar, por exemplo:
http://seudominio.com.br/2134/rihanna-toma-caipirinha-come-picole-tatua-braco-e-faz-castelo-na-areia-no-rj.html

Onde, seudominio é o seu domínio, 2134 seria o ID da matéria no banco de dados, e o restante apenas uma mascara para indexação nos buscadores. ;)

Have Fun!

PHP: Função para procurar várias palavras em uma string

Bom, deu pra entender? ou entendeu sem dar? ;)

O meu problema era o seguinte, tenho um sistema de cadastro público mas alguns engraçadinhos gostavam de postar coisas bobas do tipo odeio fulano, ciclano é chato, etc. Então tinha que filtrar essa string, so que a função do PHP strpos só nos dá a opção de encontrar apenas uma palavra. Solução? Criei uma array, depurei chegando cada uma e pronto, se encontrar umas das palavras da array ele me retorna 1, não encontrou retorna 0.

Bom, a função esta abaixo para quem quiser:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Função para procura várias palavras em uma string
function procpalavras ($frase, $palavras, $resultado = 0) {
      foreach ( $palavras as $key => $value ) {
      $pos = strpos($frase, $value);
      if ($pos !== false) { $resultado = 1; break; }
      }
  return $resultado;
}

// Exemplo 1 - Nenhuma palavra encontrada, retorna zero
$frase = "eu tenho uma galinha que se chamava merilu";
$palavras = array ("coelho","cavalo","formiga","cachorro","gato");
echo "Resultado: " . procpalavras($frase, $palavras) . "<br />";

// Exemplo 2 - Uma ou mais palavra encontrada, retorna um
$frase = "eu tenho um coelho que se chamava zé";
$palavras = array ("coelho","cavalo","formiga","cachorro","gato");
echo "Resultado: " . procpalavras($frase, $palavras) . "<br />";

Gostou? Comenta… Não gostou? Comenta também…