0

私はこれに関して1つの疑問があります...

私はこのようなURLを持っています

http://www.SpiderWeb.com/vendors/search_results/scid:0/atr:1/mbp:1/bc:2/bc:1/mbpo:2/atrt:5/atop:1/opel:4

配列変数内のすべての名前付きパラメーターを抽出して、変数の名前とURLの値を取得して、処理に使用できるようにします...

個別に支援するのではなく、いくつかの組み込み関数を使用してこれを実現する方法はありますか?

すなわち

$some_var = $this->request->params['named']['id']; 

名前付きパラメーターが動的であるため、私が望む理由は...です。

これに対する更新されたソリューションは次のとおりです...

<?php
$url = 'http://www.SpiderWeb.com/vendors/search_results/scid:0/atr:1/mbp:1/bc:2/bct:1/mbpo:2/atrt:5/atop:1/opel:4';
$arr_url = parse_url($url);
//print_r($arr_url);
$res  = explode("/vendors/search_results/",$arr_url['path']);
//print_r($res);
//print_r($res[1]);
$vars  = explode("/",$res[1]);
//print_r($vars);
$result = array();
foreach($vars as $key => $val){
  if (strpos($val, ":") !== false) {
     $newvars  = explode(":",$val);
     //print_r($newvars);
     $result[$newvars[0]] = $newvars[1];
  }
}
print_r($result);
?>
4

2 に答える 2

1

名前付きparams配列をループするだけです

foreach ($this->request->params['named'] as $name => $param) {
   pr("The param name is {$name}");
   pr("The param value is {$param}");
}
于 2013-02-25T12:06:35.143 に答える
0

これを試して :

$url = 'http://www.SpiderWeb.com/vendors/search_results/scid:0/atr:1/mbp:1/bc:2/bc:1/mbpo:2/atrt:5/atop:1/opel:4';

$myarr = parse_url($url);


$res  = explode("/",$myarr['path']);

foreach($res as $val){
  if (strpos($val, ":") !== false) {
     $vars  = explode(":",$val);
     $$vars[0]  = $vars[1];
  }
}

echo $scid;
于 2013-02-25T11:58:38.390 に答える