0

次の(さまざまな)構造のリンクがあります。

http://website.com/category/product/abc12345

カテゴリと製品名の長さは異なりますが、id (abc12345) は常に最後の「/」の後に配置され、約 6 ~ 8 文字の長さです。

次のコードでリンクを抽出しようとしました:

preg_split('/[/]/', $val, $arr);
$narr[] = end($arr);

val がリンクで、arr が配列の場合、結果を貼り付ける必要があります。narr は、後でファイルに保存する配列なので、ここではあまり重要ではありません。残念ながら、この方法で試してみると、結果は常に空です。

4

3 に答える 3

4

私は行きます:

$urlParts = parse_url($myUrl);
$parts = explode('/', $urlParts['path']);
$productId = array_pop($parts);

そうすれば、アンカー (#content) やクエリ パラメータ (?id=123) に問題はありません。

于 2013-03-15T15:33:22.037 に答える
1

以下の条件下で:

  • 製品 (abc12345) は常に URL の末尾にあります
  • クエリ文字列/パラメータなし

次の正規表現を試してください。

preg_match('/\/([\w]+)\/?$/', $val, $arr);
$product = $arr[1];
于 2013-03-15T15:32:45.143 に答える
1

私は使用しますpreg_match

if (preg_match('#.*/(.*)#', $val, $match)) {
    $result = $match[1];
}

strrposandのような単純なものを使用することもできますsubstr

$result = substr($val, strrpos($val, '/') + 1);
于 2013-03-15T15:35:16.573 に答える