草庐IT

mb_strpos

全部标签

php - str_replace 为 strpos?

带有strpos检查的str_replace函数可以避免额外的工作吗?方法一...if(strpos($text,$tofind)!==FALSE)$text=str_replace($tofind,$newreplace,$text);...方法二...$text=str_replace($tofind,$newreplace,$text);...问题:这两种方法都有效,但是......我想知道strpos-checking(或其他)是好方法还是坏方法,无用(和优化反模式)。 最佳答案 您可以保存一些str_replace()调用

php - 顺序 strpos() 比具有一个 preg_match 的函数更快?

我需要测试是否有任何字符串'hello'、'iam'、'dumb'存在于称为$ohreally的较长字符串中,如果其中一个存在,我的测试就结束了,我有知道如果其中一个发生,其他两个都不会发生。在这种情况下,我请求您帮助以最有效的方式编写此搜索,strpos()像这样3次?if(strpos($ohreally,'hello')){returnfalse;}elseif(strpos($ohreally,'iam')){returnfalse;}elseif(strpos($ohreally,'dumb')){returnfalse;}else{returntrue;}还是一个preg_

php - strpos 总是在 php 中返回 true

我写了这段代码:$token="Birth";$msg="IamawesomeandIknowit";if(strpos(strtolower($msg),strtolower($token))>=0){echo'ok';}它打印ok正如我们所见,消息中没有像Birth这样的词,但它仍然返回true。我猜它应该返回false正如php手册所说。在这方面的任何帮助, 最佳答案 strpos()如果未找到标记,则返回FALSE,如果找到,则返回标记在字符串中的(第一个)位置。您需要使用严格比较运算符===检查bool值FALSE以确定是

php - PHP 中的 strpos 函数问题找不到针

在php中,我打开了一个.php文件并想评估某些行。特别是当$table_id和$line变量被赋值时。在我的文本文件中:...$table_id='crs_class';//tablename$screen='crs_class.detail.screen.inc';//fileidentifyingscreenstructure...除其他外。下面的if语句永远不会检测到$table_id或$screen的出现(即使没有$前缀)。我不明白为什么它不起作用,因为下面查找“require”的strpos语句工作正常。那么,为什么这个if语句没有成功呢?while($line=fgets

php - 在 PHP 中生成高达 100MB 的随机字符串以进行测试的有效方法?

出于测试目的,我需要这样的函数:/***@paramint$sizeInBytes**@returnsstringwithrandomdata*/functionrandomData($sizeInBytes){...}有什么有效实现的想法吗?需要速度而不是真正的随机性(更像是一种“loremipsum”)。我最简单的想法是在文件系统中使用真正的大文件并通过流获取所需的大小。但这至少需要一个100MB的文件。有没有更好的办法? 最佳答案 如果您有可用的内存,只创建一个很长的字符串怎么样?这不应该花那么长时间:)$x=str_repe

php - fatal error : call to undefined function mb_strtolower() in OpenCart

这个问题在这里已经有了答案:Fatalerror:Calltoundefinedfunctionmb_strtolower()(4个答案)关闭8年前。我正在使用opencart1.5.6这周我遇到了一次严重的服务器崩溃,不得不对服务器进行镜像恢复。现在一切都恢复正常,除了现在在opencart中,当我尝试以客户身份登录或去结账时,我收到此错误并且不知道如何解决它。SyntaxError:JSON.parse:unexpectedcharacteratline1column1oftheJSONdataFatalerror:Calltoundefinedfunctionmb_strtolo

php - mb_convert_encoding() 不适用于 phpunit

出于某种原因,在phpunit中运行mb_convert_encoding时,我得到了意想不到的结果。例如执行以下操作:var_dump(mb_convert_encoding(utf8_decode('ö'),'UTF-8')==='ö')上面在PHP-FPM和PHP-CLI下返回bool(true),但是在PHPunit下返回false,mb_convert_encoding()正在做一些事情,它只是编码到一个乱七八糟的字符串。 最佳答案 我猜你正在使用一组不同的mbstringini设置。这是解决该问题的一种方法。首先,您可以

上传 "larger"(超过 2MB)文件时出现 PHP 文件上传问题

我在尝试上传“更大”的文件时遇到了问题,我相信我所允许的限制大约是2MB。我已经上传了多个小于2MB的文件类型(.js、.png、.jpg、.psd、.php),但是任何超过2MB的文件都会失败。1.8MBpsd图片已完成2.4MBpsd图像无效(与1.8相同的文件,只是更大)我已经将php.ini更改为以下内容:upload_max_filesize=20M(从2M更改)post_max_size=40M(从2M改为)max_execution_time=60(从45改为)max_input_time=180(从30改为)memory_limit=48M(从8M改为)我还在我的hta

php - 在 PHP 中读取非常大(超过 100MB)的 Excel 文件

我正在尝试使用PHPExcel读取一个大于100MB的Excel文件,但它在加载文件时崩溃了。我不需要任何样式。我尝试使用:$objReader->setReadDataOnly(true);但它仍然崩溃。有什么有效的方法可以在PHP中读取这种大小的Excel文件吗? 最佳答案 尝试Spout:https://github.com/box/spout.这是一个为解决您的问题(读/写大文件)而创建的PHP库。这就是它起作用的原因:其他图书馆在内存中保留电子表格的表示形式,这使得它们容易出现内存不足错误。使用一些缓存策略将有助于解决此类

php - 有没有办法使用 PHPExcel 从 20MB 以上的 Excel 文件中获取工作表名称?

我正在使用PHPExcel从Excel文件中读取数据。使用以下代码,我可以在几秒钟内从3MBExcel文件中读取一个特定的工作表。效果很好。但是,我现在有27MB和88MBExcel文件,我需要从中获取数据。它们太大了,连OpenOffice都打不开。我发现加载工作表时可以使用索引号而不是名称,但这似乎不一致,例如在一个特定的Excel文件中,setLoadSheetsOnly(0)给了我第三个工作表,而setLoadSheetsOnly(1)给了我一个错误即使文件中有四个工作表。所以出于某种原因,这似乎不可靠。有没有一种方法可以从一个大文件中读出工作表的名称,以便我一次只能访问其中一