Mostrar mensagens com a etiqueta Maiúscula. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Maiúscula. Mostrar todas as mensagens

Modo de não precisar usar extensão de arquivo em Url? Com uso de Htaccess

Um modo de não precisar usar extensão em Url de arquivos de diversos tipos usando o .htaccess para permitir essa manipulação.

O formato do arquivo poderá ser ignorado mas não será totalmente oculto e nem mesmo bloqueado, apenas ficará a opção de usar ou não, pois o arquivo original não mudará.

Funciona para qualquer tipo de arquivo, php, css, js, mas um uso bem útil para mim foi no formato de imagens, ao criar uma página com várias imagens na qual eu coloquei o formato em minusculas e usei mais de um editor para criar as imagens um deles salvou com extensão em maiúscula, aí que resolvi usar a opção de remover a extensão no nome do arquivo ao escrevê-lo, assim também poupar alguns bytes no código html.

No caso abaixo seria para não precisar digitar .png para acessar as imagens nesse formato
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.png -f
RewriteRule ^([a-z,0-9,A-Z,_-]+)$ /$1.png

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.PNG -f
RewriteRule ^([a-z,0-9,A-Z,_-]+)$ /$1.PNG


O problema que eu tive, parece ter se estender para mais formatos de arquivos, ou pode ser que tal configuração seja padrão no servidor que testei, assim, se eu tivesse um outro arquivo com mesmo nome em mesmo diretório poderia me dar erro, sendo assim, esse código ainda me parece problemático, cabe ainda testes, mas, o problema será muito mais do uso de Url pelo webmaster ou pelo sistema por ele criado/gerenciado.

A última linha do código também poderia ser
RewriteRule ^(.*)$ $1.PNG

Sugestão de pesquisa .htaccess:
Uma função parecida, apenas para arquivos php, pode ser "AddType application/x-httpd-php" onde lhe permite usar outra extensão para arquivos php, ler mais

Uma função que poderia servir de "interpretar Url" maiúsculas e minusculas como igual seria "CheckCaseOnly on" ou "CheckSpelling On" mas, em muitos servidores não funciona, causa um erro 500 Internal Server Error

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'
?>