我想检查PHP中的数字是否是正确的二进制文件.到目前为止,我已经添加了这个以检查是否可以通过8来设计:
if(strlen($binary) % 8 == 0){
return true;
} else {
return false;
}
Run Code Online (Sandbox Code Playgroud)
它有效,但它显然允许放入其他数字,例如22229999.
我可以使用什么方法来确保字符串中只有1和0?例如10001001.不知道该怎么做.
这可能比启动正则表达式引擎更快:
if (strspn ( $subject , '01') == strlen($subject)) {
echo 'It\'s binary!';
} else {
echo 'Not binary!';
}
Run Code Online (Sandbox Code Playgroud)
如果你只是寻找简单的字符或想要计算它们,正则表达式通常很慢,而一个或两个内置的字符串函数可以更快地完成工作.也许这在这里适用,也许不适用.
在评论中听到一些评论之后,这可能不起作用,这是一个测试用例:
<?php
$strings = array('10001001', '22229999', '40004000');
foreach ( $strings as $string )
{
if ( strspn( $string, '01') == strlen( $string ) ) {
echo $string . ' is binary!' . "\n";
} else {
echo $string . ' is NOT binary!' . "\n";
}
}
Run Code Online (Sandbox Code Playgroud)
它完成了这项工作.
| 归档时间: |
|
| 查看次数: |
1398 次 |
| 最近记录: |