개발 중에는 종종 문자열 검색 및 특히 PHP에서 일치해야합니다. 우리는 두 가지 공통 도구의 두 가지 공통 도구를 마실 수 있습니다 : Stripos 와 정기 표현식 ( preg_match 등). 정규 표현식은 매우 강력하지만 경우에 따라 Stripos (Case Insensitive String Lookup의 함수)를 사용하는 것이 더 효율적이고 간단 할 수 있습니다. 아래에서는 정규 표현 대신 Stripos를 사용하도록 선택 해야하는 5 가지 주요 이유를 알려 드리겠습니다.
정규 표현식은 강력한 도구이지만 특히 성능 요구 사항이 높은 상황에서 실행 비용이 많이 듭니다. 정규 표현식과 비교할 때 Stripos 는 매우 가벼운 기능으로 간단한 문자열 조회 작업 만 수행하며 복잡한 일반 매칭보다 성능이 향상됩니다. 문자열에 다른 문자열이 포함되어 있는지 확인해야한다고 가정하면 StripoS를 사용하여 일반 표현식을 사용하는 것보다 더 효율적입니다.
$haystack = "Visit our website at http://m66.net";
$needle = "m66.net";
if (stripos($haystack, $needle) !== false) {
echo "URL found!";
} else {
echo "URL not found.";
}
이 코드는 Stripos를 사용하여 문자열 "m66.net"이 주어진 문자열에 존재하는지 여부를 찾아 정규 표현식과 일치하는 것보다 낫습니다.
Stripos 함수의 구문은 간단하고 명확합니다. 찾을 문자열과 대상 문자열의 두 매개 변수 만 허용합니다. 정규 표현식에는보다 복잡한 패턴과 처리 코드가 필요합니다. 일부 간단한 검색 작업의 경우 StripoS는 코드를보다 간결하게 만들고 불필요한 복잡성을 줄입니다.
예를 들어, 정규식은 다음과 같이 작성 될 수 있습니다.
$pattern = '/m66.net/i';
$haystack = "Visit our website at http://m66.net";
if (preg_match($pattern, $haystack)) {
echo "URL found!";
} else {
echo "URL not found.";
}
대조적으로, stripos를 사용하는 것은 더 간결하고 이해하기 쉽습니다.
정규 표현식은 매우 복잡한 구문을 가지며 다른 환경에서 사용될 때 오류 또는 보안 취약점을 도입 할 수 있습니다. REGEX가 올바르게 작성되지 않으면 성능 문제 또는 불필요한 오류 처리가 발생할 수 있습니다. Stripos는 사용될 때 거의 발생하지 않는 비교적 간단한 도구입니다. 정규 표현의 복잡한 규칙을 이해하여 잠재적 오류를 줄일 필요는 없습니다.
예를 들어, 정규 표현식에는 특수 문자가 과도하게 일치하거나 잘못 구문 분석하는 것과 같은 취약점이있을 수 있습니다 .
일반 표현 엔진은 복잡한 패턴 매칭 규칙을 구문 분석하고 실행해야하며, 이는 더 많은 컴퓨팅 리소스를 소비합니다. 정규 표현식의 오버 헤드는 대량의 데이터 또는 고주파 호출을 처리 할 때 성능에 크게 영향을 줄 수 있습니다. Stripos는 간단한 문자열 검색 만 수행하며 복잡한 엔진 메커니즘을 포함하지 않으므로 훨씬 적은 리소스를 소비합니다.
문자열로 서브 스트링을 찾아야하는 경우 Stripos는 이미 충분히 강력합니다. 그것은 사례에 민감한 조회를 구현할뿐만 아니라 매우 직관적 인 API를 제공합니다. 복잡한 패턴 매칭을 할 필요가 없다면 Stripos를 사용하는 것이 더 나은 선택이 될 것입니다.
예를 들어, 다음 코드는 문자열에 특정 URL이 포함되어 있는지 확인할 수 있습니다.