1

次の URI があります。

  /belt/belts/fk/product/40P35871

そして、最後の / の後の最後のコンテンツを取得したいと思います。この場合は40P35871です。これどうやってするの?

4

8 に答える 8

5

どうexplodeですか?

$elements = explode('/', $input);
$productId = end($elements);
于 2012-11-21T12:57:09.187 に答える
5

これはまったく別の解決策です。 (そして最も簡単です!)

使用するbasename

$var = "/belt/belts/fk/product/40P35871";
echo basename($var);

出力:

40P35871
于 2012-11-21T12:57:28.553 に答える
4

そのような単純なものには正規表現は必要ありません。の使用を検討してくださいstrrchr。ドキュメントはこちら

$lastcontent = substr(strrchr($uri, "/"), 1);

$uri がパスであるというこの特殊なケースを考慮すると、最良の答えは Chtulhu によって提供されるものです。

basenameパスの最後の部分を返します。ドキュメントはこちら

$lastcontent = basename($uri);
于 2012-11-21T12:56:32.740 に答える
3

ちょうどこのような

$str = '/belt/belts/fk/product/40P35871';
$arr = explode('/', $str);
$var = array_pop($arr);
var_dump($var);

また

$var = substr($str, strrpos($str,'/') + 1);
于 2012-11-21T13:00:34.443 に答える
2

これを試して

$result = preg_replace('%(/(?:[^/]+?/)+)([^/]+)\b%', '$2', $subject);
于 2012-11-21T12:59:55.787 に答える
1

正規表現は使用しないでください。この場合、あなたは次のように行動することができます

myUrl = $_SERVER[REQUEST_URL];
$number = substr(strrpos(myUri,'/')+1);
于 2012-11-21T12:57:26.887 に答える
1

必要ありませんregex

最後のコンテンツを見つけて、次を使用して取得しsubstr()ます。

$lastcontent = substr(strrchr($uri, "/"), 1);
于 2012-11-21T12:58:00.660 に答える
1

これを使って:

echo preg_replace('/[a-z0-9]$/i', '$1', $url);

これにより、最後の位置が得られます

注:ただし、このURLのみでは、クエリ文字列がこれを役に立たなくし、これが機能するために最初に同じURLを解析する必要があります

于 2012-11-21T12:56:40.570 に答える