Remover caractere especial em PHP

Muhammad Abubakar 30 janeiro 2023
  1. Use a função preg_replace() para remover caracteres especiais no PHP
  2. Use a função str_replace() para remover caracteres especiais no PHP
  3. Use a função trim() para remover caracteres especiais no PHP
  4. Use as funções htmlspecialchars() e str_ireplace() para remover caracteres especiais no PHP
  5. Use a função substr() para remover caracteres especiais no PHP
  6. Use a função strtr() para remover caracteres especiais no PHP
Remover caractere especial em PHP

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.

Artigo relacionado - PHP String