2012-02-16 70 views
1

我有以下网址更换网址变量值

/index.php?option=com_zoo&task=item&item_id=292&Itemid=283 

我想要做的一个变量来代替item_id的价值是什么。我一直在检查几个php函数,如splitparse_str,但我不知道如何让它起作用。

+0

是这样的您为链接创建的网址?或者你是否在index.php中,并尝试使用item_id中的传递值? – Matt 2012-02-16 16:14:34

+0

此URL是字符串还是当前URL(在地址栏中)? – 2012-02-16 16:14:52

+0

这一个是当前的网址 – lgt 2012-02-16 16:16:29

回答

4
$url = '/index.php?option=com_zoo&task=item&item_id=292&Itemid=283'; 

$query = explode('?', $url); // Split the URL on `?` to get the query string 
parse_str($query[1], $data); // Parse the query string into an array 

echo $data['item_id']; // 292 

$newValue = 300; 
$data['item_id'] = $newValue; // Replace item_id's value 

$url = $query[0].'?'.http_build_query($data); // rebuild URL 

echo $url; // '/index.php?option=com_zoo&task=item&item_id=300&Itemid=283"; 
+0

哇,多数民众赞成它,这是我想要的。谢谢 – lgt 2012-02-16 16:26:57

+0

很高兴我能帮忙:-) – 2012-02-16 16:28:59

0

试试str_replace函数。如果你已经存储在变量$url和变量您的网址要替换ITEMID存储在$ItemID

$url = str_replace("Itemid", $ItemID, $url); 
+0

我想他想替换'292'('item_id'的值)。 – 2012-02-16 16:22:58

+0

这并不代替价值,而是项目本身。 – PeeHaa 2012-02-16 16:23:31

+0

是的,其实我想替换价值,火箭的解决方法似乎是完美的。 – lgt 2012-02-16 16:28:08

0

* 这是做*的确切方式

<?php 
    $url = '/index.php?option=com_zoo&task=item&item_id=292&Itemid=283'; 
    $explodeData =parse_url($url); 
    $dataReplace = str_replace('item_id','replacedvariable',$explodeData['query'],$count); 
    $changedUrl = $explodeData['path']."?".$dataReplace; 
    echo $changedUrl; 
    ?>