Dizideki url parametreleri nasıl ayarlanır?

2 Cevap php

Hey benim web Açık kimlik doğrulaması kullanıyorum ve kimlik doğrulaması sonra ben OpenID sağlayıcıları yani yahoo ve google bir url alıyorum beyler

http://www.mysite.com/openid-login.php?
openid.identity=https://me.yahoo.com/a/1234567&
openid.ax.value.nickname=john&
openid.ax.value.email=john@yahoo.co.in&


http://www.mysite.com/openid-login.php?
openid.identity=https://www.google.com/accounts/o8/1234567&
openid.ext1.value.email=kevin@gmail.com&
openid.ext1.value.country=IN

Ben URL'lerin netlik için biraz kesilmiş var. Ben bir dizide (varsa), adı (çıkışlar ise), kimlik (OpenID ina) e-posta kurmak ve dönüş değerleri her ikisi için tek bir işlev oluşturmak istiyorum. örn.

function userdetails(array_get){
......
......
return $userdetails;
}
$userdetails =userdetails($_GET);

E-posta ve kimlik benzer var ve eğer $ userdetails ['takma'] bana takma verecek. Teşekkürler

2 Cevap

Ben bu işlevi oluşturmak ne de bunun için kredi almadı. Bu Basit OpenID kütüphanesinden çekti ve modifiye edildi. Biri bir bağlantı varsa ben orijinal kaynağına erişimi yok gibi yorumlarda bunu yayınlayın lütfen.

/**
 * Method to filter through $_GET array for requested user information.
 * Will return an array of trimmed userinfo.
 */
public function filterUserInfo($arr_get) {
    $valid_ax_types = array('nickname' => 1, 'email' => 1, 'fullname' => 1, 'dob' => 1, 'gender' => 1, 'postcode' => 1, 'country' => 1, 'language' => 1, 'timezone' => 1, 'firstname' => 1, 'lastname' => 1);
    $userinfo = array();
    foreach ($arr_get as $key => $value) {
        // trim the key
        $trimmed_key = substr($key, strrpos($key, "_") + 1);

        // check for valid openid_ext1 values
        if (stristr($key, 'openid_ext1_value') && isset($value[1])) {
            $userinfo[$trimmed_key] = $value;
        }

        // check for valid openid_ax values
        if (stristr($key, 'openid_ax_value') && isset($value[1])) {
            $userinfo[$trimmed_key] = $value;
        }

        // check for valid sreg_ values
        else if (stristr($key, 'sreg_') && array_key_exists($trimmed_key, $arr_ax_types)) {
            $userinfo[$trimmed_key] = $value;
        }
    }
    return $userinfo;
}

I thought by "getting a url" you meant actually a URL. Accept the answer below me. :)

parse_url()
parse_str()

function userdetails( $url, $keep = array( 'email', 'nickname', 'identity' ) ) {
    $array = parse_str( parse_url( $url, PHP_URL_QUERY ) );

    $return = array();
    foreach ( $keep as $key ) {
        if ( isset( $array[ $key ] ) ) {
            $return[ $key ] = $array[$key];
        }
    }

    return $return;
}