>백엔드 개발 >PHP 튜토리얼 >현재 웹사이트 URL을 가져오고 매개변수 또는 URL을 대체하는 UINavigationController PHP 메소드

현재 웹사이트 URL을 가져오고 매개변수 또는 URL을 대체하는 UINavigationController PHP 메소드

WBOY
WBOY원래의
2016-07-29 08:42:59953검색

먼저, PHP는 현재 페이지의 URL을 가져옵니다:

코드 복사 코드는 다음과 같습니다:


//Get 현재 스크립트 URL
function GetCurUrl()
{
if(!empty($_SERVER["REQUEST_URI"]))
{
$scriptName = $_SERVER["REQUEST_URI"];
$nowurl = $scriptName
}
else
{
$scriptName = $_SERVER["PHP_SELF"]
if(empty($_SERVER["QUERY_STRING"]) )
{
$nowurl = $scriptName;
}
else
{
$nowurl = $scriptName."?".$_SERVER["QUERY_STRING"]
}
}
return $nowurl;
}


다른 하나는 URL의 쿼리 부분에서 특정 변수의 값을 바꾸는 PHP입니다. $url=321에 키를 설정하려면
사실 여러 상황이 있습니다:
$url='www.sina.com/a.php?key=330′;
또는 $url=' www.sina.com/a.php;
또는 $ url='www.sina.com/a.php?cat=2′ 등. 여러가지 상황이 있지만 PHP로 처리하면 매우 간단합니다.

코드 복사 코드는 다음과 같습니다.

/* 특정 매개변수를 특정 값으로 설정하기 위한 URL 변환*/ //[이 문단은 꽤 좋습니다]
function url_set_value($url,$key,$value)
{
$a=explode('?', $url);
$url_f=$a[0];
$query=$a[1]
parse_str($query,$arr); 🎜>$arr[$key]= $value;
return $url_f.'?'.http_build_query($arr);
}


하지만 내 교체는 다음과 같습니다. . 물론 짜증나죠. .



코드 복사 코드는 다음과 같습니다.

/**
*사용 루틴: 페이징 클래스 또는 페이지 교체 등에 사용할 수 있습니다.
$url = "add_jd.php?pid=4&tb=gm_jd&page=1"
echo( "원본 URL: " . $url );
echo( '
' )
echo( "문자열 매개변수:" . url::replace( $url , "pid=10,page=2") ) ;
echo( '
' );
echo( "배열 매개변수: " . url::replace( $url , array('pid'=>10,'page'= > ;5)) );
//echo( urlReplace( $url , array('pid'=>10,'page'=>5)) );*/
/**
* url replacement
* @param string $url 교체해야 하는 URL 문자열(일반적으로 aaa.php?abc=def), http://xxx.com/abc와 같이 경로를 가져올 수도 있습니다. /def .php?aa=bb
* @param mix $options 바꿀 변수는 문자열이거나 배열일 수 있습니다. 문자열인 경우 형식은 "aa=bb,cc=dd"입니다. 여러 개가 있는 경우 " ,"로 구분하여 사용
* @return string $url 대체된 URL
*/
클래스 URL
{
정적 함수 대체( $url , $options)
{
$options = self::optInit( $options );
$Query = parse_url( $url , PHP_URL_QUERY );
if($Query){
parse_str( $Query , $GET )
if ( $GET ){
/ /foreach ( $GET as $_k => $_v ){
// //if( array_key_exists( $_k , $options)){
// $GET[$_k] = $options[$ _k];
// //}
//}
$GET = array_merge($GET,$options);
}
return str_replace( $Query , http_build_query( $GET ) , $url )
if( !$Query && $options ){
return $url . http_build_query($options)
return $url;
}
정적 비공개 함수 optInit( $options )
{
if( is_string( $options )){
$optlists = Power::Normalize( $options )
foreach ( $optlists as $val){
list($tmpKey,$tmpVal) = Power::Normalize( $val , "=")
$opts[$tmpKey] = $tmpVal;
}else{
$opts = $options;
}
//unset( $options )
return $opts; >
몇 가지 사항을 고려했지만 매우 일반적인 해결책일 뿐입니다
다음은 몇 가지 보충 정보입니다.
예: 현재 URL 주소를 가져와야 합니다
$url_this = "http:/ /".$_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF'];
echo $url_this;
표시: http://localhost/lu.php
서버 변수: $_SERVER
참고: PHP 4.1.0 이상 버전에서 사용됩니다. 이전 버전에서는 $HTTP_SERVER_VARS를 사용했습니다.
$_SERVER는 헤더, 경로, 스크립트 위치 등을 포함하는 배열입니다. 배열의 엔터티는 웹 서버에 의해 생성됩니다. 모든 서버가 모든 메시지를 생성한다는 보장은 없습니다. 서버가 일부 메시지를 무시하거나 아래에 나열되지 않은 새 메시지를 생성할 수도 있습니다. 이는 이러한 변수 중 다수가 CGI 1.1 사양에 지정되어 있으므로 주의 깊게 연구해야 함을 의미합니다.
이것은 "수퍼글로벌"이거나 자동 전역 변수로 설명될 수 있습니다. 이는 모든 스크립트에서 작동한다는 의미입니다. $HTTP_SERVER_VARS와 마찬가지로 함수나 메소드 내에서 액세스하기 위해 전역 $_SERVER를 사용할 필요가 없습니다.
$HTTP_SERVER_VARS에는 동일한 정보가 포함되어 있지만 자동 전역 변수는 아닙니다. (참고: $HTTP_SERVER_VARS 및 $_SERVER는 서로 다른 변수이며 PHP는 이를 다르게 처리합니다.)
이 변수는 $_SERVER 및 $HTTP_SERVER_VARS 배열이 분리되어 있는 경우 모든 스크립트에서 사용할 수 있습니다. 관련 정보는 보안 관련 장인 전역 등록 사용을 참조하세요. 이러한 개별 전역 변수는 자동 전역 변수가 아닙니다.
아래 나열된 $_SERVER 요소 중 일부를 사용할 수 없는 경우도 있습니다. 명령줄에서 PHP를 실행하는 경우 아래 나열된 요소 중 일부는 유효하거나 실제 의미가 없습니다.
"PHP_SELF"
문서 루트와 관련된 현재 실행 중인 스크립트의 파일 이름입니다. 예를 들어, URL 주소가 http://example.com/test.php/foo.bar인 스크립트에서 $_SERVER['PHP_SELF']를 사용하면 /test.php/foo.bar가 됩니다.
PHP가 명령줄에서 실행되는 경우 이 변수는 효과가 없습니다.
"argv"
이 스크립트에 전달된 인수입니다. 스크립트가 명령줄 모드에서 실행되면 argv 변수가 C 스타일 명령줄 인수로 프로그램에 전달됩니다. GET 메소드가 호출되면 이 변수에는 요청된 데이터가 포함됩니다.
"argc"
프로그램에 전달된 명령줄 인수의 수를 포함합니다(명령줄 모드에서 실행하는 경우).
"GATEWAY_INTERFACE"
서버에서 사용하는 CGI 사양의 버전입니다. 예를 들어 "CGI/1.1"입니다.
'SERVER_NAME'
스크립트가 현재 실행 중인 서버 호스트의 이름입니다. 스크립트가 가상 호스트에서 실행 중인 경우 이름은 해당 가상 호스트에 설정된 값에 따라 결정됩니다.
'SERVER_SOFTWARE'
요청에 응답할 때 헤더에 제공되는 서버를 식별하는 문자열입니다.
"SERVER_PROTOCOL"
페이지 요청 시 통신 프로토콜의 이름과 버전입니다. 예를 들어 "HTTP/1.0"입니다.
"REQUEST_METHOD"
페이지에 접근할 때 요청하는 방법입니다. 예: "GET", "HEAD", "POST", "PUT".
“QUERY_STRING”
쿼리 문자열입니다.
“DOCUMENT_ROOT”
현재 실행 중인 스크립트가 위치한 문서 루트 디렉터리입니다. 서버 구성 파일에 정의되어 있습니다.
"HTTP_ACCEPT"
Accept의 내용: 현재 요청의 헤더.
"HTTP_ACCEPT_CHARSET"
Accept-Charset의 내용: 현재 요청의 헤더. 예: "iso-8859-1,*,utf-8".
"HTTP_ACCEPT_ENCODING"
현재 요청의 Accept-Encoding: 헤더 내용. 예: "gzip".
"HTTP_ACCEPT_LANGUAGE"
Accept-Language의 내용: 현재 요청의 헤더. 예: "en".
“HTTP_CONNECTION”
연결 내용: 현재 요청의 헤더. 예: "연결 유지".
“HTTP_HOST”
호스트 내용: 현재 요청의 헤더.
"HTTP_REFERER"
현재 페이지로 연결되는 이전 페이지의 URL 주소입니다. 모든 사용자 에이전트(브라우저)가 이 변수를 설정하는 것은 아니며 일부는 HTTP_REFERER를 수동으로 수정할 수도 있습니다. 따라서 이 변수가 항상 참인 것은 아닙니다.
"HTTP_USER_AGENT"
User_Agent의 내용: 현재 요청의 헤더. 이 문자열은 이 페이지에 액세스하는 사용자 에이전트에 대한 정보를 나타냅니다. 일반적인 예는 다음과 같습니다: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). get_browser()를 사용하여 이 정보를 얻을 수도 있습니다.
“REMOTE_ADDR”
현재 페이지를 탐색하고 있는 사용자의 IP 주소입니다.
'REMOTE_HOST'
현재 페이지를 탐색하고 있는 사용자의 호스트 이름입니다. 역방향 도메인 이름 확인은 사용자의 REMOTE_ADDR을 기반으로 합니다.
참고: 이 변수를 생성하려면 웹 서버를 구성해야 합니다. 예를 들어 Apache에서는 httpd.conf에 HostnameLookups On이 필요합니다. gethostbyaddr()을 참조하세요.
"REMOTE_PORT"
사용자가 서버에 연결하는 데 사용하는 포트입니다.
"SCRIPT_FILENAME"
현재 실행 중인 스크립트의 절대 경로 이름입니다.
"SERVER_ADMIN"
이 값은 Apache 서버 구성 파일의 SERVER_ADMIN 매개변수를 지정합니다. 스크립트가 가상 호스트에서 실행 중인 경우 이 값은 해당 가상 호스트의 값입니다.
"SERVER_PORT"
서버에서 사용하는 포트입니다. 기본값은 "80"입니다.SSL 보안 연결을 사용하는 경우 이 값은 사용자가 설정한 HTTP 포트입니다.
"SERVER_SIGNATURE"
서버 버전과 가상 호스트 이름이 포함된 문자열입니다.
"PATH_TRANSLATED"
현재 스크립트가 있는 파일 시스템의 기본 경로(문서 루트 아님)입니다. 이는 서버를 가상 경로에서 실제 경로로 이미지화한 후의 결과입니다.
"SCRIPT_NAME"
현재 스크립트의 경로가 포함되어 있습니다. 이는 페이지가 자신을 가리켜야 할 때 유용합니다.
"REQUEST_URI"
이 페이지에 액세스하는 데 필요한 URI입니다. 예를 들어 "/index.html"입니다.
“PHP_AUTH_USER”
PHP가 Apache 모듈 모드에서 실행되고 HTTP 인증을 사용하는 경우 이 변수는 사용자가 입력한 사용자 이름입니다.
“PHP_AUTH_PW”
PHP가 Apache 모듈 모드로 실행되고 HTTP 인증 기능을 사용하는 경우 이 변수는 사용자가 입력한 비밀번호입니다.
"AUTH_TYPE"
PHP가 Apache 모듈 모드에서 실행되고 HTTP 인증 기능을 사용하는 경우 이 변수는 인증 유형입니다.

위 내용은 UINavigationController의 내용을 포함하여 현재 URL을 얻고 매개변수 또는 URL을 대체하는 UINavigationController php의 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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