Steve Price Steve Price - 20 days ago 5
PHP Question

Extract specific data from a php string

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.

Answer

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
)
Comments