2011-12-04 17 views
2

文字列から変数の値を抽出する必要があります。これはURLになります。文字列/ urlは、別のPHPクエリの一部として読み込まれ、ブラウザのURLでは読み込まれません。URL文字列の値をPHPで取得する

URLのようになります。

index.php?option=com_content&view=article&catid=334:golfeq&id=2773:xcelsiors&Itemid=44 

がどのように私はいつも&キャプチャこの例では2773であるIDの値を見つけることができますか?

私はすでにいくつかの例を読んでいますが、私が試したことは、URL文字列ではなく、ブラウザで表示されている現在のページのid値を取得しています。

おかげ

+0

IDの値が "2773" ではありませんが、 "2773:xcelsiors"。 – CodeCaster

答えて

6

あなたは(変数を解析して配列に入れます)の組み合わせやparse_url(あなたのためのクエリ文字列を分離します)とparse_strを探しています。例えば

$url = 'index.php?option=com_content&view=article&catid=334:golfeq&id=2773:xcelsiors&Itemid=44'; 

// This parses the url for the query string, and parses the vars from that 
// into the array $vars (which is created on the spot). 
parse_str(parse_url($url, PHP_URL_QUERY), $vars); 

print_r($vars); // see what's in there 

// Parse the value "2773:xcelsiors" to isolate the number 
$id = reset(explode(':', $vars['id'])); 

// This will also work: 
$id = intval($vars['id']); 

echo "The id is $id\n"; 

See it in action

+0

お返事ありがとうございます。私はなぜこれが私のために働いていないのかの症状を見ていると思う。 print_r($ vars)を実行すると、たとえば[catid] => 334:golfeqのように表示されます。[amp; catid] => 334だから、 "&"を処理する際に問題があると思います。どのように私はそれに対処できますか? – user1079732

1

あなたはURLを解析する場合でもparse_urlを使用することができますparse_str

+0

文字列はサイトのURLではないため、値は '$ _GET'配列にありません。 – kba

+0

私はそれがURLだと思った! –

0

を使用することができます!

しかし、あなたは直接ID変数の数を抽出するために、使用することができます。

$url = 'index.php?option=com_content&view=article&catid=334:golfeq&id=2773:xcelsiors&Itemid=44'; 
$id = preg_replace("/^.*[&?]id=([0-9]+).*$/",'$1',$url); 
echo $id; 
関連する問題