1

URL の一部を取得して埋め込みコードを作成しようとしています。次の URL 構造があります。

http://www.mtv.com/videos/foster-the-people/761507/houdini.jhtml#id=1518072&vid=761507

preg_matchURL をいくつかの部分に分割するために使用する必要があります。理想的には、URL の構造をテストし、URL から数値を取得したいと考えています。最終的には、 の後に次の形式の配列が必要preg_matchです。

Array (
    0 => 761507
    1 => 1518072
    2 => 761507
)

"foster-the-people" と "houdini" は、文字、数字、および "-" を含む動的な要素であり、URL ごとに変化することに注意してください。

助けてくれてありがとう!

4

2 に答える 2

2

これを試してください:(更新済み)

http:\/\/www\.mtv\.com\/videos\/.*?\/([0-9]+)\/.*?id=([0-9]+)&vid=([0-9]+)

デモ :

http://regexr.com?30qo4


コード :

<?php
    $subject = "http://www.mtv.com/videos/foster-the-people/761507/houdini.jhtml#id=1518072&vid=761507";
    $pattern = '/http:\/\/www\.mtv\.com\/videos\/.*?\/([0-9]+)\/.*?id=([0-9]+)&vid=([0-9]+)/';
    preg_match($pattern, $subject, $matches);
    print_r($matches);

?>

出力:

Array
(
    [0] => http://www.mtv.com/videos/foster-the-people/761507/houdini.jhtml#id=1518072&vid=761507
    [1] => 761507
    [2] => 1518072
    [3] => 761507
)

ヒント:必要な要素は$matches[1]$matches[2]$matches[3]

于 2012-05-01T20:06:23.550 に答える
0

最初にparse_urlを使用してURLを個々のコンポーネントに分割し、必要に応じてpreg_matchを使用して個々のサブアイテムを取得することをお勧めします。ここから$urlarr['query']parse_url$urlarrの戻り値です。

于 2012-05-01T20:15:10.347 に答える