当前位置: 首页 > 面试题库 >

检查字符串是否已序列化?

石正卿
2023-03-14
问题内容

确定字符串是否为serialize()函数结果的最佳方法是什么?

https://www.php.net/manual/zh/function.serialize


问题答案:

我会说,尝试unserialize一下;-)

引用手册:

如果传递的字符串不是不可序列化的,则返回FALSE并发出E_NOTICE。

所以,你必须检查返回值是false或不是 (有===!==,以确保不会有任何问题0null或任何等于false,我会说)

只是当心通知:您可能希望/需要使用@运算符。

例如 :

$str = 'hjkl';
$data = @unserialize($str);
if ($data !== false) {
    echo "ok";
} else {
    echo "not ok";
}

会给你:

not ok

编辑:哦,就像@Peter说的(感谢他!),如果您试图反序列化布尔型false的表示,您可能会遇到麻烦:-(

因此,检查您的序列化字符串不等于“ b:0;”可能也会有所帮助;我想这样的事情应该可以解决问题,我想:

$data = @unserialize($str);
if ($str === 'b:0;' || $data !== false) {
    echo "ok";
} else {
    echo "not ok";
}

在尝试反序列化之前测试该特殊情况将是一种优化-但是,如果您经常没有错误的序列化值,那么可能就没那么有用了。



 类似资料:
  • 问题内容: 我想检查数据框中的一列是否包含字符串。我本以为可以仅通过检查dtype来完成此操作,但事实并非如此。包含字符串的pandas系列仅具有dtype’object’,它也用于其他数据结构(如列表): 产生: 有什么方法可以检查一列是否仅包含字符串? 问题答案: 您可以使用它来查看列中的所有元素是否都是字符串 只检查是否有字符串

  • 问题内容: 我之前已经找到了这个问题的一些答案,但是对于当前的Python版本似乎已经过时了(或者至少它们对我不起作用)。 我想检查子字符串是否包含在字符串列表中。我只需要布尔结果。 我找到了这个解决方案: 我希望从这段代码中得到一个价值。如果单词是“ der”,则输出应为。 但是,结果是一个生成器函数,我找不到找到该值的方法。 任何想法? 问题答案: 您可以导入从的情况下,它是由一些其他的替代:

  • 问题内容: 我有一个isNotEmpty函数,如果字符串不为空,则返回true;如果字符串为空,则返回false。我发现如果我通过它传递一个空字符串,它将无法正常工作。 使用isNotEmpty验证字符串: 如果该字符串为空,则其他字符串将不会执行,我不明白为什么,请有人对此有所帮助。 问题答案: 实际上是简单的问题。更改: 至 可以说,您可能还想将其更改为: 因为如果您传递的是数字0以及其他一些

  • 问题内容: 如何检查字符串中是否包含字符列表,例如“ ABCDEFGH”,如何检查字符串中是否有字符列表。 问题答案: 在Java中使用正则表达式检查在Java中使用 正则表达式 例如:

  • 考虑以下键(under_score)和字段(lowerCamel): 我正在Java中寻找一种有效的方法来检查是否在中,我希望以下返回: 我的代码: 我可以用下划线替换所有小写,但我正在寻找更有效的方法。

  • 问题内容: 如果我有这样的框架 我想检查这些行中是否包含某个单词,我只需要这样做。 输出: 如果我决定列出一个清单 如何检查列表中的行是否包含某个单词? 问题答案: 该方法接受正则表达式模式: 由于支持正则表达式模式,因此您还可以嵌入标志: