【问题标题】:PHP how to replace multiple stringsPHP如何替换多个字符串
【发布时间】:2017-12-02 10:49:59
【问题描述】:

我是 php 初学者,我遇到了替换和爆炸问题

我想用“:”替换字符串 所有字符串都是未知的!

输入:

string1:string2:string3:string4:
have:a:good:day:
link1:link2:link3:link4:

输出:

string1:string2:newString:string4:
have:a:newString1:day:
link1:link2:newString3:link4:

【问题讨论】:

标签: php


【解决方案1】:

我认为您正在寻找 explodeimplode 函数。你可以做这样的事情,将你的字符串分解成一个数组,你可以修改数组元素,然后将它们组合回一个字符串。

$str = "have:a:good:day:";

$tokens = explode(":", $str);
//$tokens => ["have", "a", "good", "day", ""]

$tokens[2] = "newString1";
//$tokens => ["have", "a", "newString1", "day", ""]

$str2 = implode(":", $tokens);
//$str2 => "have:a:good:day:"

或者,如果您只想替换字符串中的某些单词,您可以使用str_replace 函数将一个单词替换为另一个单词。例如。

$str = "have:a:good:day:";
$str2 = str_replace("good", "newString1", $str);
//$str2 => "have:a:newString1:day:";

【讨论】:

  • 为什么有人会使用 implode 和 explode 来替换字符串?
  • 他询问了爆炸。可能是他想替换元素 N,而不是基于文本替换。不过,我扩展了我的答案以涵盖这两种情况。
  • 但他并没有考虑内爆,而这段代码对于这个简单的任务来说太过分了。如果是这样,用字符串替换和数组标记向他展示真正的解决方案。
  • 您假设您知道用例只是用另一个字符串值替换一个字符串值,从问题中并不清楚,所以我也介绍了这种方法,如果他们想根据元素在字符串中的“位置”。如果您对我的回答不满意,我无法帮助您。我的回答中有两个“真正的”解决方案。编辑:从 OP 的编辑到他们的帖子,看来这是正确的方法,其中的字符串是未知的。
猜你喜欢
  • 2017-12-10
  • 1970-01-01
  • 2011-09-01
  • 2015-11-06
  • 2021-05-31
  • 1970-01-01
相关资源
最近更新 更多