只看功能
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"
。
谢谢
答案 0 :(得分:64)
您正在寻找字符串插入,而不是填充。
填充使一个字符串成为一个设定的长度,如果它不在那个长度,所以如果你给一个填充长度3到“abcdef”,那么它已经是3,所以什么都不应该发生。
尝试:
$newstring = substr_replace($orig_string, $insert_string, $position, 0);
答案 1 :(得分:3)
你需要:
substr($input, 0, 3).$pad_str.substr($input, 3)
答案 2 :(得分:2)
呸,我误解了这个问题。您想要一个插入,而不是每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