美好的一天EB! 我是一个php新手,我遇到了一些简单的任务。
我想在第5个fullstop之后插入一个字符串到post内容。但是,我仍然坚持编写替换的第一步。之后,我将向$ pos添加计数。 我也尝试使用substr_replace()。
这是我的主题的function.php文件中的代码。
function replace_content($content)
{
$oldstr = $content;
$str_to_insert = "tst";
$pos = 30;
$new_content = substr($oldstr, 0, $pos) . $str_to_insert . substr($oldstr, $pos);
return $new_content;
}
add_filter('the_content','replace_content');
它没有返回预期的结果。 感谢您的建议和帮助。
答案 0 :(得分:1)
我不确定,是否存在任何内置方法。但是,您的问题有解决方法
您可以使用explode
并循环播放
$array = array(".",$content); //split by fullstop and store it in array
$new_content = ""
$str_to_insert = "tst";
$count=1
foreach($array as $value) { // loop through the array now
if($count==5)
{
$new_content = $new_content.$value.$str_to_insert."."; // insert string on fifth occurrence
}
else
{
$new_content = $new_content.$value."."; // otherwise just append string as it was
}
$count++;
}
答案 1 :(得分:1)
你可以使用explode函数在第五次'。'之后添加字符串。例如,您可以使用以下函数:
function replace_content($content)
{
$str_to_insert = "tst";
$pos = 5;
$data = explode(".", $content);
$data[5] = $str_to_insert . " " . $data[5];
$new_content = implode(".", $data);
return $new_content;
}