0

私は php の初心者で、クエリ文字列を取得する方法の提案に従おうとしています。読みやすい形式で単語​​を検索したい。

現在、文字列は、Asp.Net で要求オブジェクトの referer プロパティを使用して以前に収集されたデータベースから取得されます。しかし、私の知る限り、それは何の違いもありません。

だから私はこれを試しました:

function getQuery($url)
{
        $processed_url = parse_url( $url );

        $query_string = $processed_url['query'];
        if($url != '')
        {
            return $query_string;
        }
        else
        {
            return $url;
        }
}

そこで、クエリ文字列も抽出するバリエーションを試しました。

    $query = parse_url($url, 6);

    return $query;

まあ、そのような作品。クエリ文字列の部分が表示されますが、クエリ文字列のテキストだけでなく、「q =」などすべてが含まれています。

そこで、クエリ文字列自体を解析できるはずの parse_str() 関数を試してみました。

parse_str($query, $myArray);
return $myArray[0];

しかし、それはまったく機能しませんでした。結果ページ (グリッド) に結果が表示されません。

私は何を間違っていますか?まず、上記のクエリを取得するための最初の方法で、次にクエリ文字列をそのコンポーネントに解析するための方法は? (インデックス 0 は単なる例です。テキスト部分だけを取得できたら、後で連結すると思いました)?

4

1 に答える 1

0

現在のリクエストからではなく、文字列からURLを解析しようとしているようです(コメントで述べたように)

コメントのPHPドキュメントには、あなたが望むことを正確に行う優れた関数があります。ここにコピーしたので、将来の参照で使用できます-すべてのクレジットは「Simon D」に送られます-http://dk .php.net/manual/en/function.parse-url.php#104527

<?php 
/** 
 * Returns the url query as associative array 
 * 
 * @param    string    query 
 * @return    array    params 
 */ 
function convertUrlQuery($query) { 
    $queryParts = explode('&', $query); 

    $params = array(); 
    foreach ($queryParts as $param) { 
        $item = explode('=', $param); 
        $params[$item[0]] = $item[1]; 
    } 

    return $params; 
} 
?>

つまり、次のように使用する必要があります。

$array = convertUrlQuery(parse_url($url, 6));
于 2011-09-29T23:16:16.110 に答える