PHP処理URLの関連関数

3378 ワード

http_build_Query URL-encode生成後の要求文字列string http_build_query( mixed $query_data [,string $numeric_prefix [,string $arg_separator[,int $enc_type=PHP_QUERY_RFC1738]]] )
  • パラメータ説明:
  • パラメータ
    説明
    query_data
    配列または属性を含むオブジェクトです.1つのquery_data配列は、単純な1次元構造であってもよいし、配列からなる配列であってもよい(他の配列を順次含んでもよい).query_dataがオブジェクトである場合、publicの属性のみが結果を加える.
    numeric_prefix
    このパラメータがベース配列に数値ダウンスケールを使用して同時に与えられている場合、このパラメータ値はベース配列の数値ダウンスケール要素の接頭辞として使用されます.これは、PHPまたは他のCGIプログラムが後でデータを復号する際に正当な変数名を取得するためである.
    arg_separator
    このパラメータを指定して使用しない限りarg_separator.outputでパラメータを区切ります.
    enc_type
    PHP_のデフォルト使用QUERY_RFC1738.enc_の場合typeはPHP_QUERY_RFC 1738では、符号化は、»RFC 1738規格およびアプリケーション/x-www-form-urlencodedメディアタイプで符号化され、スペースはプラス記号(+)に符号化される.enc_typeがPHP_QUERY_RFC 3986である場合、»RFC 3986に従って符号化され、スペースはパーセンテージ符号化(%20)される.
  • ヒント:接頭辞
  • は、1次元配列のキー名のみが追加されます.
    parse_str URLのクエリー文字列(query string)を複数の変数に解析し、現在の役割ドメインvoid parse_str(string$str[,array&$arr])に設定します.
  • パラメータ説明:
  • パラメータ
    説明
    str
    入力文字列
    arr
    2番目の変数arrが設定されている場合、変数は配列要素としてこの配列に格納され、代わりになります.
    parse_urlはURLを解析し、そのコンポーネントmixed parse_を返します.url(string $url [,int $component= -1] )
    この関数は、URLを解析し、URLに表示されるさまざまなコンポーネントを含む関連配列を返します.この関数は、指定されたURLの正当性を検証するために使用されるものではなく、以下に示す部分に分解されます.不完全なURLも受け入れられ、parse_url()は、できるだけ正確に解析しようとします.
  • パラメータ説明:
  • パラメータ
    説明
    url
    解析するURL.無効な文字が使用されます_と呼びます.
    component
    指定PHP_URL_SCHEMEPHP_URL_HOSTPHP_URL_PORTPHP_URL_USERPHP_URL_PASSPHP_URL_PATHPHP_URL_QUERYPHP_URL_FRAGMENTのいずれかがURLで指定された部分を取得するstringはPHP_として指定する以外はURL_PORT後にintegerの値を返します.残りはstringを返します.
  • 戻り値説明:
  • *重大な不合格のURLに対して、parse_url()はFALSEを返す可能性があります.componentパラメータを省略すると、関連する配列arrayが現在少なくとも1つの要素を配列に返します.配列内の可能なキーは次のとおりです.*
  • scheme-http
  • など
  • host
  • port
  • user
  • pass
  • path
  • query-疑問符?その後
  • fragment-ハッシュ記号#の後
  • componentパラメータが指定されている場合、parse_url()はstringまたはPHPとして指定された値を返します.URL_PORTでarrayではなくintegerを返します.URLに指定されたコンポーネントが存在しない場合、NULLが返されます.
  • ヒント:
  • 5.4.7プロトコル省略時のhostの認識を修復した.この関数は相対URLには使用できません.parse_url()はURIではなくURLの解析に特化しています.ただし、PHPの後方互換性に従うには例外があり、file://プロトコルでは3つの斜線(file:///...).他のいかなる協定もそうはいかない.
    サンプルコード
    1,
            'b'=>2,
            'c'=>array('c1'=>array('c1k'=>'c1v'),'c2'),
            'd'
        );
    
        $origin_str=http_build_query($arr,'_');
        print_r($origin_str);
        /*
        a=1&b=2&c%5Bc1%5D%5Bc1k%5D=c1v&c%5B0%5D=c2&_0=d
        */
    
        $str=urldecode($origin_str);
        print_r($str);
        /*
        a=1&b=2&c[c1][c1k]=c1v&c[0]=c2&_0=d
        */
    
        parse_str($str);
        print_r($a);echo "
    ";// $a print_r($b);echo "
    "; print_r($c); print_r($_0); /* 1 2 Array ( [c1] => Array ( [c1k] => c1v ) [0] => c2 ) d */ parse_str($str,$str_output); print_r($str_output); /* Array ( [a] => 1 [b] => 2 [c] => Array ( [c1] => Array ( [c1k] => c1v ) [0] => c2 ) [_0] => d ) */ ?>