-4

これは私のひもです

component/content/article?id=9

そこから動的に9を取得する方法は?

URLではなく文字列でやりたいのですが、URLのようにパラメータが多い場合があります。$_GETとまったく同じことをしたいのですが、文字列で

言い換えられた質問(Ayesh Kによる):

URL パスとクエリ文字列を含む文字列があります。現在のページのクエリ文字列であるかのように、クエリ文字列をキーと値の配列に解析して、から取得できるようにしたい$_GET

たとえば、次の文字列があります。

component/content/article?id=9

ここで、配列からid値 ( )を取得したいと考えています。9このような文字列を解析してクエリ文字列を分離し、それを配列に変換するにはどうすればよいですか?

4

3 に答える 3

6

ここでの回答の一部は、そのために構築された特定のツールを使用していません。

以下を使用して、URL またはパス文字列を解析し、$_GET にあるかのように目的の値を取得できます。

<?php
  $str = 'component/content/article?id=9';
  $query = parse_url($str, PHP_URL_QUERY); // Get the string part after the "?"
  parse_str($query, $params); // Parse the string. This is the SAME mechanism how php uses to parse $_GET.
  print $params['id'];
?>

デモ: http://3v4l.org/ki00i

于 2013-09-13T18:36:10.430 に答える
2

更新: コードを更新したようです。

これは、URL 文字列を解析するためのより堅牢な方法です。

$string = 'component/content/article?q=1&item[]=345&item[]=522';

// parse the url into its components
$url_parts = parse_url($string);

// parse the query components to get the variables
parse_str($url_parts['query'], $get_vars);

echo $get_vars['q'];
echo $get_vars['item'][0];
于 2013-09-13T18:24:08.013 に答える
0
<?php
   $gets = array();
   $string = "component/content/article?id=9&sid=15";
   $parts = explode('?',$string);
   $parts = explode('&',$parts[1]);
   foreach($parts as $part){
      $part = explode('=',$part);
      $gets[$part[0]] = $part[1];
   }
   print_r($gets); // array('id' => '9','sid' => '15');
?>
于 2013-09-13T18:29:01.223 に答える