繁体   English   中英

如何在另一个字符串中插入一个字符串?

[英]How to insert a string inside another string?

只是看看功能

str_pad($input, $pad_length, $pad_str, [STR_PAD_RIGHT, STR_PAD_LEFT, or STR_PAD_BOTH])

这有助于在给定输入的左侧,右侧或两侧填充一些字符串。

有没有我可以用来在输入字符串中插入字符串的php函数?

例如 ..

$input = "abcdef";
$pad_str = "@";

因此,如果我给插入索引3,它会在前3个最左边的字符后插入"@"$input变为"abc@def"

谢谢

你正在寻找一个字符串插入,而不是填充。

填充使一个字符串成为一个设定长度,如果它还没有达到那个长度,所以如果你给垫子长度3到“abcdef”,那么它已经是3,所以什么都不应该发生。

尝试:

$newstring = substr_replace($orig_string, $insert_string, $position, 0);

substr_replace PHP手册

你需要:

substr($input, 0, 3).$pad_str.substr($input, 3)

呸,我误解了这个问题。 您想要一个插入,而不是每X个字符插入一次。 抱歉。

我会留在这里,所以不浪费。

您可以使用正则表达式和一些计算来获得所需的结果(您可能可以使用纯正则表达式,但这会更复杂,更不易读)

vinko@mithril:~$ more re.php
<?php

$test1 = "123123123";
$test2 = "12312";

echo puteveryXcharacters($a,"@",3);
echo "\n";
echo puteveryXcharacters($b,"@",3);
echo "\n";
echo puteveryXcharacters($b,"$",3);
echo "\n";

function puteveryXcharacters($str,$wha,$cnt) {
  $strip = false;
  if (strlen($str) % $cnt == 0) {
    $strip = true;
  }
  $tmp = preg_replace('/(.{'.$cnt.'})/',"$1$wha", $str);
  if ($strip) {
    $tmp = substr($tmp,0,-1);
  }
  return $tmp;
}

?>
vinko@mithril:~$ php re.php
123@123@123
123@12
123$12

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM