jjzjj

php - 使用多个步骤来完成 if 测试有什么好处?

使用多个步骤来测试变量有什么好处:$VarLength=strlen($message);if($VarLength>10)echo"OverTen";...而不是将整个过程插入一个if语句:if(strlen($message)>10)echo"OverTen";我想知道好处是否超出了代码风格,以及重用(在上面的示例中)strlen结果的能力。 最佳答案 您的问题在技术上不太可能回答,所以这更像是评论而不是答案。代码风格和结果重用之外的好处是当您更改代码时。您可能想用其他函数替换strlen()函数,但您不想在这样做时用if子句编

没有 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 - 这个基于异或的加密函数安全吗?

我在这里尝试做的是创建一个函数,每次调用时将相同的输入加密为完全不同的输出。此函数的基础是异或,但要防止容易发现字符串中的重复模式。我添加了基于时间和字符串部分的随机散列,以在解密时进行self验证。我所要求的是,如果我在这里犯了任何类型的错误,可能会向有经验的人显示隐藏的文本,而无需对字符串进行暴力破解。(我知道php有一个仅用于加密的模块,但这是一个糟糕的版本,以防加密模块不可用。)第二:我不要求你重写这个函数或为我写一些东西,我要求的是简单的指导我做错了什么。我知道一个可能的安全漏洞是我默认使用salsa,它对空字符串全为零,但优点是这是php中可用的最长哈希,其次,哪个傻瓜会使

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 property decleration 接受数组并且不接受可以在编译过程中评估的任何其他表达式

在研究PHP中的oop时,我注意到属性声明接受数组作为值,如此处所述PHPdocumentationclassTest{public$var7=array(true,false);}我注意到文档说:Thisdeclarationmayincludeaninitialization,butthisinitializationmustbeaconstantvalue--thatis,itmustbeabletobeevaluatedatcompiletimeandmustnotdependonrun-timeinformationinordertobeevaluated.阅读后this了解

php - Phalcon UTF8 兼容吗?

我想知道Phalcon使用的关于UTF8的内部结构是什么?例如,如果我使用这样的东西echostrlen('hello');//output5但是echostrlen('汉字/漢字');//willoutputsomethinglike10strlen不兼容UTF8,因此必须使用mb_strlen以确保安全。Phalcon是否使用(内部)mb_*相关函数?如果不是,我们如何确保内部的所有内容都以UTF8方式处理以确保与所有语言的兼容性?谢谢! 最佳答案 目前,PHP是二进制安全的,这意味着您可以以透明的方式处理多字节字符串(如utf

php - 在 PHP 中使用 HTML 编号实体计算字符串的长度

我想用PHP计算字符串的长度。该字符串包含HTML实体编号,它会增加计算的字符数:破折号是–当我只希望它计为1时,它计为7。如何将html编号的实体转换为特殊字符只计算长度为1的形式?示例字符串:Goth-Trad–‘Cosmos’代码:$string=html_entity_decode('Goth-Trad–‘Cosmos’');echostrlen($string);在我寻找“20”时产生“38”。出了什么问题? 最佳答案 你可以使用这个:$html='G

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

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

php - 如何获得多字节字符的确切数量?

我试过:mb_strlen('普通话');strlen('普通话');都输出9,而实际上只有3个字符。字符计数的正确方法是什么? 最佳答案 你应该确保在第二个参数中指定编码即mb_strlen('普通话','UTF-8');参见manual 关于php-如何获得多字节字符的确切数量?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1436550/