HOWTO · PHP

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  

이 기능에는 두 가지 변형이 있습니다.

  • 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>e.t.c와 같은 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의 놀라운 기능입니다. 문자를 번역하거나 부분 문자열을 대체합니다. 세 개의 매개 변수가 필요합니다. 첫 번째 매개 변수는이 함수를 적용 할 문자열입니다. 두 번째 매개 변수는 해당 문자열에서 대체하려는 문자이고 마지막 매개 변수는 해당 문자열의 값을 대체하려는 문자입니다. 두 번째 매개 변수. 이제 프로그래밍을 통해 봅니다.

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