热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

zencart中的一个函数不知道是要做什么的?

{代码...}这是zencart中文版中,中文版补充的一个函数,一个用例就是对$sql查询语句进行转换,如GBcase($sql,'lower'),这里要对$sql要做的就是根据$page$size$sql$rows进行分页,如果要进行大小写转换直接用...
function GBcase($text, $case)
{
    $case = strtolower($case);
    if ($case != "upper" && $case != "lower" && $case != "ucwords" && $case != "ucfirst")
    {
        return "函数用法错误。 $case";
    }
    else
    {
        $ucfirst = 0;
        $ucwords = 0;
        $news    = "";
        $l       = strlen($text);
        $GB      = 0;
        $english = 0;

        $a = 0;
        while ($a <$l)
        {

            $ch = substr($text, $a, 1);
            if ($GB == 0 && ord($ch) >= HexDec("0x81"))
            {

                $GB      = 1;
                $english = 0;
                $news .= $ch;
                $ucwords = 0;

            }
            elseif ($GB == 1 && ord($ch) >= HexDec("0x40") && $english == 0)
            {
                $news .= "$ch";
                $ucwords = 0;
                $GB      = 0;

            }
            else
            {
                if ($case == "upper")
                {
                    $news .= strtoupper($ch);
                }
                elseif ($case == "lower")
                {
                    $news .= strtolower($ch);
                }
                elseif ($case == "ucwords")
                {
                    if ($ucwords == 0)
                    {
                        $news .= strtoupper($ch);
                    }
                    else
                    {
                        $news .= strtolower($ch);
                    }
                    $ucwords = 1;
                }
                elseif ($case == "ucfirst")
                {
                    if ($ucfirst == 0)
                    {
                        $news .= strtoupper($ch);
                        $ucfirst = 1;
                    }
                    else
                    {
                        $news .= strtolower($ch);
                        $ucfirst = 1;
                    }
                }
                else
                {
                    $news .= $ch;
                }
                if ($ch == " " || $ch == "\n")
                {
                    $ucwords = 0;
                }
                $english = 1;
                $GB      = 0;

            }

            $a++;

        } // END OF while
        return $news;
    } // end else
}

这是zencart中文版中,中文版补充的一个函数,一个用例就是对$sql查询语句进行转换,如GBcase($sql,'lower'),这里要对$sql要做的就是根据$page/$size/$sql/$rows进行分页,如果要进行大小写转换直接用函数不就行了,我对ASCII编码这些也不是很懂,所以看不太懂这个。

回复内容:

function GBcase($text, $case)
{
    $case = strtolower($case);
    if ($case != "upper" && $case != "lower" && $case != "ucwords" && $case != "ucfirst")
    {
        return "函数用法错误。 $case";
    }
    else
    {
        $ucfirst = 0;
        $ucwords = 0;
        $news    = "";
        $l       = strlen($text);
        $GB      = 0;
        $english = 0;

        $a = 0;
        while ($a <$l)
        {

            $ch = substr($text, $a, 1);
            if ($GB == 0 && ord($ch) >= HexDec("0x81"))
            {

                $GB      = 1;
                $english = 0;
                $news .= $ch;
                $ucwords = 0;

            }
            elseif ($GB == 1 && ord($ch) >= HexDec("0x40") && $english == 0)
            {
                $news .= "$ch";
                $ucwords = 0;
                $GB      = 0;

            }
            else
            {
                if ($case == "upper")
                {
                    $news .= strtoupper($ch);
                }
                elseif ($case == "lower")
                {
                    $news .= strtolower($ch);
                }
                elseif ($case == "ucwords")
                {
                    if ($ucwords == 0)
                    {
                        $news .= strtoupper($ch);
                    }
                    else
                    {
                        $news .= strtolower($ch);
                    }
                    $ucwords = 1;
                }
                elseif ($case == "ucfirst")
                {
                    if ($ucfirst == 0)
                    {
                        $news .= strtoupper($ch);
                        $ucfirst = 1;
                    }
                    else
                    {
                        $news .= strtolower($ch);
                        $ucfirst = 1;
                    }
                }
                else
                {
                    $news .= $ch;
                }
                if ($ch == " " || $ch == "\n")
                {
                    $ucwords = 0;
                }
                $english = 1;
                $GB      = 0;

            }

            $a++;

        } // END OF while
        return $news;
    } // end else
}

这是zencart中文版中,中文版补充的一个函数,一个用例就是对$sql查询语句进行转换,如GBcase($sql,'lower'),这里要对$sql要做的就是根据$page/$size/$sql/$rows进行分页,如果要进行大小写转换直接用函数不就行了,我对ASCII编码这些也不是很懂,所以看不太懂这个。

推荐阅读
  • 深入探讨PHP中的输出缓冲技术(Output Buffering)
    本文深入解析了PHP中输出缓冲(Output Buffering)的原理及其在Web开发中的应用,特别是如何通过输出缓冲技术有效管理HTTP头部信息,提高代码的灵活性与健壮性。 ... [详细]
  • 本文详细介绍了如何解决Oracle数据库中出现的ORA-28002错误,即密码将在1天内过期的问题,包括原因分析及解决方案。 ... [详细]
  • 使用Solr从MySQL导入数据构建全量索引
    为了更好地掌握Solr的各项功能,本文档将在本地Windows环境中演示如何从MySQL数据库中导入数据至Solr,并构建全量索引。这将有助于开发者熟悉Solr的数据处理流程,尤其是在无法直接在生产服务器上进行实践的情况下。 ... [详细]
  • MySQL中的Anemometer使用指南
    本文详细介绍了如何在MySQL环境中部署和使用Anemometer,以帮助开发者有效监控和优化慢查询性能。通过本文,您将了解从环境准备到具体配置的全过程。 ... [详细]
  • 本文旨在为读者提供SPSS中t检验和卡方检验的简单明了介绍,帮助初学者快速掌握这两种常用统计方法的应用技巧。通过实际案例分析,加深对理论知识的理解。 ... [详细]
  • 本文探讨了Oracle数据库中角色的创建与管理方法,包括如何使用SET ROLE命令激活特定角色,并调整用户的默认角色设置。 ... [详细]
  • 如何在HTML中为两个不同的div设置不同的overflow属性
    探讨在Web前端开发中,如何使用CSS的overflow属性来实现两个div的不同滚动效果,特别是当设计一个弹出窗口时的需求处理。 ... [详细]
  • 本文介绍了如何在Delphi中使用TSimpleMsgPack组件来实现消息的打包和解包功能,包括网络通信中的数据处理。 ... [详细]
  • 在尝试通过Java项目连接Oracle数据库时,遇到了一个严重的初始化上下文监听器异常。 ... [详细]
  • 本文详细介绍了如何在 Python 3.3 环境下操作 MySQL 数据库,包括调用存储过程、连接数据库以及基本的数据操作方法。 ... [详细]
  • 本文详细介绍了MyBatis中的延迟加载功能,包括其基本概念、实现方式以及如何在实际开发中应用。通过具体的代码示例,帮助读者更好地理解和掌握这一优化数据库查询性能的重要技术。 ... [详细]
  • 在不断发展的信息技术领域,选择合适的数据库管理系统对项目成功至关重要。本文通过比较Oracle和SQL Server两种主流数据库,探讨它们在不同应用场景下的优缺点,帮助开发者根据自身需求做出合理选择。 ... [详细]
  • Working with Errors in Go 1.13
    作者|陌无崖 ... [详细]
  • 本文详细探讨了如何在 SparkSQL 中创建 DataFrame,涵盖了从基本概念到具体实践的各种方法。作为持续学习的一部分,本文将持续更新以提供最新信息。 ... [详细]
  • 启明星工作室坐落于上海黄浦区,自2010年1月成立以来,专注于为企业提供基于微软技术栈(ASP.NET和MSSQL)的内部综合软件解决方案。本文将详细介绍启明星的七大核心产品及其背后的开发理念。 ... [详细]
author-avatar
轶乐-love万
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有