1

ウェブサイトの URL の一部を取得しようとしています

この状況では:

http://mywebsite/filexx/yyyyy/abaete/374    

$url2 = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

if(preg_match("/\/(\d+)$/",$url2,$matches))
{
    $meuid = $matches[1];
}

それは機能しますが、2つの異なる状況を考えてみましょう:

http://mywebsite/filexx/yyyyy/abaete/374/?p=1
// i'm try to get the 374 (ID)

http://mywebsite/filexx/yyyyy/374/?p=1
// here the same

したがって、整数 ( 374 ) またはクエリの前の部分 374/?p=1 の場合、最後の部分を取得したいと考えています。だから374が欲しい。

ありがとう。

4

3 に答える 3

1

私は自分のコメントを答えにします:

<?php
    $string = 'http://mywebsite/filexx/yyyyy/abaete/374/?g=123';
    $matches = array();

    preg_match_all('/.*?\/(\d+)\/?/s', $string, $matches);

    echo '<pre>';
    print_r($matches);
    echo '</pre>';
?>

/?getval1=1&getval2=2&etc=etc も無視されます

出力

Array
(
    [0] => Array
        (
            [0] => http://mywebsite/filexx/yyyyy/abaete/374/
        )

    [1] => Array
        (
            [0] => 374
        )

)
于 2013-03-22T14:45:49.443 に答える
0
$url = 'http://mywebsite/filexx/yyyyy/abaete/374/?p=1';

$explodedUrl = explode('/',$url);
$countArray = count($explodedUrl);
if(strpos($explodedUrl[$countArray-1],'?') === FALSE){
    $yourId = $explodedUrl[$countArray-1];
} else {
    $yourId = $explodedUrl[$countArray-2];
}

$yourIdあなたのIDが含まれています

于 2013-03-22T14:42:04.533 に答える
0
http://mywebsite/filexx/yyyyy/abaete/374    

$url2 = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

if(preg_match('~([0-9]+)\/\?p=~', $url2, $matches))
{
    $meuid = $matches[1];
}

これは /?p= の前の数字を取得します。

于 2013-03-22T14:46:09.630 に答える