草庐IT

mb_strlen

全部标签

php - 为什么 mb_convert_case 在 PHP 5.4 中破坏了我的字符串,而在 5.2 中却没有?

我有以下代码:header('Content-type:text/html;charset=utf-8');$str='áááá';echo$str."\n";echomb_convert_case($str,MB_CASE_TITLE)."\n";echobin2hex($str)."\n";echobin2hex(mb_convert_case($str,MB_CASE_TITLE))."\n";使用PHP5.2.2,我得到以下输出:áááááááác3a1c3a120c3a1c3a1c3a1c3a120c3a1c3a1使用PHP5.4.3,我得到这个:ááááá�á�c3a1c3

php - 在 PHP 中验证 ~400MB 的大型 XML 文件

我有一个很大的XML文件(大约400MB),我需要确保在开始处理它之前格式正确。我尝试的第一件事是类似于下面的东西,这很棒,因为我可以找出XML是否格式不正确以及XML的哪些部分是“坏的”$doc=simplexml_load_string($xmlstr);if(!$doc){$errors=libxml_get_errors();foreach($errorsas$error){echodisplay_xml_error($error);}libxml_clear_errors();}也尝试过...$doc->load($tempFileName,LIBXML_DTDLOAD|LI

php - PHP中strlen()的效率如何?

使用strlen是通过遍历字符串实际计算字符串中的字节数,还是简单地从索引返回已计算的字符串长度值?我的问题的原因是因为我可以选择为速度敏感的脚本存储非常长的字符串的预计算值,或者我可以只使用strlen函数并保存自己的代码时间。但我其实很想知道strlen是如何工作的,因为我倾向于非常依赖它,也许这不是一个好主意?更新请参阅下面的基准测试。 最佳答案 去他的,我做了一个基准测试:结果strlenonshortstringtook12.508891820908secondsstrlenonlongstringtook11.89769

用BS4解析1 MB XML文件

我有两个SVG地图,下载了这里。我的目标是对Python中的这些地图进行一些编辑,并通过BeautifulSoup4与它们合作。这与低分辨率文件(132.5kb)完美搭配。但是,当我尝试将其与高分辨率文件(1.2MB)一起使用时,BS4解析器(使用LXML)完全失败。代码就是这样:importlxmlfrombs4importBeautifulSoupasSoupwithopen('worldHigh.svg','r')asf:handler=f.read()soup=Soup(handler,'xml')print(soup.prettify())当我用worldhigh.svgfifle运

php - mb_convert_encoding 错误 : Call to undefined function mb_convert_encoding()

我目前正在编写一个PHP函数,但是在执行完整的脚本时出现错误:错误:Calltoundefinedfunctionmb_convert_encoding()我的功能:functioncleanData(&$str){if($str=='t')$str='TRUE';if($str=='f')$str='FALSE';if(preg_match("/^0/",$str)||preg_match("/^\+?\d{8,}$/",$str)||preg_match("/^\d{4}.\d{1,2}.\d{1,2}/",$str)){$str="'$str";}if(strstr($str,'

php - Javascript 字符串长度不同于 PHP mb_strlen(在 textarea 行,换行符)

我正在使用JavaScript和PHP来计算字符串长度。一切正常,除了当我计算来自Chrome或Firefox与InternetExplorer的文本区域字符串长度时。新的文本区域行/换行符在InternetExplorer和PHP中计算为2个字符。但是Chrome和Firefox计算textarea行/换行符只是1个字符(而PHP和InternetExplorer计算为2个字符)。这是我的问题。谁知道怎么解决?所以在IE中的文本区域中的JavaScript字符计数=用PHP计算的字符串长度///Chrome/Firefox文本区域中的JavaScript字符数不等于用PHP计算的字符

php - mb_str_replace()... 很慢。有什么选择吗?

我想确保我正在运行的一些字符串替换是多字节安全的。我在网上找到了一些mb_str_replace函数,但它们很慢。我说的是在通过它传递500-900字节后增加20%。有什么建议吗?我正在考虑使用preg_replace,因为它是native的并已编译,所以它可能会更快。如有任何想法,我们将不胜感激。 最佳答案 如前所述there,str_replace在utf-8上下文中使用是安全的,只要所有参数都是utf-8有效的,因为它不会是两个多字节编码字符串之间的任何模糊匹配。如果您检查输入的有效性,则无需寻找其他函数。

php - mb_strpos vs strpos,有什么区别?

是的:我知道。当我们处理多字节字符时,我们应该使用mb_*函数。但是当我们使用strpos时?我们来看看这段代码(以utf-8保存)var_dump(strpos("Mysymbolutf-8isthe€.","\xE2\x82\xAC"));//int(23)使用mb_strpos有区别吗?这不会使这项工作成为相同的工作吗?毕竟,strpos不是在寻找字符串(多字节)吗?有理由使用strpos吗? 最佳答案 对于UTF-8,匹配字节序列和匹配字符序列是完全一样的。所以他们都将在完全相同的点找到针,但是mb_strpos计算完整的U

vue-springboot基于elasticsearch的高校科研期刊信息管理系统mb8od

当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到高校科研信息管理系统的导航条显示首页、科研文件、核心期刊、合同模板、各类表格、科研讲堂、科研软件、后台管理、个人中心等。管理员登录进入高校科研信息管理系统的实现可以查看系统首页、个人中心、用户管理、科研项目管理、科研成果管理、科研经费管理、科研文件管理、核心期刊管理、合同模板管理、各类表格管理、科研讲堂管理、科研软件管理、系统管理等信息,1.前后端分离项目,前端使用vue框架2.后端使用nodejs编程语言的vue框架3.项目中登录模块用到token4.源码包部署调试5.每个笔记均有对应源码数据库:mysql5.7/8.0或以

php - Smarty 以 strpos 作为开始和 strlen 作为结束获取 var 的子字符串

我在smarty中格式化变量时遇到问题。我想知道最好的方法是什么。基本上我有一个字符串“ABC|DEFGH”,我希望smarty获得“DEFGH”的子字符串,我该怎么做?{$var|substr:strpos:"|":strlen}没用 最佳答案 刚刚解决了这个问题,没有在PHP中重新设置var,而是使用内置函数包装器。假设:$var="ABC|DEFGH";{assignvar="bar_at"value=$var|strpos:"|"}{$var}{$var|substr:0:$bar_at}{$var|substr:$bar_