草庐IT

mb_strpos

全部标签

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

用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 - 我可以在开关盒中使用 strpos 吗?

考虑:我有一个名为$field的变量,它有时可能具有诸如action、id和另一个术语。我想使用switch结构来筛选值:switch($field){case'action'://dosomethingbreak;case'id'://dosomethingbreak;case(strpos($field,'_term'))://dosomethingelsebreak;}前两种情况有效。第三个没有。我认为这是对switch语句的错误使用。这是否更好地处理为if/else序列? 最佳答案 您可以像这样使用switch语句来做到这一

PHP 问题 : strpos function not working

为什么下面的php代码不起作用:$string="123";$search="123";if(strpos($string,$search)){echo"found";}else{echo"notfound";}因为$search在$string中-它不应该在找到时触发吗? 最佳答案 Manual:strpos()中提到了这一点ThisfunctionmayreturnBooleanFALSE,butmayalsoreturnanon-BooleanvaluewhichevaluatestoFALSE,suchas0or"".Ple

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 - PHP 中字符串的内部表示

我正在PHP5.2.10上编写一个简单的网站解析器。使用默认内部编码(ISO-8859-1)时,我总是在同一个函数调用中收到错误:$start=mb_strpos($index,'');Fatalerror:Allowedmemorysizeof50331648bytesexhausted(triedtoallocate11924760bytes)在这种情况下,字符串$index的长度为2981190字节-正好比PHP尝试分配的长度少4倍。现在,如果我使用mb_internal_encoding('UTF-8')错误消失。这是否意味着PHP为单字节字符串使用的内存多于为多字节字符串使用

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 - 警告 : strpos(): Empty needle in . .....wordpress 插件

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭8年前。Improvethisquestion我收到这个错误:Warning:strpos():Emptyneedlein......popularity-contest.phponline2574functionakpc_is_searcher(){global$akpc;$referrer=pa

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

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