Php 如何检测字符串中是否存在给定的数字
我需要验证字符串中是否存在数字。这是我使用的代码:Php 如何检测字符串中是否存在给定的数字,php,string,Php,String,我需要验证字符串中是否存在数字。这是我使用的代码: $line='1'; $a=1; echo strpos($line, $a); if (strpos($line, 1) !== false) { echo 'ok'; } 我也试过: $line='1'; $a=1; echo strpos($line, $a); if (strpos($line, 1+'0') !== false) { echo 'ok'; } 但是,无论哪种情况,它都不起作用。也许您可以使用php函
$line='1';
$a=1;
echo strpos($line, $a);
if (strpos($line, 1) !== false) {
echo 'ok';
}
我也试过:
$line='1';
$a=1;
echo strpos($line, $a);
if (strpos($line, 1+'0') !== false) {
echo 'ok';
}
但是,无论哪种情况,它都不起作用。也许您可以使用php函数,检查数字是否在
ASCII
的范围内。也许您可以使用php函数,检查数字是否在ASCII
的范围内。来自:
如果指针不是字符串,则将其转换为整数并作为字符的序数值应用
由于您将1
作为指针传递
,因此它将被转换为具有该代码的字符,即Control-A
。所以它不是在字符串中查找数字1
。如果要查找字符1
,必须使用字符串,而不是整数:
$a = '1';
echo strpos($line, $a);
if(strpos($line, '1') !== false) {
echo 'ok';
}
如果最初给您一个数字,您可以使用strval()
将其转换为字符串:
从:
如果指针不是字符串,则将其转换为整数并作为字符的序数值应用
由于您将1
作为指针传递
,因此它将被转换为具有该代码的字符,即Control-A
。所以它不是在字符串中查找数字1
。如果要查找字符1
,必须使用字符串,而不是整数:
$a = '1';
echo strpos($line, $a);
if(strpos($line, '1') !== false) {
echo 'ok';
}
如果最初给您一个数字,您可以使用strval()
将其转换为字符串:
strpos在字符串上工作。如果你这样做
$line='1234';
$a='1';
echo strpos($line, '1');
if(strpos($line, '1') !== false){
echo 'ok';
}
或
它将在字符串上工作。如果你这样做
$line='1234';
$a='1';
echo strpos($line, '1');
if(strpos($line, '1') !== false){
echo 'ok';
}
或
它将工作strpos接受三个参数,其中第三个参数是可选的,即
strpos(字符串、查找、开始)
。此处,find应为字符串类型。如果它不是字符串类型,则将其转换为整数并作为字符的序数值应用。表示它接受其ascii值字符。例如
$string="ABC";
$find=65;
$pos=strpos($string,$find);
echo $pos
Output:
0
i、 e字符“A”的位置,因为65是“A”字符的ASCII值。
因此,当您将整数值1传递给strpos
函数时,它将转换为某种ASCII字符,在您的情况下,它将返回false。
strpos
函数可能返回布尔值FALSE,但也可能返回计算结果为FALSE的非布尔值。因此,使用==
操作符测试此函数的返回值
要使代码正常工作,必须将整数类型转换为字符串类型。strpos接受三个参数,其中第三个参数是可选的,即
strpos(字符串、查找、开始)
。此处,find应为字符串类型。如果它不是字符串类型,则将其转换为整数并作为字符的序数值应用。表示它接受其ascii值字符。例如
$string="ABC";
$find=65;
$pos=strpos($string,$find);
echo $pos
Output:
0
i、 e字符“A”的位置,因为65是“A”字符的ASCII值。
因此,当您将整数值1传递给strpos
函数时,它将转换为某种ASCII字符,在您的情况下,它将返回false。
strpos
函数可能返回布尔值FALSE,但也可能返回计算结果为FALSE的非布尔值。因此,使用==
操作符测试此函数的返回值
要使代码正常工作,您必须将整数类型转换为字符串类型。我肯定不知道这两种方法有什么不同。请尝试
if(strpos($line,'1')!==false){
。此处:(它不显示“ok”部分,因此您可以看到差异。)很抱歉,我忘记了第二个ifI中的“0”必须缺少这两种方式的不同之处。请尝试if(strpos($line,'1')!==false){
。此处:(它不显示“ok”部分,因此您可以看到差异。)很抱歉,我忘记了第二个if中的“0”