taoCMS是基于php+sqlite/mysql的国内最小(100Kb左右)的功能完善的CMS管理系统

解读zend_api字符串替换之zend_memnstr即php_memnstr

2012-04-05

zend_memnstr(char *haystack, char *needle, int needle_len, char *end)
{
     字符首指针
        char *p = haystack;
     最后一个字符
        char ne = needle[needle_len-1]; 
    减小查询范围,判断needle_len应该小于end还算比较巧妙哦
    end -= needle_len;

    while (p <= end) {
        在数组的前n个字节中搜索字符 memchr(p, *needle, (end-p+1)) 
   
        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;
}

类别:技术文章 | 阅读:205122 | 评论:0 | 标签:zend php

想收藏或者和大家分享这篇好文章→

“解读zend_api字符串替换之zend_memnstr即php_memnstr”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

taoCMS发布taoCMS 3.0.2(最后更新21年03月15日),请大家速速升级,欢迎大家试用和提出您宝贵的意见建议。

捐助与联系

☟请使用新浪微博联系我☟

☟在github上follow我☟

标签云