草庐IT

iconv_strlen

全部标签

没有 strlen() 的 PHP 字符串长度

刚刚浏览了最新版本的PHP编码标准,一些东西引起了我的注意:http://svn.php.net/viewvc/php/php-src/trunk/CODING_STANDARDS?revision=296679&view=markup编码标准#4声明“在编写处理字符串的函数时,一定要记住PHP拥有每个字符串的长度属性,不应使用strlen()计算它...”我一直使用strlen,也许它只是晚了,但是如何在PHP中访问字符串的内置长度属性? 最佳答案 他们在谈论Cfunction,而不是PHP函数。C函数将在第一个\0后停止计数,但

php - array 上的 strlen 在 php 中返回 5

来自文档-intstrlen(string$string)它以字符串作为参数,现在当我这样做时-$a=array('tex','ben');echostrlen($a);输出-5然而我期待的是,两种类型的输出-如果它是一个数组,php可能会把它转换成字符串,这样数组就会变成-'texben'所以它可能输出-6如果第一个不是它会像这样转换它-"array('tex','ben')"所以预期的输出应该是-18(所有项目的计数)但是每次它输出-5我对输出的考虑是array字数的5但我不确定。如果是这种情况,PHP是如何做到这一点的?(意味着数5) 最佳答案

php - 在 PHP 7 Ubuntu 14.04 上调用未定义函数 mb_strlen()

我安装的Yii直到今天都运行良好。我今天在我的机器上安装了更新,之后所有页面都抛出了这个错误:PHPFatalError–yii\base\ErrorExceptionUncaughtError:Calltoundefinedfunctionyii\web\mb_strlen()in/application/vendor/yiisoft/yii2/web/ErrorHandler.php:404我运行了composerupdate但错误仍然存​​在。我在Ubuntu14.04上的PHP7上使用yii2.0.7。我该如何解决这个问题? 最佳答案

php - 获取 iconv 来转换我的字符串

我有以下字符串:ᴰᴶBagi有没有可能让iconv做成DJBagi?首先我尝试了:$text=iconv('utf-8','us-ascii//TRANSLIT',$text);导致以下通知:Notice:iconv()[function.iconv]:Detectedanillegalcharacterininputstring在PHP站点上,我看到有人使用://忽略//TRANSLIT虽然这会阻止我只收到通知:Bagi 最佳答案 我最初认为这是您端的编码问题,但如果我从soundcloud源页面复制并粘贴这些字符到本地:ᴰᴶBa

php - 为什么 iconv 会产生非法字符错误?

我正在尝试消除脚本中的警告和通知。该脚本包括以下内容:$clean_string=iconv('UTF-8','UTF-8//IGNORE',$supplier.'=>'.$product_name);据我了解,这一行的目的,正如脚本的原作者所期望的那样,是从字符串中删除非UTF-8字符,但显然输入中的任何非UTF-8字符都会导致iconv抛出非法字符警告。为了解决这个问题,我的想法是做如下事情:$clean_string=iconv(mb_detect_encoding($supplier.'=>'.$product_name),'UTF-8//IGNORE',$supplier.'

PHP iconv greek/cyrillic 音译不起作用

我有以下测试代码:setlocale(LC_ALL,'en_US.UTF8');functiont($text){echo"$text\n";echo"encoding:",mb_detect_encoding($text),"\n";//transliterate$text=iconv('UTF-8','ASCII//TRANSLIT//IGNORE',$text);echo"iconv:",$text,"\n";}//Latvianalphabett('AĀBCČDEĒFGĢHIĪJKĶLĻMNŅOPRSŠTUŪVZŽaābcčdeēfgģhiījkķlļmnņoprsštuūvz

php - iconv() : Wrong charset, 不允许从 `auto' 转换为 `utf-8//IGNORE'

我正在为我的Laravel4框架使用thujohn/PDF-l4插件。它在本地Windows环境中运行良好。但是当移动到我的Centos生产环境时,转换PDF时会抛出以下错误。"iconv():Wrongcharset,conversionfrom`auto'to`utf-8//IGNORE'isnotallowed"检查了我的php-mbstring,但没有发现任何错误。 最佳答案 请在CentOS上安装PHPmbstring和xml扩展 关于php-iconv():Wrongchar

php - 为什么有人想使用 strlen 而不是 mb_strlen

有一些遗留代码,我应该将其从iso-8859-2转换为UTF-8。其中一个问题是strlen函数的广泛使用。我首先想到的是将所有出现的strlen替换为mb_strlen。但是,我的一位同事说这是一个错误。我知道这两个函数之间的区别-如果字符串中有重音字符,strlen将返回它实际占用的字节数,而mb_strlen将返回字符。现在,一位同事说,也许,只是也许某处存在返回值需要与字符串中的字节数有关的情况,但他无法给我任何此类情况的示例。整个代码中大约有900次strlen出现,分析每一次出现都需要几天时间。问题是-当有人需要字节数而不是字符串中的字符数时,可能出现的情况是什么?

php - 为什么在引用值上调用函数(如 strlen、count 等)这么慢?

我刚刚在PHP中发现了一些非常奇怪的东西。如果我通过引用将一个变量传递给一个函数,然后在其上调用一个函数,它会难以置信慢。如果您遍历内部函数调用并且变量很大,它可能比按值传递变量慢很多个数量级。例子:这在我的机器上(在PHP5.3上)运行通常需要大约20秒。但是如果我将函数更改为按值传递(即functionTestCount($aArray)而不是functionTestCount(&$aArray)),那么它会运行在大约2毫秒-快10,000倍!其他内置函数(如strlen)和用户定义函数也是如此。这是怎么回事? 最佳答案 我发现

php - 为什么PHP的iconv需要setlocale?

我目前正在尝试通过将UTF-8字符串中的所有特殊字符和重音符转换为等效的ASCII字符来删除它们。所以我只是使用这段代码:$result=iconv('UTF-8','ASCII//TRANSLIT//IGNORE',$input);问题是,例如单词“début”变成了“dbut”而不是“debut”。为了让它工作,我需要添加对setlocale的调用,如下所示:setlocale(LC_ALL,'en_US.UTF8');$result=iconv('UTF-8','ASCII//TRANSLIT//IGNORE',$input);我不明白为什么。我认为UTF-8和ASCII总是相同