私は、多数のパラメータ、すなわち値を持つ変数に従って項目をリストするページを持っています。これまでのところは良いphp;クエリ文字列から単一の変数値のペアを削除する
listitems.php?color=green&size=small&cat=pants&pagenum=1&edit=1
:
listitems.php?color=green&size=small&cat=pants&pagenum=1 etc.
は、リストの編集を可能にするために、私は与えるために、上記クエリ文字列に追加されたパラメータ編集= 1を持っています。
ユーザーが編集を完了すると、編集モードを終了するリンクがあります。このリンクではクエリーストリング全体を指定する必要があります。これは、ユーザーの選択に従うものであれば何でも構いませんが、edit = 1を削除する点が異なります。
私はいくつかの変数しか持っていなかったので、リンクに手動でリストアップしましたが、もっと多くの変数があるので、プログラムでedit = 1を削除することができます。
私はedit = 1の検索をしなければならないのですか?
$qs = str_replace("&edit=1, "", $_SERVER['QUERY_STRING']);
<a href='{$_SERVER['PHP_SELF']}?{$qs}'>return</a>;
これを行う最もクリーンで最もクリーンな方法は何ですか?
注:私はpagenumを取り出して別のものに置き換えたい場合、ページからページに行くときに同様の状況があります。そこに、pagenumが変わるので、私はpagenum = 1を検索することはできませんが、違いがあればpagenum =$pagenum
を検索しなければなりません。
ありがとうございました。
どのように私は$ _SERVER [ 'QUERY_STRING']からこれを行うだろうか? – user1904273
'parse_url()'と 'parse_str()'がありますが、$ _GETは常に利用可能であり、埋められているので、これは必要ありません。 – Sven
$ _GET変数(またはそのような超大域変数)は、アプリケーションのどこかで必要になる可能性があるため、変更しません。代わりに、 '$ edit_query = $ _GET;'のような一時変数を作成してください。次に、スーパーグローバルに影響を与えずに 'unset($ edit_query ['edit']);'することができます。 – Number1SuperGuy