사용자 입력 또는 동적으로 생성 된 컨텐츠를 처리 할 때 PHP 개발자는 종종 문자열을 교체해야하며, 이러한 데이터는 프론트 엔드에서 json_encode ()를 사용하여 전송할 때 구조적으로 완전하고 안전하게 유지되도록합니다. MB_EREGI_REPLACE는 다국어 또는 유니 코드 문자열을 다룰 때 전통적인 preg_replace 보다 신뢰할 수있는 PHP Multi-Byte String Extension MBString 의 기능입니다. 이 기사에서는 MB_EREGI_REPLACE를 사용하여 데이터를 교체하고 JSON_ENCODE ()를 결합하여 안전한 데이터 전송을 달성하는 방법을 소개합니다.
MB_EREGI_REPLACE ()
mb_eregi_replace(string $pattern, string $replacement, string $string, string $option = ""): string|false
preg_replace 와 마찬가지로 일반 표현식도 지원하지만 MB_EREG_REPLAPE 와 달리 사례에 민감한 버전입니다 (기본 I 수정 자와 동일).
일반적인 시나리오를 상상해보십시오 : 문자열의 URL을 교체하고 HTTP 또는 HTTPS 로 시작하는 모든 링크를 안전한 자리 표시 자로 교체하고 클릭 가능한 링크로 사용자가 업로드 한 컨텐츠를 직접 표시하지 않아야합니다.
$input = "당사 웹 사이트에 오신 것을 환영합니다:https://m66.net/page?id=123,자세히 알아보십시오。";
$pattern = "(https?://[^\s]+)";
$replacement = "[링크 차단]";
$cleaned = mb_eregi_replace($pattern, $replacement, $input);
echo $cleaned;
출력 결과 :
당사 웹 사이트에 오신 것을 환영합니다:[링크 차단],자세히 알아보십시오。
대체 된 컨텐츠를 프론트 엔드 (예 : ajax)로 전송하면 json_encode ()를 사용하여 인코딩해야합니다. 대체 결과에 " , \ n 등과 같은 특수 문자가 포함 된 경우, 직접 변속기는 JSON 형식을 파괴 할 수 있습니다.
예를 살펴 보겠습니다.
$data = [
"message" => mb_eregi_replace($pattern, $replacement, $input)
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
echo $json;
출력 결과 :
{"message":"당사 웹 사이트에 오신 것을 환영합니다:[링크 차단],자세히 알아보십시오。"}
JSON_UNESCAPED_UNICODE 및 JSON_UNESCAPED_SLASHES 는 여기에서 사용되므로 중국어와 URL의 중복을 피하여 프론트 엔드를보다 쉽게 처리 할 수 있습니다.
때때로 우리는 전체 URL을 교체하고 싶지 않을뿐만 아니라 도메인 이름과 같은 일부 정보를 유지하고 싶습니다. 익명 기능을 사용하여 콜백을 사용하여 구현할 수 있습니다.
$pattern = "(https?://([a-z0-9\-\.]+)(/[^\s]*))";
$replacement = function ($matches) {
return "도메인 이름의 링크:" . $matches[2]; // 도메인 이름 부분을 추출하십시오
};
$input = "여기를 클릭하십시오:https://m66.net/product/view?id=10 세부 사항을 확인하십시오";
$cleaned = preg_replace_callback("/$pattern/i", $replacement, $input);
echo json_encode(["message" => $cleaned], JSON_UNESCAPED_UNICODE);
산출:
{"message":"여기를 클릭하십시오:도메인 이름의 링크:m66.net 세부 사항을 확인하십시오"}
이 방법은 URL 정보를 유연하게 처리 할 수 있으며 통계 소스 및 도메인 이름 필터링과 같은 보안 정책에도 사용될 수 있습니다.
MB_EREGI_REPLACE 를 통해 문자열 내용을 여러 언어로 효율적이고 안전하게 대체 할 수 있습니다. JSON_ENCODE () 의 합리적인 사용과 결합하여 전송 중 데이터의 구조와 내용이 손상되지 않도록 할 수 있습니다. 이 조합은 현대적인 PHP 개발, 특히 국제 응용 프로그램, 풍부한 텍스트 처리, 보안 검토 및 기타 시나리오에서 매우 실용적입니다.
이 두 기능의 결합 된 적용을 마스터하면 데이터 전처리 및 보안 전송 능력이 크게 향상됩니다.