在 PHP 中刪除特殊字元
- 
          
            使用 preg_replace()函式刪除 PHP 中的特殊字元
- 
          
            使用 str_replace()函式刪除 PHP 中的特殊字元
- 
          
            在 PHP 中使用 trim()函式來刪除特殊字元
- 
          
            使用 htmlspecialchars()和str_ireplace()函式刪除 PHP 中的特殊字元
- 
          
            在 PHP 中使用 substr()函式來刪除特殊字元
- 
          
            使用 strtr()函式刪除 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 的所有預定義元素轉換為特殊字元,就像將 < 轉換為<,&一樣,然後將其轉換為&。
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('<b>', '</b>', '<h2>', '</h2>'), '',
    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.