(PHP 4, PHP 5)
str_replace — Substitui todas as ocorrências da string de procura com a string de substituição
Esta função retorna uma string ou um array com todas as ocorrências de
search
em subject
substituídas com o valor dado para replace
.
Se você não precisa de regras de substituição especiais (como expressões regulares), você sempre poderia usar esta função ao invés de ereg_replace() ou preg_replace().
Se search
e replace
são arrays, então
str_replace() pega o valor de cada array
e os usa para fazer a pesquisa e a substituição em subject
. Se
replace
tem menos valores do que
search
, então uma string vazia é usada para o restante dos
valores de substituição. Se search
é um array e replace
é uma string, então
esta string de substituição é usada para cada valor de
search
. O contrário não faria sentido, contudo.
Se search
ou replace
são arrays, seus elementos são processados do primeiro ao último.
search
replace
subject
Se subject
é um array, então a pesquisa
e a substituição é executada com cada entrada de subject
,
e o valor de retorno é um array também.
count
Nota: Se passado, guardará o número de combinações e modificações feitas.
Esta função retorna uma string ou um array com os valores modificados.
Versão | Descrição |
---|---|
5.0.0 |
O parâmetro count foi adicionado.
|
4.3.3 |
O comportamento desta função foi modificado. Em antigas versões um bug
existia ao se usar arrays em ambos os parâmetros search
e replace que causava índices de
search vazios para serem pulados sem avançar o
apontador interno no array replace .
Isto foi corrigido no PHP 4.3.3, quaisquer scripts que contavam com este
bug removeriam valores de pesquisa vazios anteriores à chamada desta função
afim de imitar o comportamento original.
|
4.0.5 | Mais parâmetros podem agora ser um array. |
Exemplo #1 Exemplos da str_replace()
<?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.";
$saudavel = 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
// Order of replacement
$str = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order = array("\r\n", "\n", "\r");
$replace = '<br />';
// Processes \r\n's first so they aren't converted twice.
$newstr = str_replace($order, $replace, $str);
// Outputs: apearpearle pear
$letters = array('a', 'p');
$fruit = array('apple', 'pear');
$text = 'a p';
$output = str_replace($letters, $fruit, $text);
echo $output;
?>
Nota: Esta função é binary-safe.
Nota:
Esta função é case-sensitive. Use str_ireplace() para substituição case-insensitive.