UINavigationController php メソッドを使用して、現在の Web サイトの URL を取得し、パラメーターまたは URL を置き換えます。

WBOY
リリース: 2016-07-29 08:42:59
オリジナル
923 人が閲覧しました

まず、PHP は現在のページの URL を取得します:

コードをコピーします コードは次のとおりです:


//現在のスクリプト URL を取得します
function GetCurUrl()
{
if(!empty($ _SERVER["REQUEST_URI"] ))
{
$scriptName = $_SERVER["REQUEST_URI"];
$nowurl = $scriptName;
else
{
$scriptName = $_SERVER["PHP_SELF"]; empty($_SERVER["QUERY_STRING"]))
{
$nowurl = $scriptName;
}
else
{
$nowurl = $scriptName."?".$_SERVER["QUERY_STRING"]
}
}
return $nowurl;
}


もう 1 つは、URL のクエリ部分の変数の値を PHP で置き換える方法です。たとえば、$url=321; にキーを設定したいとします。いくつかの状況:

$url='www.sina.com/a.php?key=330'; または $url='www.sina.com/a.php; /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);
$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( "配列パラメータ: " .url::replace( $url , array('pid'=>10,'page'=>5)) ); url , array('pid'=>10,'page'=>5)) );*/ /*** URL replace

* @param string $url 置換する必要がある URL 文字列。通常は aaa.php?abc=def ですが、http://xxx.com/abc/def.php のようなパスを指定することもできます。 ?aa =bb
* @parammixed $options 置換する変数は文字列または配列で、複数ある場合は「aa=bb,cc=dd」となります。 、" を区切ります
* @return string $url 置き換えられた URL
*/
class url
{
static function replace ( $url , $options)
{
$options = self::optInit( $options );
$Query = parse_url( $url , PHP_URL_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 . "?" ( 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 は、ヘッダー、パス、スクリプトの場所などを含む配列です。配列のエンティティは Web サーバーによって作成されます。すべてのサーバーがすべてのメッセージを生成するという保証はありません。サーバーは一部のメッセージを無視したり、以下にリストされていない新しいメッセージを生成したりする可能性があります。これは、これらの変数の多くが CGI 1.1 仕様で指定されているため、注意深く検討する必要があることを意味します。
これは「スーパーグローバル」、または自動グローバル変数として説明できます。これは、すべてのスクリプトで機能することを意味します。 $HTTP_SERVER_VARS のように、関数またはメソッド内でアクセスするためにグローバル $_SERVER を使用する必要はありません。
$HTTP_SERVER_VARS には同じ情報が含まれていますが、自動グローバル変数ではありません。 (注: $HTTP_SERVER_VARS と $_SERVER は異なる変数であり、PHP はそれらを異なる方法で処理します。)
register_globals ディレクティブが設定されている場合、つまり $_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: ヘッダーの内容。例:「エン」。
"HTTP_CONNECTION"
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 に基づきます。
注: この変数を作成するように Web サーバーを構成する必要があります。たとえば、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 php の現在の URL を取得し、パラメーターまたは URL を置き換えるメソッドを紹介しました。UINavigationController の内容も含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート