【问题标题】:PHP manipulate string (find/replace if component present)PHP 操作字符串(如果存在组件,则查找/替换)
【发布时间】:2012-05-05 05:16:28
【问题描述】:

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

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

我需要找到“&skip=20”(它不会总是 = 20,它可以是任何数字,例如 20、80、100 等)子字符串,并将“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——但我在这方面花了太长时间,而且似乎没有更进一步。如果有人可以告诉我如何使用这些或其他函数来查找子字符串并替换将不胜感激的值。

【问题讨论】:

标签: php string query-string text-manipulation


【解决方案1】:

试试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;

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-18
    • 2020-12-22
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多