一、安装mbstring [root@sil-server15 php.d]# rpm -ql php-mbstring package php-mbstring is not installed [root@sil-server15 php.d]# yum^Chp-mbstring [root@sil-server15 php.d]# vi /var/log/php_errors.log [root@sil-server15 php.d]# ll /usr/lib64/php/modules/ | grep mbstring [root@sil-server15 php.d]# yum install php-mbstring Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile epel/metalink | 4.8 kB 00:00 * base: mirrors.yun-idc.com * epel: mirrors.yun-idc.com * extras: mirrors.yun-idc.com * updates: mirrors.yun-idc.com base | 3.7 kB 00:00 epel | 4.4 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package php-mbstring.x86_64 0:5.3.3-27.el6_5 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================== Package Arch Version Repository Size ================================================================================================================================== Installing: php-mbstring x86_64 5.3.3-27.el6_5 updates 455 k Transaction Summary ================================================================================================================================== Install 1 Package(s) Total download size: 455 k Installed size: 2.1 M Is this ok [y/N]: y Downloading Packages: php-mbstring-5.3.3-27.el6_5.x86_64.rpm | 455 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : php-mbstring-5.3.3-27.el6_5.x86_64 1/1 warning: /etc/php.d/mbstring.ini created as /etc/php.d/mbstring.ini.rpmnew Verifying : php-mbstring-5.3.3-27.el6_5.x86_64 1/1 Installed: php-mbstring.x86_64 0:5.3.3-27.el6_5 Complete! [root@sil-server15 php.d]# ll /usr/lib64/php/modules/ | grep mbstring -rwxr-xr-x. 1 root root 2183496 12月 11 11:34 mbstring.so [root@sil-server15 php.d]# 二、解决思路 题目之间的分割格式,数字后跟点号:'^[0-9][0-9]*\.' 空格的作用:空格前期不做任何处理,后期处理如果需要会进行相应处理。 字母开头的默认为选项 数字开头的? 1、非常规字符预处理pre_char_conv:1)将非常规字符转换为对应的常规字符2)对于行首为字母(数字)开头的(之前可以用空格)且字母(数字)后不跟.(对于数字其后不能跟右括号),视为用来进行分割的特殊字符,在后面加上符号.。 2、字符串分割split_content,用来分割题目、选项、答案、解析等,在同一行的。 字符串分割之一:以数字(前可以有空格)加.开头的,用split_question分割:1)判断是否需要分割need_split_question,如果符合题目、选项、答案、解析正则表达式的数目大于1,则需要分割,否则不需要。 字符串分割之二:以数字(前可以有空格)加.开头的,用split_option分割:1)判断是否需要分割need_split_option,如果符合选项、(答案、解析?)正则表达式的数目大于1,则需要分割,否则不需要。 3、字符串处理post_char_conv,为类型识别做准备,因为:如果只用数字或字母开头作为标准,可能会出错误,如2)因为选项而不是题目。post_char_conv的主要工作:1)去掉空格2)对于行首为字母(数字)开头的(之前可以用空格)且字母(数字)后不跟.(对于数字其后不能跟右括号),在后面加上符号.。主要针对的是后来分割出来的字符串。 4、角色猜测get_supposed_role:根据对应的正则表达式,猜测该字符串的角色。 5、角色修正check_role:1)相邻角色相同且不为option,二合一2)如果相邻角色顺序不对,如果类型是option,则与前一个合并。 比较危险的地方:字符串分割。 注意: 1、数字开头,如果后面跟右括号,则认为是选项,否则预先会在其后面加上.默认为是题目。 2、假设所有以题目开始,且都有答案。 三、解决思路(新) 3.1、答案的分割:答案中有多个字母。 不需要分割: 61、按生产要素密集程度,企业划分为( ) A.劳动密集型 B.资金密集型 C.知识密集型 D.合资经营 E.合作经营企业 答案:a,b,c 62、多元化企业的特点是( ) A.资源利用率提高 B.增加管理难度 C.共担风险,共负盈亏 D.适应市场变化能力差 E.独立核算 答案:a,b 解析:A为优点,B为缺点。 1、市场经济与商品经济不同,它是( )。 A.相对于自然经济、产品经济而言的 B.通过市场机制来引导和调节企业和居民的行为 C.市场在资源配置中起基础作用的商品经济 D.商品经济发展的必然要求 E.发达的商品经济 2、商品经济存在必须具备的两个条件是( )。 A.生产资料和产品分属于各个不同的所有者 B.私有制的产生 C.社会分工 D.阶级的出现 E.国家的产生 1、 【正确答案】:BCDE 【答案解析】:本题考查市场经济与商品经济的不同点。 2、 【正确答案】:AC 【答案解析】:本题考查商品经济产生和发展的经济条件。 需要分割: 1.马克思指出:会计是对生产过程的"控制和观念的总结"。这表明会计的基本职能是() 1)生产职能 2)反映监督职能 3)生产职能和管理职能的统一 4)主要是管理职能兼生产职能 2.传统的会计主要是() 1)记帐算帐报帐 2)记帐预测分析 3)记帐算帐查帐 4)记帐报帐查帐 答案:ad 需要分割: 40.在填制会计凭证时,1518.34的大写金额是( )。 A 壹仟伍佰拾捌元三角四分整 B 壹仟伍佰壹拾捌元三角四分整 C 壹仟伍佰壹拾捌元三角四分 D 壹仟伍佰拾捌元三角四分 53.按照记账凭证的审核要求,下列不属于记账凭证的审核内容的是( )。 A 会计科目使用是否正确 B 凭证有关事项是否符合规划和预算 C 于原始凭证金额是否一致 D 凭证项目是否齐全 答案: BD 需要分割: 40.2010年在填制会计凭证时,1518.34的大写金额是( )。 A 壹仟伍佰拾捌元三角四当分整 B 壹仟伍佰壹拾捌元三角四分整 C 壹仟伍佰壹拾捌元三角四分 D 壹仟伍佰拾捌元三角四分 53.2008 年按照记账凭证的审核要求,下列不属于记账凭证的审核内容的是( )。 A 会计科目使用是否正确 B 凭证有关事项是否符合规划和预算 C 于原始凭证金额是否一致 D 凭证项目是否齐全 54.按照记账凭证的审核要求,下列不属于记账凭证的审核内容的是( )。 答案: 1.BD 2.ab 3.x 答案辅助识别(需要在前面补充'答案'二字,以便识别为答案): 1、$row = preg_replace('/^ *([0-9]+ *\.* *[A-F]+)$/','答案$1',$row); 符合答案格式,但前面没有答案标示的,需要加上'答案'二字 如 答案: 1.B 解析:嘻嘻嘻 2.ac 解析:we呃呃呃 2、$row = preg_replace('/ *([0-9]+-[0-9]+)/','答案汇总$1',$row); 前面加'答案汇总',会逐字母分割 如 1-5 CABAA 5-10 ADBCB 3、$row = preg_replace('/((?:[0-9]+ *\.* *(?:正确|错误|[A-Fx√×对错])+ *)(?:[0-9]+ *\.* *(?:正确|错误|[A-Fx√×对错])+ *){1,})/','答案$1',$row); 出现连个个以上(?:[0-9]+ *\.* *(?:[A-FT]+) *)的形式,就任务是以index分割的答案,按数字进行分割。 如 1B 2B 3D 4B 5A 6B 7C 8B 9D 10C 总结: 默认需要分割, 满足样式:$p0 = '(?:12{4,5}){2,}(?:3+?4*){2,}',不需要分割。 答案满足样式,需要按数字分割。 3.2、行的合并 3.3、行的分割 3.4、关于空格 选项[A-F]的识别需要空格。 答案提取需要将空格删除,以便正则表达式匹配。 空格在merge_rows方法中被删除。 在问题和选项的识别中不需要空格。可以保留。 3.5、题目、选项、解析多行的问题 拼接之后放在一个字符串中,在merge_rows中进行。 $rows_follow_analysis = $rows_follow_analysis.'\n'.$next_row; 在网页上预览显示时,通过explode方法,按'\n'分割,并将结果放入数组。 explode('\n', $arr[$start_pos+$k]) 关于解析的拼接字符串,在array中出现空行的情况:在merge_rows并非空行,但在array_retreat_rows中被替换导致空行。 3.6、题型的判断 选择、填空。 如果选项少于两个,有可能为选择或填空。 对于题目答案分离的情况,出现选择或填空,按选项个数是否为0来判断。 3.7、答案的分割 在获得各行角色和答案的分割在同一个函数:get_and_check_roles。 如果是答案题目分离且个数相同的情况,答案不需要进行分割,在get_and_check_roles中进行答案[A-FT]的合并,将[^A-FT]字符删除。 其它情况都要试用find_split_answer进行分割。 find_split_answer辅助get_and_check_roles进行答案的寻找(对于答案在题目中的情况)和分割 待完善:填空题的答案部需要[A-FT]的查找与合并;如果填空题答案中出现[A-FT]会被认为是判断题。 3.8、角色前缀的删除 需要在为其赋予角色后即删除,否则在角色合并之后,会出现前缀删除不完全的情况。 角色前缀后面跟的特定字符(如[、,])的删除,question与option的处理方式不同。