> 백엔드 개발 > PHP 튜토리얼 > PHP 소스 코드 3에 대한 간략한 토론: strrchr, strstr, stristr 함수 정보

PHP 소스 코드 3에 대한 간략한 토론: strrchr, strstr, stristr 함수 정보

不言
풀어 주다: 2023-04-01 21:48:01
원래의
2803명이 탐색했습니다.

이 글은 주로 PHP 소스 코드에 대한 간략한 논의를 소개합니다. 3: strrchr, strstr, stristr 함수에 대해서는 특정 참조 값이 있습니다. 이제 필요한 친구들이 참조할 수 있습니다

# 🎜🎜 #string strrchr (string haystack, string needle)

haystack의 마지막 needle(문자) 뒤의 문자열을 반환합니다.

needle이 숫자인 경우 이 숫자를 이 값으로 변환합니다. 문자
바늘이 두 개 이상의 문자열인 경우 첫 번째 문자를 사용합니다.
haystack이 숫자인 경우 해당 숫자는 직접 문자열로 변환됩니다.
프로그램은 Convert_to_string_ex(haystack ; 문자열을 호출합니다. 위치 뒤에 위치가 존재하지 않으면 false를 반환합니다.

string strstr (string haystack, string needle)

이 함수는 바늘이 문자열이 될 수 있다는 점을 제외하면 strrchr와 유사합니다. , 이 위치를 기준으로 후속 문자열이 반환됩니다.

알아둘 만한 특별한 세부 사항이 있습니다. 해당 코드는 다음 코드와 같습니다.

 static inline char *zend_memnstr(char *haystack, char *needle, int needle_len, char *end){
    char *p = haystack;
    char ne = needle[needle_len-1];     if(needle_len > end-haystack) {
        return NULL;
    }
    end -= needle_len;   //    优化细节一,仅查找end-needle_len长度的字符串     while (p <= end) {
        //    优化细节二,此处先判断字符串的开头和结尾的字符是否一样,如果一样则再判断整个字符串,提升性能
        if ((p = (char *)memchr(p, *needle, (end-p+1))) && ne == p[needle_len-1]) {    
            if (!memcmp(needle, p, needle_len-1)) {
                return p;
            }
        }         if (p == NULL) {
            return NULL;
        } 
        p++;
    }     return NULL;}
로그인 후 복사

위 코드는 strstr 및 stristr 함수로 구현된 핵심 코드입니다. 해당 기능은 haystack에서 바늘이 처음 나타나는 위치를 찾는 것입니다.

string stristr(string haystack, string needle)# 🎜🎜#stristr 함수는 대소문자를 구분하지 않는다는 점을 제외하면 strstr과 유사합니다.

PHP 소스 코드 구현의 주요 차이점은 모든 문자열을 소문자로 변환하는 작업이 추가된 것입니다. 프로그램 구현은 검색 앞에 다음 코드를 추가하는 것입니다:

   php_strtolower(s, s_len);php_strtolower(t, t_len);return php_memnstr(s, t, t_len, s + s_len);
로그인 후 복사

PS: 소스 코드를 살펴보는 과정에서 "포인터 다시 인식"의 이전 단락을 다시 읽고 몇 가지 통찰력을 얻었습니다. 포인터와 같은 변수는 주소와 같은 데이터 유형에 내재되어 있습니다. 주소를 저장하는 변수인 포인터는 덧셈과 뺄셈 연산을 수행할 수 있습니다.

정수 변수와 동일합니다. 정수는 더하기, 빼기, 곱하기, 나누기가 가능하고, 더하기, 빼기, 곱하기, 나누기도 가능하기 때문입니다.

위 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:



PHP 소스 코드 2에 대한 간략한 토론: strlen, strtolower, strtoupper, ord, chr 함수 정보

#🎜🎜 ##🎜 🎜#

PHP 소스 코드 1에 대한 간략한 토론: 분해 및 내부 분해

위 내용은 PHP 소스 코드 3에 대한 간략한 토론: strrchr, strstr, stristr 함수 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿