Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP操作字符串(如果组件存在,则查找/替换)_Php_String_Query String_Text Manipulation - Fatal编程技术网

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

PHP操作字符串(如果组件存在,则查找/替换),php,string,query-string,text-manipulation,Php,String,Query String,Text Manipulation,我需要使用PHP检查特定文本组件的字符串,如果存在新值,则替换该值。例如,我可能有这样一个字符串: ?customerID=12345&recid=65&skip=20&type=job 我需要找到&skip=20,它并不总是=20,它可以是任何数字,如20、80、100等子字符串,并用变量$newValue中的新值替换20值。因此,如果该字符串存在且$newValue=40,则新字符串将为: ?customerID=12345&recid=65&ski

我需要使用PHP检查特定文本组件的字符串,如果存在新值,则替换该值。例如,我可能有这样一个字符串:

?customerID=12345&recid=65&skip=20&type=job
我需要找到&skip=20,它并不总是=20,它可以是任何数字,如20、80、100等子字符串,并用变量$newValue中的新值替换20值。因此,如果该字符串存在且$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——但我在这方面花了太久的时间,似乎没有更进一步。如果有人能告诉我如何使用这些或其他函数查找子字符串并替换值,我将不胜感激。

试试看

你试过了吗?
<?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;

}