我可以在这里使用preg_match而不是弃用的eregi,如果是这样的话怎么样?

时间:2011-02-15 02:03:57

标签: php

当前代码

eregi("(.*)/index.php$", $scriptName, $regs)

沿着

的思路思考
preg_match("(.*)/index.php$", $scriptName, $regs)

但不确定$ regs位是什么以及我需要在括号中更改它以使其工作?

2 个答案:

答案 0 :(得分:1)

preg_match_all("/(.*)\/index.php$/", $scriptName, $regs)

请注意,您可以在PHP中将大多数字符用作正则表达式分隔符,例如~

  

但不确定$ regs位是什么以及我需要在括号中更改它以使其工作?

$regs将是比赛。 preg_match_all()具有此行为,第三个参数。它通过引用传递,因此如果成功匹配,您只需开始订阅$regs即可。 [0]将包含整个匹配,而[1]将在字符串末尾处继续/index.php部分。

至于方括号中的变化,我总是称这些括号,所以我会认为这就是你的意思(对不起挑剔)。你是指函数括号内的参数,还是正则表达式本身的匹配组?无论哪种方式,只需使用上面的代码:)

答案 1 :(得分:0)

http://php.net/manual/en/function.eregi.php

警告

自PHP 5.3.0起,此功能已被弃用。非常不鼓励依赖此功能