HOWTO · PHP

Remover caractere especial em PHP

Este tutorial mostra a remoção do caractere especial da string no PHP

Nesta página

Na programação, às vezes, queremos remover alguns caracteres especiais da string. Este tutorial mostra como usaremos diferentes funções para remover o caractere especial de uma string.

Use a função preg_replace() para remover caracteres especiais no PHP

Esta função preg_replace() contém alguns parâmetros conforme apresentado a seguir.

  • $pattern: Este parâmetro nos dá um padrão para pesquisar string ou array de strings.
  • $replaceWith: neste, fornecemos o caractere a partir do qual a string ou array $pattern é substituída. Se o parâmetro $pattern for um array e o parâmetro $replaceWith for uma string, então o parâmetro todo $pattern é substituído pela string $replaceWith. Por outro lado, se ambos os parâmetros $pattern e $replaceWith são matrizes, ele faz o mesmo que na condição acima, mas substitui a string indexada específica de $pattern por seu índice de contador de resposta de $replaceWith.
  • $string: esta é a string desejável que você deseja filtrar com um caractere especial.

Veja o exemplo abaixo.

<?php
function RemoveSpecialChar($str)
{
    $res = preg_replace('/[0-9\@\.\;\" "]+/', '', $str);
    return $res;
}
$str = "My name is  hello and email hello.world598@gmail.com;";
$str1 = RemoveSpecialChar($str);
echo "My UpdatedString: ", $str1;
?>

Resultado:

My UpdatedString: Mynameishelloandemailhelloworldgmailcom

Nesta função, você pode remover facilmente o caractere especial, mas antes de usar esta função, você precisa ter algum conhecimento de expressão regular.

Use a função str_replace() para remover caracteres especiais no PHP

Esta também é uma função incorporada muito útil, que é usada para substituir o caractere especial da string. str_replace() também ajuda a substituir aquele caractere pelo caractere removido.

Esta função contém alguns parâmetros, conforme apresentado a seguir.

  • $search_str: Contém o valor que queremos pesquisar na string dada.
  • $replace_str: Ele armazena um valor que você deseja substituir, ou você também pode deixá-lo vazio se desejar apenas a remoção de um caractere especial.
  • $main_str: É a string que queremos atualizar.
  • $count: representa o número de caracteres que queremos substituir ou remover.

Veja o código de exemplo.

<?php
$mainstr = "This is a sim'ple text;";
echo "Text before remove: \n" . $mainstr, "\n";
$replacestr = remove_sp_chr($mainstr);
function remove_sp_chr($str)
{
    $result = str_replace(array("#", "'", ";"), '', $str);
    echo "\n\nText after remove: \n" . $result;
}
?>

Resultado:

Text before remove: 
This is a sim'ple text;


Text after remove: 
This is a simple text

Use a função trim() para remover caracteres especiais no PHP

Esta função remove apenas o caractere do primeiro e do final da string. Ignora o personagem que está no meio da string. Se você deseja remover apenas o início e o fim do caractere, usamos esta função.

Esta função é fácil de usar e não requer muitos parâmetros. Exige apenas a string principal da qual você deseja remover o primeiro e o último caractere especial.
Aqui abaixo, vemos como funciona e qual é o seu resultado:

<?php
$mainstr = "@@PHP@Programming!!!.";
echo "Text before remove:\n" . $mainstr;
echo "\n\nText after remove: \n" . trim($mainstr, '@!.');
?>

Resultado:

Text before remove:
@@PHP@Programming!!!.

Text after remove: 
PHP@Programming  

Esta função também possui duas variantes.

  • ltrim()
  • rtrim()

a função ltrim()

Ele remove apenas os primeiros caracteres de sua string.

<?php
$str = "geeks";
$str = ltrim($str, 'g');
echo $str;
?>

Resultado:

eeks

a função rtrim()

É igual à função acima, mas pode remover os últimos caracteres da sua string.

<?php
$string = "DelftStack is a best platform.....";
echo "Output:  " . rtrim($string, ".");
?>

Resultado:

Output: DelftStack is a best platform

Use as funções htmlspecialchars() e str_ireplace() para remover caracteres especiais no PHP

Os htmlspecialchars() e str_ireplace() são usados ​​para remover o efeito de caracteres predefinidos dos dados. Ele converte todos os elementos predefinidos de Html em caracteres especiais, como converte < em &lt,& e, em seguida, será convertido em &amp.

O str_ireplace() é usado para a remoção de caracteres Html do texto. Ele funciona como str_replace(), que é brevemente explicado acima, e pode realizar pesquisas que não diferenciam maiúsculas de minúsculas. Isso significa que quando descartamos o código do Html nesta função e após o processamento, ele pode remover todos os caracteres especiais do Html como <h2>, <b> e.t.c.

Vamos ver como isso funciona:

<?php
$mainstr = "<h2>Welcome to <b>PHPWorld</b></h2>";

echo "Text before remove: \n" . $mainstr;

echo "\n\nText after remove: \n" .
    str_ireplace(array('&lt;b&gt;', '&lt;/b&gt;', '&lt;h2&gt;', '&lt;/h2&gt;'), '',
    htmlspecialchars($mainstr));
?>

Resultado:

Text before remove: 
<h2>Welcome to <b>PHPWorld</b></h2>

Text after remove: 
Welcome to PHPWorld

Use a função substr() para remover caracteres especiais no PHP

Como sabemos, a string é uma espécie de array. A função substr() remove até o índice específico do caractere.

<?php
$str = "@@HelloWorld";
$str1 = substr($str, 1);
echo $str1 . "\n\n";
$str1 = substr($str, 2);
echo $str1;
?>

Resultado:

@HelloWorld
HelloWorld

Use a função strtr() para remover caracteres especiais no PHP

Esta função é um recurso incrível do PHP. Ele traduz caracteres ou substitui substrings. Leva três parâmetros, o primeiro é a string na qual aplicamos esta função, depois que o segundo parâmetro é aquele caractere que queremos substituir dessa string e o último parâmetro é aquele caractere do qual queremos substituir o valor do segundo parâmetro. Agora vemos por meio da programação:

<?php
$str = "ei all, I said eello";
//$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo "Output:  " . strtr($str, "e", "h");
?>

Resultado:

Output: hi all, I said hhllo

Este é o seu bom recurso, onde str_replace() torna-se falha. Abaixo está seu exemplo:

<?php
$strTemplate = "My name is :name, not :name2.";
$strParams = [
    ':name' => 'Dave',
    'Dave' => ':name2 or :password',
    ':name2' => 'Steve',
    ':pass' => '7hf2348', ];
echo "\n" . strtr($strTemplate, $strParams) . "\n";
echo "\n" . str_replace(array_keys($strParams), array_values($strParams), $strTemplate) . "\n";


?>

Resultado:

My name is Dave, not Steve.
My name is Steve or 7hf2348word, not Steve or 7hf2348word2.