PHP操纵字符串(如果值存在则查找/替换)

时间:2012-09-17 16:13:32

标签: php

我有一个文本字符串,在变量中设置为如下值:

$str = 'type=showall'

$str = 'type=showall&skip=20'
$str = 'type=showall&skip=40'
$str = 'type=showall&skip=60'

等等。

我需要检查字符串中是否存在“skip”值,如果是,则将其替换为存储在$ newSkip变量中的新数字,并保持字符串相同,但更改为跳过值。

例如,如果字符串是:

$str = 'type=showall&skip=20'

$newSkip = 40

然后我希望将其退回:

$str = 'type=showall&skip=40'

如果没有跳过值:

$str = 'type=showall'

$newSkip = 20

然后我希望将其退回:

$str = 'type=showall&skip=20'

我是PHP的新手,所以仍然找到我的方式使用各种功能,并且当你正在寻找的文本/值可能/可能不是时,不确定在这种情况下哪一个是最好的。在字符串中。

1 个答案:

答案 0 :(得分:3)

PHP有一个名为parse_str()的便捷函数,它接受类似于你拥有的字符串,并返回一个带键/值对的数组。然后,您就可以检查特定值并进行所需的更改。

$str = 'type=showall&skip=20';

// this will parse the string and place the key/value pairs into $arr
parse_str($str,$arr);

// check if specific key exists
if (isset($arr['skip'])){
    //if you need to know if it was there you can do stuff here
}

//set the newSkip value regardless
$arr['skip'] = $newSkip;

echo http_build_query($arr);

http_build_query函数会将数组返回到您开始使用的相同URI格式。此函数还对最终字符串进行编码,因此如果要查看已解码的版本,则必须通过urldecode()发送。

参考文献 -