[英]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($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.