如何识别或检测PHP中的字符?

时间:2013-07-20 18:32:50

标签: php

我有一个连接到网络服务的网站,我需要识别我的代码中收到的字符。

例如,我收到这样的消息:

$str = "Hello Europe";
or :
$str = "4 times !";
or :
$str = "452231";
or :
$str= "*Majid SH";
or ...

我希望我的代码能够理解我的消息所依据的字符,并且该函数对应于一个特殊字符。

例如,如果它是由字符串启动的,请执行函数num1,或者如果它是由'。'启动的。 [dot],执行功能num2

感谢您帮助我。

4 个答案:

答案 0 :(得分:1)

您可以按如下方式使用substr()

<强>代码:

$char1 = substr($str, 0, 1); //getting first character

if(is_numeric($char1){
    //execute num1()
    num1();
}
elseif ($char1 == '.') {
    //execute num1()
    num2();
}

答案 1 :(得分:0)

你应该使用switch如果你想知道角色是否是特定的东西,比如逗号或句号。还要明白,字符串可以简单地被认为是Char数组,因此您只需调用$str[0]即可获得第一个字符(请参阅here。)

switch ($str[0]) {
   case ",":
      num1();
      break;
   case ".": 
      num2();
      break;
}

您可以继续制作不同的案例来处理不同的情况。只要确保在每个案例之间包含休息时间。

如果你想检查某些字符串是否属于字符串,我认为有is_string但是为此你可能需要使用substr其他人推荐的$str[0],因为{{1}}我相信返回一个char而不是一个字符串,因此它不会验证。 switch语句只是检查参数是否与使用松散比较的情况相同。如果您想要更高级的检查,您可能需要使用自己的if语句来检查甚至正则表达式。希望这会有所帮助。

答案 2 :(得分:0)

我会使用strpos()

<?php
$StringFromService;
$str = "Hello Europe";
$Search = strpos($StringFromService;, $str);

if ($Search === true) {
    // run function
} 
?>

答案 3 :(得分:-1)

$str = 'value'; // value
$firstChar = substr($str, 0, 1);

if (is_numeric($firstChar)) {
    // do something numeric'
} else if ($firstChar === '.') {
    // do something dot'
} else {
    // do something string'
}