如果该字符串以@开头,我正在尝试从字符串中过滤一个数字。 这就是我认为可以做到的伎俩,但它只返回一个空白页面。
(由于我是PHP的新手,可能包含很多错误。)
<?php
$String = "@1234 Hello this is a message.";
$StringLength = 1;
Echo "Filtering the number after the @ out of " .$String;
If (substr($String , 0, 1)="@"){ //If string starts with @
While (is_int(substr($String,1,$StringLength))){ //Check if the X length string after @ is a number.
$StringLength=$StringLength+1; //If it was a number, up StringLength by one.
}
If ($StringLength >= 2){ //If the number is only 1 character long StringLength will be 2, loop completed once.
$Number = substr($String,1,$StringLength-1);
Echo $Number;
}
Else{ //The string started with @ but the While has never run because it was false.
Echo "The @ isn't followed by a number.";
}
Else{ //If string doesn't start with @
Echo "String doesn't start with @.";
}
?>
我的剧本出了什么问题?
提前致谢!
答案 0 :(得分:3)
if(substr($String , 0, 1)=="@")
// ^^ 2 equal signs for equality comparison.
顺便说一句,你的函数可以用regex(example)编写。要获得初始字符,请使用$string[0]
。
if (preg_match('/^@(\\d+)/', $string, $results)) {
echo $results[1];
} else {
if ($string[0] != '@')
echo "String doesn't start with @.";
else
echo "The @ isn't followed by a number.";
}