在 PHP 中删除特殊字符

Muhammad Abubakar 2023年1月30日 2021年4月29日
  1. 使用 preg_replace() 函数删除 PHP 中的特殊字符
  2. 使用 str_replace() 函数删除 PHP 中的特殊字符
  3. 在 PHP 中使用 trim() 函数来删除特殊字符
  4. 使用 htmlspecialchars()str_ireplace() 函数删除 PHP 中的特殊字符
  5. 在 PHP 中使用 substr() 函数来删除特殊字符
  6. 使用 strtr() 函数删除 PHP 中的特殊字符
在 PHP 中删除特殊字符

有时,在编程中,我们想从字符串中删除一些特殊字符。本教程说明了如何使用不同的功能从字符串中删除特殊字符。

使用 preg_replace() 函数删除 PHP 中的特殊字符

preg_replace() 函数包含的参数很少,如下所述。

  • $pattern:此参数为我们提供了一种用于搜索字符串或字符串数​​组的模式。
  • $replaceWith:在这种情况下,我们给出替换 $pattern 字符串或数组的字符。如果 $pattern 参数是一个数组,而 $replaceWith 参数是一个字符串,则所有 $pattern 参数将被 $replaceWith 字符串替换。另一方面,如果 $pattern$replaceWith 参数都是数组,则它与上述条件相同,只是用响应计数器索引 $replaceWith 替换了特定的索引 $pattern 字符串。
  • $string:这是你要用特殊字符过滤的理想字符串。

请参见下面的示例。

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

输出:

My UpdatedString: Mynameishelloandemailhelloworldgmailcom

在此函数中,你可以轻松删除特殊字符,但是在使用此函数之前,你需要具有一些正则表达式知识。

使用 str_replace() 函数删除 PHP 中的特殊字符

这也是一个非常有用的内置函数,用于替换字符串中的特殊字符。str_replace() 还可帮助用删除的字符替换该字符。

此函数包含很少的参数,如下所述。

  • $search_str:它包含我们要在给定字符串中搜索的值。
  • $replace_str:它存储你要替换的值,或者,如果你只想删除特殊字符,也可以将其保留为空。
  • $main_str:这是我们要更新的字符串。
  • $count:代表我们要替换或删除的字符数。

请参阅示例代码。

<?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;
}
?>

输出:

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


Text after remove: 
This is a simple text

在 PHP 中使用 trim() 函数来删除特殊字符

此函数仅从字符串的开头和结尾删除字符。它忽略字符串中间的字符。如果你只想删除字符的开头和结尾,则可以使用此函数。

此函数易于使用,并且不需要太多参数。它仅需要你要从中删除其第一个和最后一个特殊字符的主字符串。
在下面,我们看到了它的工作原理以及它的输出是什么。

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

输出:

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

Text after remove: 
PHP@Programming  

此函数也有两个变体。

  • ltrim()
  • rtrim()

ltrim() 函数

它仅删除字符串的第一个字符。

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

输出:

eeks

rtrim() 函数

与上面的函数相同,但是可以删除字符串的最后一个字符。

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

输出:

Output: DelftStack is a best platform

使用 htmlspecialchars()str_ireplace() 函数删除 PHP 中的特殊字符

htmlspecialchars()str_ireplace() 用于从数据中删除预定义字符的影响。它将 Html 的所有预定义元素转换为特殊字符,就像将 < 转换为&lt,&一样,然后将其转换为&amp

str_ireplace() 用于从文本中删除 HTML 字符。它的作用类似于 str_replace(),上面已作了简要说明,并且可以执行不区分大小写的搜索。这意味着当我们在此函数中以及在处理完 Html 代码后,会删除 Html 的所有特殊字符,例如

, 等。

让我们看看它是如何工作的:

<?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));
?>

输出:

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

Text after remove: 
Welcome to PHPWorld

在 PHP 中使用 substr() 函数来删除特殊字符

众所周知,字符串是一种数组。substr() 函数最多删除特定的字符索引。

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

输出:

@HelloWorld
HelloWorld

使用 strtr() 函数删除 PHP 中的特殊字符

此函数是 PHP 的一个了不起的功能。它转换字符或替换子字符串。它包含三个参数,第一个是要在其上应用此函数的字符串,第二个参数是要从该字符串中替换的字符,最后一个参数是要从中替换该值的字符第二个参数。现在我们看一下编程:

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

输出:

Output: hi all, I said hhllo

str_replace() 变得失败时,它有一个很好的特点。下面是它的例子。

<?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";


?>

输出:

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

相关文章 - PHP String