>  기사  >  백엔드 개발  >  http_build_query,parse_url,parse_str을 사용하여 PHP를 통해 URL을 생성하고 구문 분석하는 방법

http_build_query,parse_url,parse_str을 사용하여 PHP를 통해 URL을 생성하고 구문 분석하는 방법

jacklove
jacklove원래의
2018-06-09 10:07:401638검색

1.http_build_query

http_build_query는 urlencode 다음에 요청 문자열을 생성할 수 있습니다.

string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )

매개변수:
query_data
는 배열이거나 속성을 포함하는 객체일 수 있습니다.

query_data 배열은 단순한 1차원 구조이거나 배열로 구성된 배열(다른 배열을 포함할 수 있음)일 수 있습니다.

query_data가 객체인 경우 공개 속성만 결과에 추가됩니다.

numeric_prefix
기본 배열에 숫자 첨자가 사용되고 이 매개변수가 제공되면 이 매개변수 값은 기본 배열에 있는 숫자 첨자 요소의 접두어로 사용됩니다.

이는 나중에 데이터를 디코딩할 때 PHP 또는 기타 CGI 프로그램이 합법적인 변수 이름을 얻을 수 있도록 하기 위한 것입니다.

arg_separator
이 매개변수를 지정하고 사용하지 않으면 arg_separator.output이 매개변수를 구분하는 데 사용됩니다(이 매개변수는 php.ini에서 사용할 수 있으며 기본값은 "&"입니다).

enc_type
기본적으로 PHP_QUERY_RFC1738을 사용하세요.

enc_type이 PHP_QUERY_RFC1738인 경우 인코딩은 » RFC 1738 표준 및 application/x-www-form-urlencoded 미디어 유형을 기반으로 하며 공백은 더하기 기호(+)로 인코딩됩니다.

enc_type이 PHP_QUERY_RFC3986인 경우 » RFC 3986에 따라 인코딩되며 공백은 퍼센트 인코딩(%20)됩니다.
예 1: query_data 매개변수만 사용

<?php$data = array(    &#39;name&#39; => &#39;fdipzone&#39;,    &#39;gender&#39; => &#39;male&#39;,    &#39;profession&#39; => &#39;programmer&#39;,    &#39;explain&#39; => &#39;a new programmer&#39;);echo http_build_query($data);?>

출력:
name=fdipzone&gender=male&profession=programmer&explain=a+new+programmer


예 2: query_data는 1차원 첨자 배열을 사용하며
numeric_prefix=info_,arg_separator=#,en을 지정합니다. c_type=PHP_QUERY_RF C3986

<?php$data = array(&#39;fdipzone&#39;,&#39;male&#39;,&#39;programmer&#39;,&#39;a new programmer&#39;);echo http_build_query($data, &#39;info_&#39;, &#39;#&#39;, PHP_QUERY_RFC3986);?>

출력:

info_0=fdipzone#info_1=male#info_2=programmer#info_3=a%20new%20programmer

2.parse_url

parse_url은 URL을 구문 분석하고 해당 구성 요소를 반환합니다.

mixed parse_url ( string $url [, int $component = -1 ] )

매개변수:
url
파싱할 URL은 유효하지 않은 문자입니다. _

comComponent
PHP_URL_PATH, PHP_URL_QUERY 또는 PHP_URL_FRAGMENT 중 하나로 대체되어 URL의 지정된 부분에 대한 문자열을 가져옵니다. (PHP_URL_PORT로 지정한 경우를 제외하면 정수값이 반환됩니다.)

반환 값:
심각하게 자격이 없는 URL의 경우,parse_url()은 FALSE를 반환할 수 있습니다.

반환된 데이터에는 일반적으로 다음
방식(예: http), 호스트, 포트, 사용자, 패스, 경로, 쿼리(물음표? 뒤), 조각(해시 기호 # 뒤)이 포함됩니다.
예:

<?php$url = &#39;http://fdipzone:123456@www.fdipzone.com:80/test/index.php?id=1#tag&#39;;
print_r(parse_url($url));echo parse_url($url, PHP_URL_SCHEME).PHP_EOL;echo parse_url($url, PHP_URL_HOST).PHP_EOL;echo parse_url($url, PHP_URL_PORT).PHP_EOL;echo parse_url($url, PHP_URL_USER).PHP_EOL;echo parse_url($url, PHP_URL_PASS).PHP_EOL;echo parse_url($url, PHP_URL_PATH).PHP_EOL;echo parse_url($url, PHP_URL_QUERY).PHP_EOL;echo parse_url($url, PHP_URL_FRAGMENT).PHP_EOL;?>

출력:

Array(
    [scheme] => http
    [host] => www.fdipzone.com
    [port] => 80
    [user] => fdipzone
    [pass] => 123456
    [path] => /test/index.php
    [query] => id=1
    [fragment] => tag
)
http
www.fdipzone.com80fdipzone123456/test/index.php
id=1tag

3.parse_str

parse_str 문자열을 여러 변수로 구문 분석합니다.

void parse_str ( string $str [, array &$arr ] )

str이 URL로 전달된 쿼리 문자열인 경우 이를 변수로 구문 분석하고 현재 범위로 설정합니다.
매개변수:
str
입력 문자열

arr
두 번째 변수 arr이 설정되면 해당 변수는 대체적으로 배열 요소 형태로 이 배열에 저장됩니다.
예제 1:현재 범위로 해결

<?php$str = &#39;name=fdipzone&gender=male&profession=programer&explain=a new programmer&#39;;
parse_str($str);echo $name.PHP_EOL;echo $gender.PHP_EOL;echo $profession.PHP_EOL;echo $explain.PHP_EOL;?>

출력:

fdipzone
male
programera new programmer


예제 2:결과를 arr 배열에 저장

<?php$str = &#39;name=fdipzone&gender=male&profession=programer&explain=a new programmer&#39;;
parse_str($str, $arr);
print_r($arr);?>

출력:

Array(
    [name] => fdipzone
    [gender] => male
    [profession] => programer
    [explain] => a new programmer
)

4. 쿼리 받기 url의 매개변수 그리고 구문 분석

먼저 구문 분석 URL을 사용하여 쿼리를 가져온 다음 구문 분석을 사용하여 매개 변수를 구문 분석합니다.

<?php$url = &#39;http://www.fdipzone.com/test/index.php?name=fdipzone&gender=male&profession=programmer&explain=a new programmer&#39;;$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $data);
print_r($data);?>

출력:

Array(
    [name] => fdipzone
    [gender] => male
    [profession] => programmer
    [explain] => a new programmer
)

이 문서에서는 http_build_query,parse_url,parse_str을 사용하여 생성하고 구문 분석하는 방법을 설명합니다. PHP를 통한 URL, 관련 내용에 대해서는 PHP 중국어 웹사이트에 주의하세요.

관련 권장사항:

html5를 통해 흔들기 기능을 구현하는 방법

MySql을 통해 auto_increment를 보고 수정하는 방법

php

을 통해 웹 데스크탑에 대한 바로가기를 생성하는 방법

위 내용은 http_build_query,parse_url,parse_str을 사용하여 PHP를 통해 URL을 생성하고 구문 분석하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.