0

これが私がこれまでに持っているものです:

preg_match('/[q|p]=(.*?)&/',$url,$query);

q問題は、またはで終わるパラメーターがある場合p、それらが含まれることです。

&cap=queryhere

cap終わるpので、q と p のみからの検索クエリのみを含めるにはどうすればよいですか。ありがとう!

4

2 に答える 2

1

'/\W[q|p]=(.*)&/' 前の数字が単語文字 (aZ、0-9、または _) ではない場合にのみ、一致する前に \W を追加するように正規表現を更新できます。

個人的には、$_GET['p']orを使用します$_GET['q']

<?php
   if ( isset($_GET['p']) )
      $query = $_GET['p'];
?>
于 2013-01-08T21:11:03.323 に答える
1

正規表現を使用する必要はありません。php には、情報の種類を操作する関数が組み込まれているため、より正確です。

<?php

$url = "http://mysite.com/page.php?q=this is my query&a=123";

$query = parse_url($url, PHP_URL_QUERY);

parse_str($query, $opt);

print_r($opt);

出力:

Array
(
    [q] => this is my query
    [a] => 123
)
于 2013-01-08T21:17:47.937 に答える