1

私は、この関数をより包括的にして、より多くの URL を解析しようとしていました。

現在私が持っている機能はこれです

function _pagepeeker_format_url($url = FALSE) {
if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
return FALSE;
}

// try to parse the url
$parsed_url = parse_url($url);
if (!empty($parsed_url)) {
$host = (!empty($parsed_url['host'])) ? $parsed_url['host'] : '';
$port = (!empty($parsed_url['port'])) ? ':' . $parsed_url['port'] : '';
$path = (!empty($parsed_url['path'])) ? $parsed_url['path'] : '';
$query = (!empty($parsed_url['query'])) ? '?' . $parsed_url['query'] : '';
$fragment = (!empty($parsed_url['fragment'])) ? '#' . $parsed_url['fragment'] : '';
return $host . $port . $path . $query . $fragment;

}

return FALSE;
}  

この関数は、次のような URL を返します

http://www.google.com/url?sa=X&q=http://www.beautyjunkiesunite.com/WP/2012/05/30/whats-new-anastasia-beverly-hills-lash-genius/&ct= ga&cad=CAcQARgAIAEoATAAOABA3t-Y_gRIAlgBYgVlbi1VUw&cd=F7w9TwL-6ao&usg=AFQjCNG2rbJCENvRR2_k6pL9RntjP66Rvg

これに

http://www.google.com/url

この配列がURLの一部ではなくURL全体を返すようにする方法はありますか?

私は parse_url php ページを見て、スタックオーバーフローを助けて検索し、ここで次のステップを把握するのに少し苦労していることをいくつか見つけました。

何らかの形で明確にできるかどうか教えてください

ありがとう!!

4

2 に答える 2

1
return $url;

または、何か不足していますか?

于 2012-05-31T17:35:34.483 に答える
0

これは私が使用するものです(parse_urlなどを取り除きます):

function get_full_url() {
    // check SSL
    $ssl = "";
    if ((isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"]=="on") || (isset($_SERVER["SERVER_PORT"]) && $_SERVER["SERVER_PORT"]=="443")) 
      { $ssl = "s"; }
    $serverport = ($_SERVER["SERVER_PORT"]!="80"?":".$_SERVER["SERVER_PORT"]:"");
    return "http".$ssl."://".$_SERVER["SERVER_NAME"].$serverport.$_SERVER["REQUEST_URI"];
}

get_full_url();を呼び出すだけです。スクリプトのどこからでも。

于 2012-05-31T17:36:25.570 に答える