1

たとえば、変数を含むURLを持つ文字列があります。

http://www.example.com/?foo=example1&foo1=example2&foo2=example3

私はPHPにまったく慣れていないので、区切り文字と修飾子を調べてみると、何らかのエラーが発生することなく、それらを自分の状況に適切に適用する方法を理解できません。「foo1」を独自の変数に抽出して他の場所で使用する方法について、誰かが私を正しい方向に向けることができるかどうか疑問に思っていました。「&foo1=」とそれに続く「&」の間のデータを抽出する必要があります。

これは私が持っているものです(区切り文字/修飾子が正しくありません):

("&foo1=[^&]+?\&'", $getData))

では、おそらく「foo1」のデータを抽出するためにこれを修正するにはどうすればよいでしょうか?

編集:必要な変数を含むこの URL は、URL 自体ではなく文字列内であり、外部リンクです。変数は常に URL 形式であるとは限りません。多くの場合、変数は次のように文字列になっています。

foo=example1&foo1=example2&foo2=example3

そのような文字列から、「foo1」の値を抽出するにはどうすればよいでしょうか?

4

3 に答える 3

5

最初parse_urlに、次にクエリ部分をに渡しますparse_str

$url ="http://www.example.com/?foo=example1&foo1=example2&foo2=example3";
$parsedUrl = parse_url($url);
$query = array();
parse_str($parsedUrl['query'],$query);
var_dump($query);

-- array (
  'foo' => 'example1',
  'foo1' => 'example2',
  'foo2' => 'example3',
)
于 2013-04-03T22:27:28.870 に答える
0

それはあなたのウェブサイトですか?渡された値を知りたいですか? $_GET['...'].

または、URLを解析して変数を抽出する場合は、

preg_match_all('/([^?&=#]+)=([^&#]*)/', $url, $matches);

于 2013-04-03T22:31:15.207 に答える
-2

理解を助けるために「クラス」の答えを拡張するだけで、 value を持つ変数であることを?foo=example1意味します。fooexample1

PHPでは、URLからこれらの値を取得するには、単に使用$_GET['myvariablename']します。あなたの場合、それは

$var1 = $_GET['example1'];
$var2 = $_GET['example2'];
$var3 = $_GET['example3'];
于 2013-04-03T22:28:58.843 に答える