PHP で特殊文字を削除する

Muhammad Abubakar 2023年1月30日
  1. preg_replace() 関数を使用して、PHP の特殊文字を削除する
  2. str_replace() 関数を使用して、PHP の特殊文字を削除する
  3. trim() 関数を使用して、PHP の特殊文字を削除する
  4. htmlspecialchars() および str_ireplace() 関数を使用して、PHP の特殊文字を削除する
  5. substr() 関数を使用して、PHP の特殊文字を削除する
  6. strtr() 関数を使用して、PHP の特殊文字を削除する
PHP で特殊文字を削除する

プログラミングでは、文字列からいくつかの特殊文字を削除したい場合があります。このチュートリアルでは、さまざまな関数を使用して文字列から特殊文字を削除する方法を示します。

preg_replace() 関数を使用して、PHP の特殊文字を削除する

この関数 preg_replace() には、以下で紹介するいくつかのパラメーターが含まれています。

  • $pattern:このパラメーターは、文字列または文字列の配列を検索するためのパターンを提供します。
  • $replaceWith:これでは、$pattern 文字列または配列が置き換えられる文字を指定します。$pattern パラメーターが配列で、$replaceWith パラメーターが文字列の場合、すべての $pattern パラメーターは $replaceWith 文字列に置き換えられます。一方、$pattern パラメータと $replaceWith パラメータの両方が配列の場合、上記の条件と同じように動作しますが、$pattern の特定のインデックス付き文字列を対応するカウンタインデックス $ replaceWith に置き換えます。
  • $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

trim() 関数を使用して、PHP の特殊文字を削除する

この関数は、文字列の最初と最後から文字を削除するだけです。文字列の途中にある文字は無視されます。文字の先頭と末尾のみを削除したい場合は、この関数を使用します。

この関数は使いやすく、あまり多くのパラメーターを取りません。最初と最後の特殊文字を削除するメイン文字列のみが必要です。
以下に、それがどのように機能し、その出力が何であるかを示します。

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

この関数にも 2つのバリエーションがあります。

  • 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 のコードを廃棄し、処理した後、<h2><b> などの 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

substr() 関数を使用して、PHP の特殊文字を削除する

ご存知のように、文字列は一種の配列です。substr() 関数は、特定の文字インデックスまでを削除します。

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

出力:

@HelloWorld
HelloWorld

strtr() 関数を使用して、PHP の特殊文字を削除する

この関数は PHP の驚くべき機能です。文字を翻訳するか、部分文字列を置き換えます。3つのパラメーターを取ります。最初のパラメーターはこの関数を適用する文字列であり、2 番目のパラメーターはその文字列から置換する文字であり、最後のパラメーターは値を置換する文字です。2 番目のパラメーター。今、私たちはプログラミングを通して見ています:

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