1

プルする文字列:http:\/\/c.ypcdn.com\/2\/c\/rtd?vrid=357c99c36bd7ed631eda2e43fc9e30f8&rid=283d465f-f63b-4b0d-90b0-be6c12ed7617&ptid=943aw4l8qj&ypid=11720135&lid=194823099&tl=6&lsrc=SP&dest=http%3A%2F%2FCleanation.com

以前に使用した正規表現:www\..*?\.\w{2,5}

ただし、上記の正規表現は、「www」がある場合にのみ URL を取得します。初期化。「www」を外すと。正規表現のうち、c.ypcdn.com を取得するだけです。文字列の末尾にある Cleanation.com を取得したいと考えています。

「www」を持たない URL を取得できるように、動的にする必要があります。そのURLから。

4

2 に答える 2

3

parse_url()を使用してから、返されたインデックスでparse_str( )を使用して取得しないのはなぜですか?query

編集: 例:

$url= "http://c.ypcdn.com/2/c/rtd?vrid=357c99c36bd7ed631eda2e43fc9e30f8&rid=283d465f-f63b-4b0d-90b0-be6c12ed7617&ptid=943aw4l8qj&ypid=11720135&lid=194823099&tl=6&lsrc=SP&dest=http%3A%2F%2FCleanation.com";
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query,$params);
echo $params['dest'];
于 2012-06-11T01:03:21.303 に答える
0

これが常にdestパラメーターである場合は、次のような方法で取得できます。

"dest=https?%3A%2F%2F([^?&]+?)"

最後のパラメーターを離れている場合は、次の方法で取得できます。

"dest=https?%3A%2F%2F(.+)$"
于 2012-06-11T01:08:40.040 に答える