匹配值的问题

时间:2011-05-16 12:26:22

标签: php regex

我想让strpos工作。

如果$monthly_cost中包含$phone$string,则返回true。

<?php
$monthly_cost = 25;
$phone = "iPhone";

$string = "iPhone £25 24m Upgrade";

if (strpos($string, $phone) && strpos($string, $monthly_cost)) {
  echo "found";
}
?>

或者使用正则表达式更好吗?

3 个答案:

答案 0 :(得分:4)

if (strpos($string, $phone) !== false && 
    strpos($string, $monthly_cost) !== false) {
  echo "found";
}

现在完全没问题。

答案 1 :(得分:1)

在这种情况下,您可以使用strpos,但请记住您必须使用:

if (strpos($string, $phone)!==false && strpos($string, $monthly_cost)!==false) {
  echo "found";
}

因为如果它返回0,则条件失败。无论如何使用strpos你只能检查这些值是否在字符串中但是你不能检查它们是否是完整的单词所以如果你搜索“25”并且字符串包含“256”strpos将返回true,所以如果你需要要进行这种类型的验证,您必须使用正则表达式。

答案 2 :(得分:0)

尝试

if (strpos($string, $phone) !== false && strpos($string, $monthly_cost) !== false) {
如果您要搜索的字符串位于0

strpos可能会返回0