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

时间:2012-05-05 05:16:28

标签: php string query-string text-manipulation

我需要使用PHP检查特定文本组件的字符串,并将值替换为新值。例如,我可能有这样的字符串:

?customerID=12345&recid=65&skip=20&type=job

我需要找到“& skip = 20”(它不会总是= 20,它可能是任何数字,如20,80,100等)substring并用新值替换“20”值来自变量($ newValue)。因此,如果该字符串存在且$ newValue = 40,则新字符串将为:

?customerID=12345&recid=65&skip=40&type=job

如果字符串是:

?customerID=12345&recid=65&skip=160&type=job

新字符串将是($ newValue = 180):

?customerID=12345&recid=65&skip=180&type=job

我很确定我应该使用这些函数 - strpos,preg_match,preg_replace - 但是我已经花了很长时间在这上面并且似乎没有接近。如果有人能告诉我如何使用这些或其他函数来查找子字符串并替换值得赞赏的值。

1 个答案:

答案 0 :(得分:0)

尝试preg_replace_callback

<?php

$str = "?customerID=12345&recid=65&skip=20&type=job";
$newStr = preg_replace_callback("/skip=([0-9]+)/i", "doIt", $str)

function doIt($match){

  return $match[1] + 20;

}