-1

このグーグルアラートリダイレクトから内部URLを解析するために正規表現を決定しようとしています

http://www.google.com/url?sa=X&q=http://weheartit.com/entry/29409069&ct=ga&cad=CAcQARgAIAEoATAAOABAo5aK_gRIAlgBYgVlbi1VUw&cd=jRWL16jvo8k&usg=AFQjCNGbJMqWtbCxpcJdu4PGD6RToU6NTw

私がする必要があるのは、最初の部分を削除することです

http://www.google.com/url?sa=X&q=

そして、私はまた、

&ct=ga&cad=CAcQARgAIAEoATAAOABAo5aK_gRIAlgBYgVlbi1VUw&cd=jRWL16jvo8k&usg=AFQjCNGbJMqWtbCxpcJdu4PGD6RToU6NTw

だから私が終わるURLは

http://weheartit.com/entry/29409069

助けてくれてありがとう、この更新をしたかっただけです。これはdrupalのリンクモジュールの問題であり、修正されました

4

2 に答える 2

1

URL を手動でバラバラにしたい場合は、次のことができます

$ cat parseurl.php 
#!/usr/local/bin/php
<?php

$url="http://www.google.com/url?sa=X&q=http://weheartit.com/entry/29409069&ct=ga&cad=CAcQARgAIAEoATAAOABAo5aK_gRIAlgBYgVlbi1VUw&cd=jRWL16jvo8k&usg=AFQjCNGbJMqWtbCxpcJdu4PGD6RToU6NTw";

# Parts of this section could be replaced with parse_url()
$junk = explode("?", $url);
$parts = explode("&", $junk[1]);
$gvar = array();
foreach ($parts as $thisone) {
  $junk = explode("=", $thisone);
  $gvar[$junk[0]]=$junk[1];
}

print_r($gvar);

printf("Embedded URL: %s\n", $gvar["q"]);

$ ./parseurl.php 
Array
(
    [sa] => X
    [q] => http://weheartit.com/entry/29409069
    [ct] => ga
    [cad] => CAcQARgAIAEoATAAOABAo5aK_gRIAlgBYgVlbi1VUw
    [cd] => jRWL16jvo8k
    [usg] => AFQjCNGbJMqWtbCxpcJdu4PGD6RToU6NTw
)
Embedded URL: http://weheartit.com/entry/29409069
$ 

parse_url() と parse_str でこれを行うには、次のようなものを使用できます。

<?php

$url="http://www.google.com/url?sa=X&q=http://weheartit.com/entry/29409069&ct=ga&cad=CAcQARgAIAEoATAAOABAo5aK_gRIAlgBYgVlbi1VUw&cd=jRWL16jvo8k&usg=AFQjCNGbJMqWtbCxpcJdu4PGD6RToU6NTw";

parse_str( parse_url($url, PHP_URL_QUERY), $gvar );
printf("Embedded URL: %s\n", $gvar['q']);

これは間違いなく簡単な方法のように思えますが、最初のバージョンを残しておき、「ボンネットの下で」何が起こっているか (可能性が高い) を確認できるようにします。:-)

于 2012-05-31T02:08:34.117 に答える