我如何检查输入数据中的字符串出现

时间:2015-08-07 05:40:09

标签: php string

我想检查用户输入数据中特定字符串的出现。 我该怎么做。 这是我的代码:

    <?php
    $data = $_POST["data"];

    if (strcmp("123",$data))
       echo "string matches";
    else if (strcmp("234",$data))
       echo "string 2 matches";
    else 
       echo"string does not match";
?>

3 个答案:

答案 0 :(得分:2)

如果您想查看$_POST['data'] 是否包含您要搜索的字符串,请执行以下操作:

<?php
    $data = $_POST["data"];

    if (strpos($data, "123") !== false)
       echo "data contains 123";
    else if (strpos($data, "234") !== false)
       echo "data contains 234";
    else 
       echo "data does not contain either";

但是,如果你想检查完全匹配,你只需要:

<?php
    //...

    if ($data == "123")
       echo "data is equal 123";

查看strpos()的{​​{3}}了解详情。对于不区分大小写的搜索,您可以使用stripos()i代替“不敏感”)。

检查与false的严格平等很重要。如果匹配从字符串中的第一个字符开始,它将返回0,表示匹配。您需要!==才能将0false区分开来。

答案 1 :(得分:1)

试试这个,

    <?php
        //$data = isset($_POST["data"])?$_POST["data"]:'';
        $data = "12356789";
        if (strpos($data, "123")!== false){
           echo "string matches";
        }
        else if (strpos($data, "234")!== false){
           echo "string 2 matches";
        } else {
           echo"string does not match";
        }
?>

答案 2 :(得分:0)

试试这个:

<?php
$data = $_POST["data"];

if (strcmp("123",$data) === 0)
   echo "string matches";
else if (strcmp("234",$data))
   echo "string 2 matches";
else 
   echo"string does not match";
?>