Mudar primeira letra minúscula de frase para Maiúscula com PHP

Existem modos de transformar a primeira letra de uma frase ou texto em maiúscula usando PHP, claro que nem sempre a coisa é tão fácil e completa por tratar-se de um trabalho não humano, mas, vou mostrar algum modo de fazer essa mudança de letras minúsculas para maiúsculas.

Exemplo 1, tenta transforma a primeira letra da string em maiúscula

Esse código usa ucfirst que tem essa função de transformar a primeira letra(caractere) da string em maiúscula, mas é falho por não mudar acentuadas, Ç ou caracteres não alfabéticos serão considerados como o primeiro, aí ferra tudo.

<?php

$Frase = 'este é o meu texto super coerente';
// Transforma o primeiro caracter do texto em maiuscula, desde que não começe com espaço, nem ç, nem acentuada
$FirstLetterM=ucfirst($Frase);

// exibir meu texto
echo $FirstLetterM;
// Resulta em 'Este é o meu texto super coerente'
?>

Este exemplo acima, bem simples, como você vê tem um problema, se começar com uma acentuada ele simpesmente nada fará, só manterá o texto ou frase normalmente

Exemplo 2, com filtros "fortes" para trocar acentuadas minusculas


Esse filtro usa o primeiro código acima e depois um outro filtro de caracteres difinidos por você, para saber mais clique, só que, eu programei o apenas para alguns caracteres, caberá a você mudar, se quiser

<?php

$Frase = '  é este o meu texto que começa com acentuada';
// Transforma o primeiro caracter do texto em maiuscula, desde que não começe com espaçamento, nem ç, nem acentuadas
$FirstL=ucfirst($Frase);

// 'concatena' uns caracteres qualquer '§on§' que para saber o início do texto
$PrimeiraLetra='§on§'.$FirstL;
// agora meu texto virou: '§on§  é este o meu texto que começa com acentuada'

// se meu texto começar com espaçamento esse filtro tirar até 5
$FiltraEspaco=array("§on§     "=>"§on§","§on§    "=>"§on§","§on§   "=>"§on§","§on§  "=>"§on§","§on§ "=>"§on§");
$NotFirstSpace=strTr($PrimeiraLetra,$FiltraEspaco);
// agora meu texto virou: '§on§é este o meu texto que começa com acentuada'

// quando encontrar §on§ seguido de ç, é, á, ó, ú, í  troca por §on§ seguida de maiúscula que eu defini
$FiltraMinuscula=array("§on§ç"=>"§on§Ç","§on§é"=>"§on§É","§on§á"=>"§on§Á","§on§ó"=>"§on§Ó","§on§ú"=>"§on§Ú","§on§í"=>"§on§Í");
$AsMaiuscula=strTr($NotFirstSpace,$FiltraMinuscula);
// agora meu texto virou: '§on§É este o meu texto que começa com acentuada'

// retirar os caracteres feios '§on§' do inicio do texto
$TiraLixo=array("§on§"=>"");
$AgoraMaiuscula=strTr($AsMaiuscula,$TiraLixo);
// agora meu texto virou: 'É este o meu texto que começa com acentuada'


// exibir meu texto
echo $AgoraMaiuscula;
// Resulta em 'É este o meu texto que começa com acentuada'
?>


Exemplo 3, tentará mudar a primeira letra da string para maiúscula

Esse código usa strtoupper que tem essa função de transformar as letra da string em maiúscula, mas é falho por não mudar acentuadas ou Ç e aqui, ele vai pegar só a primeira letra da string $str, pego a primeira letra com $str[0] e se eu quisesse a segunda usaria $str[1] e a terceira $str[2] e assim sucessivamente

<?php
$str= 'eis a minha frase';

// Pega o primeiro caractere da string e tenta converter em maiuscula
$str[0]=strtoupper($str);

// exibir minha frase
echo $str;
// Resultar em: 'Eis a minha frase'
?>


Só para criar minhocas nas nossas cabeças, e para dar mais uma amostragem desse último exemplo, já que interessante, vamos que eu queira mudar o terceira caractere(se letra) por uma maiúscula, claro, desde que não acentuada ou...
<?php
$str= 'eis a minha frase';

// Pega o primeiro caractere da string e tenta converte em maiúscula
$str[2]=strtoupper($str[2]);

// exibir minha frase
echo $str;
// Resultar em: 'eiS a minha frase'
?>


Código para Php substituição de caracteres de texto ou frase

Código simples em PHP que pode ser usado para substituição de caracteres diversos, letras, números, etc.
Código php para trocar palavras, letras, numeros e caracteres
Não vou dar muitas explicações porque não tem muito o que explicar, quem gosta de PHP precisa ser capas de, ao observar um código simples entender seu funcionamento, e quem souber o básico já poderá olhar os exemplos e decifrar.

Vendo o código abaixo entenda que o que será mudado é cada palavra da frase que dizer 'precisa' ela será substituída por 'é preciso'.
<?php
$FraseTexto='Para mudar não precisa inovar, para melhorar, precisa fazer diferente';

$TrocaCaractere = array("precisa" => "é preciso");
$JaMudouUnsCaracteres=strTr($FraseTexto, $TrocaCaractere);

echo $JaMudouUnsCaracteres;
// Para mudar não é preciso inovar, para melhorar, é preciso fazer diferente
?>


O exemplo abaixo é semelhante, mas mudei um pouco, agora quero duas substituições diferentes, as palavras 'não precisa' serão trocadas por 'melhor é' e depois irá substituir também 'fazer diferente' por 'muita qualidade!'

<?php
$FraseTexto='Para mudar não precisa inovar, para melhorar, precisa fazer diferente';

$TrocaCaractere = array("não precisa" => "melhor é", "fazer diferente" => "muita qualidade!");
$JaMudouUnsCaracteres=strTr($FraseTexto, $TrocaCaractere);

echo $JaMudouUnsCaracteres;
// Para mudar melhor é inovar, para melhorar, precisa muita qualidade!
?>


Assim eu posso criar diversas substituições, para muitos tipos de caracteres, alfanuméricos, acentuações, etc... mas, como sempre, códigos são complicados, alguns caracteres podem ser interpretados como parte do código, e, qualquer caracter errado num código PHP pode dar erro, agora, um exemplo mais complexo:

<?php
$FraseTexto='PEC280 pra reduzir número de deputados pela metade, pro Brasil economizar mais de meio bilhão anualmente, cada 1 dos 513 custa em média 170 mil mensalmente';


$TrocaCaractere = array(" pra " => " para ", " pro " => " para o ", "economizar " => "deixar de gastar ", "mensalmente" => "ao mês", " 1 " => " um ", " 2 " => " dois ", " reduzir " => " diminuir ", " em média " => " mais ou menos ", "anualmente" => "ao ano", "PEC" => "Projeto de Emenda Constitucional ", "0 mil " => "0.000 ", "1 mil " => "1.000 ", "2 mil " => "2.000 ", "3 mil " => "3.000 ");
$JaMudouUnsCaracteres=strTr($FraseTexto, $TrocaCaractere);


echo $JaMudouUnsCaracteres;
//Projeto de Emenda Constitucional 280 para reduzir número de deputados pela metade, para o Brasil deixar de gastar mais de meio bilhão ao ano, cada um dos 513 custa mais ou menos 170.000 ao mês

?>


Certo, nem tudo, viu que eu queria mudar " reduzir " para " diminuir ", mas não mudou, dificil explicar isso, imagine que aconteceu que meu "filtro" estava trocando o " pra " mas o " reduzir " está como que 'colado nele' por um espaçamento que teria que ser trocado ao mesmo tempo, se eu tivesse colocado assim:

"reduzir " => " diminuir "
Aí teria funcionado, ou, se

Para resolver problemas assim, eu poderia criar mais um filtro, ou dois ou três após aquele primeiro, isso poderia me trazer um problema, como sobrecarga do servidor em caso de muitos acessos ou outro que não grave, mas ficaria assim:



Códigos Php que pode exibir nomes de arquivos de um diretório

Códigos PHP com a função glob() que podem servir para mostrar nomes de arquivos e diretórios(pastas) que estão dentro do diretório onde ele for criado, mas, não mostra os sub-diretórios que estão dentro dos diretórios encontrados.
Uma utilidade se você tem muitos arquivos em um diretório e quiser listar apenas alguns, com determinada extensão ou com nomes iniciados com alguma letra.

Códigos Php com glob()

Você pode usar todo o código para ver qual o resultado ou apenas parte dele
<?php
foreach (glob("*", GLOB_MARK) as $arquivo)
{echo "Encontrado arquivo ou diretório $arquivo \n <br>";};
// Retorna arquivos e diretórios com uma barra/ para não confundir com arquivos sem extensão

foreach (glob("*.*", GLOB_MARK) as $arquivo)
{echo "Tamanho do $arquivo é " . filesize($arquivo) . "\n <br>";};
// Retorna arquivos com extensão e tamanho em bytes

foreach (glob("i*.*", GLOB_MARK) as $arquivo)
{echo "Arquivos começado com b: $arquivo \n <br>";};
// Retorna arquivos começados com "b"

foreach (glob("*", GLOB_ONLYDIR) as $arquivo)
{echo "Diretório $arquivo \n <br>";};
// Retorna os diretórios apenas...

foreach (glob("{*.php,*.htm}",GLOB_BRACE) as $arquivo)
{echo "Arquivo: $arquivo \n <br>";};
// Retorna arquivos .php e .htm

foreach (glob("{images/{*.JPEG,*.JPEG,*.jpeg,*.jpg},images/*.gif,info/*}",GLOB_BRACE) as $arquivo)
{echo "Diretório e arquivo: $arquivo \n <br>";};
// Retorna o que pode estar nos diretórios...
// Retorna arquivos jpeg do diretório images, incluindo com extensão maiúscula
// Retorna arquivos gif do diretório images, provável que só com extensão minúsculas
// Retorna diretóros e arquivos que tem em diretório info
?>


Fonte de parte dos códigos e mais informações http://php.net/manual/pt_BR/function.glob.php

Filtrar e impedir números ou letras com uso de Php

Algumas maneiras de filtrar ou separar números e letras de textos ou palavras usando Php.
filtro de numeros e letras em php
Nem um dos códigos abaixo é um filtro muito completo ou que garanta exatamente um resultado eficiente, mas como um dia postei filtro para palavra ou numero pré estabelecido e agora precisei um filtro que impedisse números, aí resolvi postar um que usei e outros que podem vir a ter alguma utilidade.

Primeiro exemplo com is_numeric

Infelizmente não reconhece vírgula como parte de valor numérico

<?php
$valores="+422.77";

if(is_numeric($valores)){
// Se valores permitidos
$ValorFinal = $valores." é numérico";}
else{
// Se valores não permitidos
$ValorFinal = $valores." não numérico! Pode usar sinal positivo ou negativo +- no inicio do número e pode usar ponto(.) mas não virgula";
};

echo $ValorFinal;
//resultar em "+422.77 é numérico"
?>

Exemplos de códigos que filtram ou exibem só o "permitido"

Esse código é bom para copiar e testar com outra frase e diferentes caracteres

<?php
$FraseNumeroE="Vamos criar filtros em PHP...? Com Ç e nÚmeros 1.234.567,89";

// Permite apenas números
$Filtrar = eregi_replace('([^0-9])','',$FraseNumeroE);
echo $Filtrar.'<br>';
//Resultará: 123456789

// Permite números e ponto e vírgula . , mas problematico
$Filtrar = eregi_replace('([^0-9.9,])','',$FraseNumeroE);
echo $Filtrar.'<br>';
//Resulta: ...1.234.567,89

// impede apenas números
$Filtrar = eregi_replace('([0-9])','',$FraseNumeroE);
echo $Filtrar.'<br>';
//Resulta: Vamos criar filtros em PHP...? Com Ç e nÚmeros ..,

// permite somente letras simples impede acentuadas, retira espaços, ç...
$Filtrar=eregi_replace('([^a-z])','',$FraseNumeroE);
echo $Filtrar.'<br>';
//Resulta: VamoscriarfiltrosemPHPComenmeros

?>


    Outros artigos parecidos e interessantes:
  • Perguntas php-numeros << Vi um JavaScript para alerta em formulário que pode ser útil, se modificado...
  • ctype_digit Verifica se são apenas números "simples" de zero a nove, ou seja números inteiros
  • ctype_alpha "Verifica se os caracteres são alfabéticos", permite maiúscula/minúscula, talvez não permita ç, nem "espaçamento em branco" nem acentuadas
  • ctype_alnum "Verifica se os caracteres são alfanuméricos" permite ABcd1984, ou seja, pode maiúscula/minúsculo e números inteiros. Talvez não permita ç, nem "espaçamento em branco", nem acentuadas e nem outros caracteres de sinais como?!@%-+

É interessante mudar nome e extensão de arquivo usando Htaccess?

Uma maneira de manipular o nome de um arquivo ou diretório usando .htaccess para isso, tem muitos motivos, tais como esconder uma extensão de um arquivo e assim esconde o tipo de códigos usados do lado do servidor, por exemplo, eu posso fazer uma página em php ter uma extensão em html ou fazer ela parecer um diretório.
Como mudar extensão e nome de arquivo com htaccess


Levamos em conta que estamos visando o diretório raiz e usando o .htaccess para manipular sub-diretórios e arquivos do diretório raiz e por isso você já precisa ter uma boa noção de caminhos de seus diretórios e como isso funciona

Sites para saber como site ou blog é acessado e algumas características dos visitantes

Alguns sites para fazer uma análise do tráfego de um blog ou site, isso ajuda a ver se site está bem acessado, claro que não vai lhe dizer tudo, você terá que pensar porque um visitante esta tendo um comportamento no seu site, se estão ficando pouco tempo, se a maioria vai para determinado local, etc.

como ver se blog está bem acessado
Tem muitas coisas que são fundamentais saber quem quer ter um site ou blog, por exemplo a resolução de tela da maioria, os navegadores mais usados, isso é bom para você experimentar fazer o que eles fazem em seu site e saber se não existe nem um problema ou se pode tornar algo melhor, por exemplo, se você só usa o navegador Internet Explorer e a maioria usa o Chrome você deve ver se seu site funciona bem nesse navegador.

Outra coisa bem interessante é você saber quais as páginas são mais acessadas e tentar perceber porque isso ocorreu, será que as pessoas gostaram do assunto abordado no artigo, ou o título era interessante, ou eram as imagens que mais trouxeram visitantes? Quanto tempo as pessoas ficaram em determinada página?

Eu não conheço muitos sites para fazer essa análise, mas, todos eles consistem em você criar uma conta e pegar um código que coloca no seu site ou blog.

Mas de todos, um dos mais recomendados é o Google Analytics que tem muitas opções, até de saber quanto ganha com adsense em certas páginas, para quem usa ele, e muitas outras.

http://www.google.com/analytics/

Não coloquei em ordem, ou seja, um dos últimos pode ser melhor, ou não, isso também vária de pessoa para pessoa, alguns podem preferir um menos completo e mais simples de usar, outras pessoas podem preferir um que disponha de mais dados mesmo sendo mais complicado para entender ou acessar.

Se você só quer saber um pouco sobre seu site ou blog, veja outros site clique aqui...

http://www.quantcast.com/

http://statcounter.com/

http://www.sitemeter.com/

Geralmente, muita coisa interessante você pode descobrir sobre seu site e leitores, tais como essas abaixo.

Páginas mais populares
Páginas de Entrada
Páginas de saída
Veio de onde(site ou link de referência)
Análise de palavras-chave
Atividade recente
Saiu de que página do site e/ou taxa de abandono
Saiu de uma página e foi para...
Caminhos do visitante(s)
Duração da Visita(s)
Visitas que Retornam(ou taxa)
Sistema operacional
Tipo de navegador, qual, versão
Resolução de tela
Localização geográfica
Tipo de banda, conexão de modem, banda larga, 3G...
Buscas que trouxeram visitantes
Ip do usuário
Empresa que promove a conexão(provedor de acesso de internet)

Pegar title de uma página de site, usando Php

Como pode fazer para capturar o title de um site ou página da web usando Php.

como capturar meta tag title com php bem simples de aplicar
O código é pequeno e fácil de usar, ele vai e 'acessa' a página então pega o título que está entre as tags <title></title> do Html e, o código é bem simples para aplicar.

No código de exemplo abaixo ele iria pegar o title do meu blog http://meuphpbasico.blogspot.com e essa Url você pode alterar, mas ela precisa estar correta e completa.

Código usado para pegar title de site

<?php
$ssite=('http://meuphpbasico.blogspot.com');

$q=@file_get_contents($ssite);
preg_match_all('#<title>([^<\/]{1,})<\/title>#i',$q,$match);

$otitle=($match[1][0]);

echo $otitle; // Mostra frase do title

?>


A arroba, @ é para o caso de site ou página não existir ou estiver inacessível aí não vai dar as mensagens de erro que são muito feias, você pode retirar temporariamente a arroba ao criar a página, isso apenas caso algo der errado e o title não aparecer, assim você pode pesquisar o erro, isso até porque tem sites que não permitem que outros sites acessem isso, mas na maioria das vezes dá certo, mesmo assim, é bom usar a arroba.

Tem como saber se um site é em Php? Pergunta ao Webmaster ou proprietário?

como faz para saber se um site é em php
Uma dúvida comum que percebi que algumas pessoas tem é "como ver se um site é em php?", essa pergunta surge geralmente quando a pessoa faz um curso ou pretende estudar para webmaster, e quer ter um 'tipo' de site para se espelhar.

Eu poderia dar duas respostas:
'Não tem como saber se um site é em Php', ou então, 'verifique se a página inicial é index.php'

Mas como eu disse, poderia dar essas respostas, mas, apesar da segunda parecer mais correta, ambas estariam erradas. Isso porque um site pode ter algumas páginas em Php e outras em outra linguagem, só depende do servidor suportar, e, geralmente suportam várias linguagens. Também existem muitas maneiras de esconder a extensão de uma página, até mudar ela sem alterar a linguagem ou sem influenciar no funcionamento, e, eu poderia criar uma página em Linguagem Html simples e salvar como index.php ou qualquer-otra-coisa.php e funcionariam sem ter linguagem php.

Nem sempre funciona, mas, a maioria dos sites pode ser visto se uma página inicial é php, você só precisa tentar acessar a página inicial de cada diretório digitando index.php assim:

meu-x-site.com/
meu-x-site.com/index.php

meu-x-site.com/xxx/
meu-x-site.com/xxx/index.php

no exemplo acima, xxx seria um diretório qualquer com outro nome, e, meu-x-site.com também.

Se, ao navegar no site perceber maioria das Url com .php presume-se que talvez esse site use bastante essa linguagem, mas, a outra maneira de saber se um site é todo em php, talvez seria perguntando ao proprietário do site, se encontrá-lo e se ele for sincero, rs.

A linguagem Php não pode ser vista pelos usuários, ela trabalha 'do lado do servidor de hospedagem', fica oculta ao visitante, por vezes ela 'gera' dados que serão enviadas para o usuário, esses dados podem ser texto comum, tags Html, etc... e eles não mostram que linguagem foi usada para gerar eles.


Verificar se um site ou página existe e permite ser acessado

Maneira de verificar se uma página está acessível ou não, ou seja, online ou ofline, existe ou inexistente.

Para criar links com mais tranqüilidade eu queria um script para ver se uma página de site ou blog podia ser acessada, se ela não estivesse com problema de algum erro, 404 por ser removida, ou outro, até mesmo site que tivesse deixado sido excluído, duas coisas bem comuns hoje. Encontrei no Scriptbrasil.com.br um script quase perfeito para isso, fiz algumas modificações nele, mas, se allow_url_fopen estiver desabilitada nas configurações do seu servidor, aí o script talvez não funcionará.
<?php

$Url = ("http://meuphpbasico.blogspot.com/2012/10/fazer-direcionamento-301-em-php-simples.html");

@$ChecarUrl = fopen($Url,"r");

if($ChecarUrl){//Se verificado e existente

$UrlChecada = "A página ".$Url." está ativa";
}else{//Se não conseguir verificar ou não existir

$UrlChecada = "Não conseguimos verificar ".$Url;
};

echo $UrlChecada;
?>

Uso de verificação de Url para link de redirecionamento

Um uso bem util seria para criar links externos, ou seja, para outros sites e assim evitar links quebrados, já que alguns sites ou páginas são excluídos, aí o que aconteceria seria o redirecionamento apenas se a página existir, se ela estiver indisponível você pode dar a opção da pessoa visitar a página inicial de seu site, pesquisar, prosseguir mesmo assim, etc...

Assim você evita links quebrados que prejudicam seu site perante sites de busca e aos olhos do visitante que invés de ir para uma página não encontrada tem a oportunidade de continuar no seu site.

checa-direciona.php

<?php
//recebe a url que será testada e para onde irá se correta
$Url = $_GET['go'];

@$ChecarUrl = fopen($Url,"r");
if($ChecarUrl){//Se verificado e existente

header("HTTP/1.1 301 Moved Permanently");
header("Location: $Url");

}else{//Se não conseguir verificar ou não existir

$UrlChecada = "Não conseguimos verificar ".$Url."<br>Você quer <a href='http://meuphpbasico.blogspot.com.br'>ir a página inicial, clique aqui</a><br>Quer prosseguir a página não detectada <a href='".$Url."' rel='nofollow'>clique aqui</a>";
};

echo $UrlChecada;
?>


Aí bastaria criar um link para essa página que ela checaria e faria o redirecionamento, exemplo:
http://MEU-SITE.com/checa-direciona.php?go=http://meuphpbasico.blogspot.com

Com um pouco mais de criatividade é possível até tirar mais proveito desse tipo de página, caso haja uma página não encontrada, algum tipo de monitoramento, incluir algum anúncio...

Por medida de segurança, talvez seja aconselhável algum filtro para o valor recebido via GET antes de usar ele, mas o intuito desse post é apenas demonstrar a principal característica ou função do script.

A arroba @ no casos acima são para evitar os tipos de mensagem quando a página não existir:

Warning: fopen() [function.fopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/content/0000/html/my.php on line 14

Warning: fopen(http://www.meu-site-xx.com) [function.fopen]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/content/xxx/html/ver/x.php on line

Warning: fopen(http://meu-site-xx.com) [function.fopen]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/content/00000/html/...