2012-01-23 9 views
0

私はこのようなURLを持っている場合:www.example.com/product/yellow-bed URLから製品名を取得することは可能ですか?例えば 、URLは、私が使用するwww.example.com?page=product&product_name=yellow_bedようになる場合:URLから価値を引き出す方法は?

$product = $_GET['page']; 
$product_name = $_GET['product_name']; 

しかしwww.example.com/product/yellow-bedからそれを取得する方法?

+2

*(参照)* http://php.net/parse_urlとhttp://php.net/parse_strとhttp://php.net/explode – Gordon

+0

[WordpressカスタムURLとGETの可能な複製](http://stackoverflow.com/questions/8969212/wordpress-custom- url-and-get) – Quentin

答えて

4

"$ _SERVER [" REQUEST_URI "]"でURIを取得します。

$uri = 'www.google.com/product/yellow-bed' //uri = $_SERVER["REQUEST_URI"] 
$uriArray = explode('/', $uri); 
$product = $urlArray[1]; 
$product_name = $urlArray[2]; 

0 = www.google.com、1 =生成物、2 =黄色床

PHPマニュアル:array explode (string $delimiter , string $string [, int $limit ])爆発の配列に文字列を変換します。

+0

なぜurlとurlArrayに '$'がないのですか? – Lina

+0

あなたは正しいです、私のせいです。私は今それを変更しました。私は最近多くのJSにやっています。 –

0

完全なURIを$_SERVER['QUERY_STRING']で取得し、分割することができます。または、.htaccessを使って作業し、内部的にURLを書き換えます。

+1

'$ _SERVER ['QUERY_STRING']'のアドバイスは完全に間違っています。なぜなら、OPはURLから '--example .com/product/yellow-bed' - クエリ文字列はありません。 @bratkartoffelが正しいとすれば、 'page'と' product_name'がクエリ文字列変数であるURLに書き直すことができます。 – JMM

0

お試し$_SERVER[ 'PATH_INFO' ]または$_SERVER[ 'REQUEST_URI' ]です。

0

$_SERVER['REQUEST_URI']をご覧ください。あなたの例では/product/yellow-bedになります。

次に、strrpos()explode() or preg_match() `(または他の文字列操作関数)を使用して、必要なものを抽出することができます。

0

あなたは現在のURLをretriveするには、以下の機能を使用することができます。

<?php 
function curPageURL() { 
$pageURL = 'http'; 
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} 
$pageURL .= "://"; 
if ($_SERVER["SERVER_PORT"] != "80") { 
    $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
} else { 
    $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
} 
return $pageURL; 
} 
?> 

今、あなたはURLを取り、でもparse_urlを使用してその要素を解析することができますhttp://php.net/manual/en/function.parse-url.php

+0

何か?彼は本当に '$ _SERVER [" REQUEST_URI "]'にあるパスを解析するだけです。 –

関連する問題