0

私は次のタイプのURLを持っています

http://domain.com/1/index.php

http://domain.com/2/index.php

http://domain.com/3/index.php

http://domain.com/4/index.php

URLから番号のみを取得する必要があります。

例えば、

http://domain.com/1/index.phpにアクセスすると、1を返す必要があります。

4

4 に答える 4

4

をご覧くださいparse_url

$url = parse_url('http://domain.com/1/index.php');

編集:$_SERVER['REQUEST_URI']現在のURLを取得するには、を見てください。の代わりにそれを使用してください$url['path']

次に、で分割$url['path']して/、最初の要素を取得できます。

// use trim to remove the starting slash in 'path'
$path = explode('/', trim($url['path'], '/')); 

$id = $path[0]; // 1
于 2012-05-04T16:57:00.707 に答える
2

提供された情報を考えると、これはあなたが求めることを実行します...それは私が堅牢なソリューションと呼ぶものではありません:

$url = $_SERVER['PATH_INFO']; // e.g.: "http://domain.com/1/index.php";
$pieces = explode("/", $url);
$num = $pieces[3];
于 2012-05-04T16:57:18.423 に答える
1
  • サーバーパスをスラッシュで分割します(explode('/', $_SERVER['REQUEST_PATH']);
  • 最初から空のエントリを削除します
  • 最初の要素を取る
  • 整数(intval()、または単純な(int)キャスト)であることを確認してください。

このために正規表現を使用する必要はありません。

于 2012-05-04T16:57:00.230 に答える
0

preg_match()を使用してドメインを照合し、最初のセグメントを取得します。

$domain = http://www.domain.com/1/test.html

preg_match("/http:\/\/.*\/(.*)\/.*/", "http://www.domain.com/1/test.html");

echo $matches[1];  // returns the number 1 in this example.
于 2012-05-04T17:09:36.530 に答える