亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP - 從 URL 獲取索引 URL 查詢字符串參數

PHP - 從 URL 獲取索引 URL 查詢字符串參數

PHP
尚方寶劍之說 2023-06-24 15:47:46
像 cid 這樣的獨立參數很容易獲得,但是像category1和category2這樣的索引查詢字符串參數是我陷入困境的地方。我還可以選擇以 JSON 格式發送 webhook(如果這更有意義),但仍然不確定如何獲取 itemsku1 和 itemsku2 等索引參數。我還忘了提及,索引參數可能會根據購買的產品數量而變化,所以我事先不知道 URL 中會有多少個。提前致謝!
查看完整描述

3 回答

?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

嘗試這樣的事情


<?php


$param_names = [

    'amount',

    'category',

    'itemsku',

    'quantity',

];


$data = [];


foreach ($_GET as $key => $val) {


    foreach ($param_names as $param_name) {


        if (strpos($key, $param_name) === 0) {

            $idx = substr($key, strlen($param_name), 1);


            $data[$idx][$param_name] = $val;

        }

    }


}


var_dump($data);

這是結果


array (size=2)

  1 => 

    array (size=3)

      'amount' => string '233.55' (length=6)

      'category' => string 'clothing' (length=8)

      'itemsku' => string '01235654' (length=8)

      'quantity' => string '1' (length=1)

  2 => 

    array (size=4)

      'amount' => string '156.99' (length=6)

      'category' => string 'accessories' (length=11)

      'itemsku' => string '525124' (length=6)

      'quantity' => string '3' (length=1)


查看完整回答
反對 回復 2023-06-24
?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

我不確定我是否正確理解你,但你不能使用:


$category1 = filter_input(INPUT_GET,"category1",FILTER_SANITIZE_STRING);

$category2 = filter_input(INPUT_GET,"category2",FILTER_SANITIZE_STRING);

$sku1 = filter_input(INPUT_GET,"itemsku1",FILTER_SANITIZE_STRING);

$sku2 = filter_input(INPUT_GET,"itemsku2",FILTER_SANITIZE_STRING);

依此類推...除非您不知道索引參數的確切數量,否則您可以使用以下命令,它將參數存儲在數組中。


$query  = explode('&', $_SERVER['QUERY_STRING']);

$params = array();

foreach( $query as $param )

{

  list($name, $value) = explode('=', $param, 2);

  $params[urldecode($name)][] = urldecode($value);

}

假設您要訪問鏈接https://example.com/page.php?itemsku=test1&itemsku=test2


$params['itemsku'][0]將返回:test1 $params['itemsku'][1]將返回:test2


要循環遍歷itemsku參數數組,只需執行以下操作:


foreach($params['itemsku'] as $sku){

   echo $sku . "\n";

}

會輸出:


test1

test2


查看完整回答
反對 回復 2023-06-24
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

我不確定我是否理解正確,但你可以使用parse_url. 在你的情況下:


$url = 'https://example.com/page.php?cid=123456&eventid=965254&trackerid=2523654&amount1=233.55&amount2=156.99&catgory1=clothing&category2=accessories&itemsku1=01235654&itemsku2=525124&quantity1=1&quantity2=3';


$temp_array = [];

parse_str(parse_url($url, PHP_URL_QUERY), $temp_array);

var_dump($temp_array);

這將生成一個包含所有查詢參數的數組。然后您可以訪問每個參數,例如:


echo $temp_array['cid'];

echo $temp_array['catgory1'];

echo $temp_array['catgory2'];

echo $temp_array['itemsku1'];

echo $temp_array['itemsku2'];


查看完整回答
反對 回復 2023-06-24
  • 3 回答
  • 0 關注
  • 187 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號