PHP で特殊文字を削除する
-
preg_replace()関数を使用して、PHP の特殊文字を削除する -
str_replace()関数を使用して、PHP の特殊文字を削除する -
trim()関数を使用して、PHP の特殊文字を削除する -
htmlspecialchars()およびstr_ireplace()関数を使用して、PHP の特殊文字を削除する -
substr()関数を使用して、PHP の特殊文字を削除する -
strtr()関数を使用して、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 の事前定義されたすべての要素を、< を<,&に変換するように特殊文字に変換してから、& に変換します。
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('<b>', '</b>', '<h2>', '</h2>'), '',
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.