I have a text string that is set in a variable to a value like these:
$str = 'type=showall'
or
$str = 'type=showall&skip=20'
$str = 'type=showall&skip=40'
$str = 'type=showall&skip=60'
and so on.
I need to check to see if there is a “skip” value present in the string, and if so replace it with a new number that is stored in a $newSkip variable and keep the string the same except for the change to the skip value.
For example if the string was:
$str = 'type=showall&skip=20'
and
$newSkip = 40
then I would like this to be returned:
$str = 'type=showall&skip=40'
If there was no skip value:
$str = 'type=showall'
and
$newSkip = 20
then I would like this to be returned:
$str = 'type=showall&skip=20'
I’m fairly new to PHP so still finding my way with the various functions and not sure which one/s are the best ones to use in this scenario when the text/value you’re looking for may/may not be in the string.
PHP has a handy function called
parse_str()which accepts a string similar to the one you have, and returns an array with key/value pairs. You’ll then be able to inspect specific values and make the changes you need.The
http_build_queryfunction will return the array into the same URI format that you started with. This function also encodes the final string so if you want to see the decoded version, you’ll have to send it throughurldecode().References –
parse_str()http_build_query()