是否有任何函数可以查找 filter_var() 函数返回的字符串的实际长度?
Is there any function to find the Actual length of a string returned by filter_var() function?
我正在尝试使用 strlen() 和 mb_str() 函数查找由 filter_var() 函数编辑的字符串 return 的实际长度。
代码:
<?php
$name = "Carl O'Johnson";
echo "The actual length of the string: " . strlen($name) . "<br>";
$name = filter_var($name, FILTER_SANITIZE_STRING);
echo "The length of the string using strlen() after filter_var() function: " . strlen($name) . "<br>";
echo "The length of the string using mb_strlen() after filter_var() function: " . mb_strlen($name) . "<br>";
?>
输出:
字符串的实际长度:14
在 filter_var() 函数之后使用 strlen() 的字符串长度:18
filter_var() 函数后使用 mb_strlen() 得到的字符串长度:18
filter_var 函数将 ' 编码为 #39;。哪个函数 return 字符串的实际长度 return 由 filter_var() 函数编辑?
您可以通过设置 FILTER_FLAG_NO_ENCODE_QUOTES
选项在清理字符串时单独保留引号(如果您不介意的话):
$name = filter_var($name, FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
$length = mb_strlen($name); // 14
或者您可以在计算长度之前转换生成的 HTML 实体,利用 html_entity_decode
并传递 ENT_QUOTES
标志:
$name = filter_var($name, FILTER_SANITIZE_STRING);
$length = mb_strlen(html_entity_decode($name, ENT_QUOTES, 'UTF-8')); // 14
请注意,在这种情况下,strlen
会产生相同的输出。
我正在尝试使用 strlen() 和 mb_str() 函数查找由 filter_var() 函数编辑的字符串 return 的实际长度。
代码:
<?php
$name = "Carl O'Johnson";
echo "The actual length of the string: " . strlen($name) . "<br>";
$name = filter_var($name, FILTER_SANITIZE_STRING);
echo "The length of the string using strlen() after filter_var() function: " . strlen($name) . "<br>";
echo "The length of the string using mb_strlen() after filter_var() function: " . mb_strlen($name) . "<br>";
?>
输出:
字符串的实际长度:14 在 filter_var() 函数之后使用 strlen() 的字符串长度:18 filter_var() 函数后使用 mb_strlen() 得到的字符串长度:18
filter_var 函数将 ' 编码为 #39;。哪个函数 return 字符串的实际长度 return 由 filter_var() 函数编辑?
您可以通过设置 FILTER_FLAG_NO_ENCODE_QUOTES
选项在清理字符串时单独保留引号(如果您不介意的话):
$name = filter_var($name, FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
$length = mb_strlen($name); // 14
或者您可以在计算长度之前转换生成的 HTML 实体,利用 html_entity_decode
并传递 ENT_QUOTES
标志:
$name = filter_var($name, FILTER_SANITIZE_STRING);
$length = mb_strlen(html_entity_decode($name, ENT_QUOTES, 'UTF-8')); // 14
请注意,在这种情况下,strlen
会产生相同的输出。