2

WordPress でギャラリーを作成しています。URL の特定の部分を取得して、div の ID にエコーしようとしています。

これは私の URL です:

http://www.url.com/gallery/truck-gallery-1

常に数字になるギャラリーのIDを分離したい(この場合は1)。それから、おそらく関数の形で、どこかに印刷する方法が欲しいです。

4

3 に答える 3

2

を使ったほうがいい$_SERVER['REQUEST_URI']です。これは URL の最後の文字列であるため、次の関数を使用できます。

function getIdFromUrl($url) {
    return str_replace('/', '', array_pop(explode('-', $url)));
}

-@Kristian のソリューションは 0 ~ 9 の数字のみを返しますが、ID が記号と最後の要素で区切られている限り、この関数は任意の長さの ID を返します。

だから、あなたが電話するとき

 echo getIdFromUrl($_SERVER['REQUEST_URI']);

あなたの場合、それはエコーします1

于 2011-06-27T23:07:30.970 に答える
1

IDが常に同じ桁数になるとは限らない場合(9より大きいIDがある場合)preg_match()、最後の「-」文字の前のすべてを削除するために文字列関数を使用するなどの堅牢なものが必要になります。私はおそらくします:

<?php
$parts = parse_url($_SERVER['REQUEST_URI']);
if (preg_match("/truck-gallery-(\d+)/", $parts['path'], $match)) {
    $id = $match[1];
} else {
    // no ID found!  Error handling or recovery here.
}
?>
于 2011-06-27T23:47:57.240 に答える
0

$_SERVER['REQUEST_URI'] 変数を使用してパスを取得します (これは、 http://www.yoursite.comのような値を返すホスト変数とは異なることに注意してください)。

次に、それを文字列に分割し、最後の文字を返します。

$path = $_SERVER['REQUEST_URI'];
$ID   = $path[strlen($path)-1];

もちろん、他のタイプの文字列操作を行って、文字列の最後の文字を取得することもできます。しかし、これは機能します。

于 2011-06-27T22:40:06.043 に答える