PHP if / switch连接*

时间:2011-05-14 17:59:51

标签: php if-statement concatenation

我想知道是否有人知道是否有办法将*(all)连接到if(或switch)语句中的字符串。例如,如果你有一个名为/ hello / there的URL和/ hello / whats-up ...无论如何你可以得到如下内容:

if ($url="/hello/" . *) {
sayHello();
} else { sayGoodebye(); }

等...我认为这不是正确的语法,但如果有人知道我在说什么,那将是一个很大的帮助。

谢谢(:

3 个答案:

答案 0 :(得分:3)

$match = "/hello/";
if (substr($url, 0, strlen($match)) === $match) {
   sayHello();
} else {
   sayGoodbye();
}

如果您不需要使用正则表达式...

答案 1 :(得分:0)

您还可以在$ url字符串中检查$ match的位置:

$match = "/hello/";

if (strpos($url, $match) === 0) {
   sayHello();
} else {
   sayGoodbye();
}

答案 2 :(得分:-1)

使用正则表达式: http://www.regular-expressions.info/php.html

所以它会是这样的:

if (ereg("/hello/", $url)) {
sayHello();
} else { sayGoodebye(); }

虽然它可以匹配任何地方的“/ hello /”,但是如果你只想匹配以“/ hello /”开头的字符串,你必须修改表达式。关键是,如果你从未使用正则表达式,那么投入一些时间是件好事。它最终会得到回报,因为在某些时候你需要这种技能。

编辑:我将把原始代码作为参考,但请参阅phihag的注释,并使用preg_match和preg_match兼容的表达式而不是ereg和我使用的表达式。