2012-02-16 5 views
1

У меня есть следующий URLзаменить URLS значение переменной

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

То, что я хочу сделать, чтобы заменить значение item_id «s с переменной. Я проверял пару php-функций, таких как split и parse_str, но я не знаю, как заставить его работать.

+0

является ли это url, который вы создаете для ссылки? или вы внутри index.php и пытаетесь работать с переданным значением в item_id? – Matt

+0

Этот URL-адрес содержит строку или текущий URL-адрес (в адресной строке)? –

+0

этот текущий текущий адрес – lgt

ответ

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

whoa thats it, это то, что я хотел. Спасибо – lgt

+0

Рад я мог бы помочь :-) –

0

Попробуйте функцию str_replace. Если ваш URL хранится в переменной $url и переменной, которую вы хотите заменить Itemid хранится в $ItemID:

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

Я думаю, он хочет заменить значение '292' (' item_id'). –

+0

Это не заменяет значение, а сам элемент. – PeeHaa

+0

Да, на самом деле я хотел заменить значение, Ракетки обходным путем кажется идеальным. – lgt

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; 
    ?> 
Смежные вопросы