2

I have a url stored in a database in the following format

index.php?main_page=product_info&cPath=1_11&products_id=568

I want to be able to extract the cPath data, 1_11 in this case, and the products id '568' to two separate variables. Note that the cPath value could vary from being a single number such as 23 to a series of numbers and underscores such as 17_25_31. If extracting the cPath is too difficult I could use the products_id once it's extracted and query the database again, but this isn't ideal as I want to avoid additional requests as much as possible.

I really don't know the best (correct) way to go about this.

0

1 Answer 1

4

A more refined approach as suggested by Robbie Averill

//first lets the the query string alone
$string=parse_url('index.php?main_page=product_info&cPath=1_11&products_id=568', PHP_URL_QUERY);

parse_str($string,$moo);

print_r($moo);

Output:

Array
(
    [main_page] => product_info
    [cPath] => 1_11
    [products_id] => 568
)

My original suggestion.

parse_str('index.php?main_page=product_info&cPath=1_11&products_id=568',$moo);

print_r($moo);

output:

Array
(
    [index_php?main_page] => product_info
    [cPath] => 1_11
    [products_id] => 568
)
Sign up to request clarification or add additional context in comments.

5 Comments

Better would probably be to parse_url first then just parse_str on the query string
i thought about that, but he only wanted cPath and products_id so i thought lets make it real simple. But i will add that to the answer ;-)
Works beautifully, thank you. Was easily able to assign the values to variables as $cPath = ($moo['cPath']); $products_id = ($moo['products_id']);
@StevePrice why reassign at all? your just doubling memory usage for no advantage
@Dagon Valid point. I changed my code to access it directly after your comment.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.