TRABALHANDO COM STRINGS E SUBSTRINGS NO PHP
substr -- Retorna uma parte de uma string
string substr ( string string, int start [, int length] )
Exemplo 1. Uso basico de substr()
<?php
$rest = substr("abcdef", 1); // retorna "bcdef"
$rest = substr("abcdef", 1, 3); // retorna "bcd"
$rest = substr("abcdef", 0, 4); // retorna "abcd"
$rest = substr("abcdef", 0, 8); // retorna "abcdef"
// Outra opção é acessar atravéz de chaves
$string = 'abcdef';
echo $string{0}; // retorna a
echo $string{3}; // retorna d
?>
Se start for negativo, a string retornada irá começar no caractere start a partir do fim de string.
Exemplo 2. Usando um inicio negativo
<?php
$rest = substr("abcdef", -1); // retorna "f"
$rest = substr("abcdef", -2); // retorna "ef"
$rest = substr("abcdef", -3, 1); // retorna "d"
?>
Exemplo 3. Usando um length negativo
<?php
$rest = substr("abcdef", 0, -1); // retorna "abcde"
$rest = substr("abcdef", 2, -1); // retorna "cde"
$rest = substr("abcdef", 4, -4); // retorna ""
$rest = substr("abcdef", -3, -1); // retorna "de"
?>
SOBRESCREVENDO STRINGS
str_replace
str_replace -- Substitui todas as ocorrências da string de procura com a string de substituição
mixed str_replace ( mixed pesquisa, mixed substitui, mixed assunto [, int &count] )
<?php
// Fornece: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
// Fornece: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
// Fornece: você comeria pizza, cerveja e sorvete todos os dias
$frase = "você comeria frutas, vegetais, e fibra todos os dias.";
$saldavel = array("frutas", "vegetais", "fibra");
$saboroso = array("pizza", "cerveja", "sorvete");
$novafrase = str_replace($saudavel, $saboroso, $frase);
// Uso do parâmetro count está disponível no PHP 5.0.0
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count; // 2
?>
substr_replace
substr_replace -- Substitui o texto dentro de uma parte de uma string
string substr_replace ( string string, string replacement, int start [, int length] )
<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr>\n";
/* Estes dois exemplos substituem tudo de $var com 'bob'. */
echo substr_replace($var, 'bob', 0) . "<br>\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br>\n";
/* Insere 'bob' direto no começo de $var. */
echo substr_replace($var, 'bob', 0, 0) . "<br>\n";
/* Estes dois exemplos substituem 'MNRPQR' em $var com 'bob'. */
echo substr_replace($var, 'bob', 10, -1) . "<br>\n";
echo substr_replace($var, 'bob', -7, -1) . "<br>\n";
/* Deleta 'MNRPQR' de $var. */
echo substr_replace($var, '', 10, -1) . "<br>\n";
?>
ENCONTRAR POSIÇÃO DE STRING
strpos
strpos -- Encontra a posição da primeira ocorrência de uma string
int strpos ( string str, string procurar [, int offset] )
Exemplos strpos()
<?php
//$str = 'abc';
$str = 'cba';
$procurar = 'a';
$posicao = strpos($str, $procurar);
// Note o uso de ===. Simples == não funcionaria como esperado
// por causa da posição de 'a' é 0 (primeiro) caractere.
if ($pos === false) {
echo "A string '$procurar' não foi encontrada na string '$str'";
} else {
echo "A string '$procurar' foi encontrada na string '$str'";
echo " e está na posição $posicao";
}
?>
<?php
//$email = Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.';
$email = Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.';
$usuario = substr ($email, 0, strpos ($email, '@'));
// Lembrando: substr ( string string, int start [, int length] )
$dominio = substr ($email, strpos ($email, '@')+1);
echo "Usuário '$usuario' e Domínio '$dominio'"; // o comprimento default é até o final
?>
CONTANDO AS OCORRÊNCIAS DE SUBSTING EM STRING
substr_count -- Conta o número de ocorrências de uma substring
int substr_count ( string str, string conte_me )
substr_count() retorna o número de vezes que a substring conte_me ocorre na string str.
<?php
$str = "Olá mundo do PHP";
if (substr_count($str, "do") == 0)
echo "nenhum";
// same as:
if (strpos($str, "do") === false)
echo "nenhum";
?>
Exemplo 1. Exemplo substr_count()
<?php
print substr_count("This is a test", "is"); // mostra 2
?>
TROCANDO PONTO POR VÍRGULA E VICE-VERSA
Se temos campos tipo moeda, devemos exibir com vírgula e gravar no banco com ponto.
Para isso uma boa saída é usar a dupla de funções implode e explode.
Antes de exibir na tela (em consultas):
$f_custo_produtivo=explode(".",$f_custo_produtivo);
$f_custo_produtivo=implode(",",$f_custo_produtivo);
Antes de gravar no banco (inclusão e atualização):
$f_custo_produtivo=explode(",",$f_custo_produtivo);
$f_custo_produtivo=implode(".",$f_custo_produtivo);
CONVERSÃO DE STRINGS
$foo = 1 + "10.5";echo $foo."<br>"; // $foo é float (11.5)
$foo = 1 + "-1.3e3";echo $foo."<br>"; // $foo é float (-1299)
$foo = 1 + "bob-1.3e3";echo $foo."<br>"; // $foo é integer (1)
$foo = 1 + "bob3";echo $foo."<br>"; // $foo é integer (1)
$foo = 1 + "10 Small Pigs";echo $foo."<br>"; // $foo é integer (11)
$foo = 4 + "10.2 Little Piggies";echo $foo."<br>"; // $foo é float (14.2)
$foo = "10.0 pigs " + 1;echo $foo."<br>"; // $foo é float (11)
$foo = "10.0 pigs " + 1.0;echo $foo."<br>"; // $foo é float (11)
TRABALHANDO COM CARACTERES DE STRINGS
// Pega o primeiro caracter da string
$str = 'Isto é um teste.';
$first = $str{0};
echo $first."<br>";
// Pega o terceiro caracter da string
$third = $str{2};
echo $third."<br>";
// Pega o último caracter da string
$str = 'Isto ainda é um teste.';
$last = $str{strlen($str)-1};
echo $last."<br>";
// Modifica o ultimo caracter da string
$str = 'Olhe o mal';
echo $str{strlen($str)-1} = 'r';
VALIDAÇÃO DE CARACTERES
ctype_alnum
ctype_alpha
ctype_cntrl
ctype_digit
ctype_graph
ctype_lower
ctype_print
ctype_punct
ctype_space
ctype_upper
ctype_xdigit
ctype_alnum - Checa por caracteres alfanuméricos
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
if (ctype_alnum($testcase)) {
echo "The string $testcase consists of all letters or digits.\n";
} else {
echo "The string $testcase does not consist of all letters or digits.\n";
}
}
ctype_alpha - Checa por caracteres alfabéticos
$strings = array('KjgWZC', 'arf12');
foreach ($strings as $testcase) {
if (ctype_alpha($testcase)) {
echo "The string $testcase consists of all letters.\n";
} else {
echo "The string $testcase does not consist of all letters.\n";
}
}
ctype_digit - Checa por caracteres numéricos
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
if (ctype_digit($testcase)) {
echo "The string $testcase consists of all digits.\n";
} else {
echo "The string $testcase does not consist of all digits.\n";
}
}
// Alerta: Ao executar veja que somente é válido quando todos são dígitos
// Não é indicado para testar valores decimais, com ponto ou vírgula
ctype_lower - Checa por caracteres minúsculos
$strings = array('aac123', 'qiutoas', 'QASsdks');
foreach ($strings as $testcase) {
if (ctype_lower($testcase)) {
echo "The string $testcase consists of all lowercase letters.\n";
} else {
echo "The string $testcase does not consist of all lowercase letters.\n";
}
}
ctype_punct - Checa por Caracteres que não sejam espaço em branco nem alfanuméricos
$strings = array('ABasdk!@!$#', '!@ # $', '*&$()');
foreach ($strings as $testcase) {
if (ctype_punct($testcase)) {
echo "The string $testcase consists of all punctuation.\n";
} else {
echo "The string $testcase does not consist of all punctuation.\n";
}
}
ctype_space - Checa por espaços em branco
Validação de Tipos
intval
is_array
is_bool
is_callable
is_double
is_float
is_int
is_integer
is_long
is_null
is_numeric
is_object
is_real
is_resource
is_scalar
is_string
isset
print_r
serialize
settype
strval
unserialize
unset
CASES
strtoupper($str) - tudo maiúsculo
strtolower($str) - tudo minúsculo
ucfirst($str) - Converte para maiúscula o primeiro caractere de uma STRING
ucwords($STR) - Converte para maiúsculas o primeiro caractere de cada PALAVRA
Comments fornecido por CComment