【发布时间】:2009-10-05 03:03:29
【问题描述】:
您好,我需要一些帮助。
这是现有的 preg_match 代码:
preg_match("/(\/)([0-9]+)(\/?)$/", $_SERVER["REQUEST_URI"], $m);
它可以很好地检测以下 URI 字符串中的post_id:
http://www.example.com/health-and-fitness-tips/999/
我认为背景应该足够了。
我正在将 999、post_id 更改为 how-do-I-lose-10kg-in-12-weeks', thepost_title`,并且需要更改 pre_match 正则表达式以检测新字符串。
我的第一个想法是将 [a-z]- 添加到正则表达式的末尾,从而形成以下正则表达式:
"/(\/)([0-9][a-z]/-+)(\/?)$/"
可能就这么简单?如果不是,上面有什么问题?
【问题讨论】:
-
我建议首先剥离协议和域名,这样您就只剩下相对 url,然后使用explode 函数在斜杠字符上拆分字符串。这似乎比使用正则表达式更简单。
-
我认为“我正在更改 999”开头的行的标记出现了混淆。你可能有一个太多或一个太少的反引号,我想知道如果你修复它,那条线的意义是否会改变。
标签: php regex preg-match