0

次の URI があります。

/host/segment1[?parm1=value1&param2=value2]/segment2/segment3[?parm1=value1&param2=value2]

ご覧のとおり、次のように角括弧内のコンテンツを省略したいと思います。

/host/segment1/segment2/segment3

編集:角括弧は、省略したいコンテンツの例にすぎません。実際には、セグメントには表示されません。実際の例は次のようになります。

/host/segment1?parm1=value1&param2=value2/segment2/segment3?parm1=value1&param2=value2

正規表現でこれを達成することは可能ですか??

4

1 に答える 1

3

あなたはこれでそれを行います:

$result = preg_replace('~\?[^/]++~', '', $uri);

詳細:

\?       question mark
[^/]++  all characters that are not a slash one or more times

~        used to delimite the regular expression
于 2013-05-16T07:19:44.297 に答える