我如何检查前几个字符,如果在PHP中第一次匹配x,那么在最初几次之后添加字符?

时间:2016-06-12 03:23:09

标签: php wordpress

我想执行三个步骤:

  1. 检查字符串变量的前几个字符(ffc)。
  2. 如果ffc = x(另一个字符串)那么
  3. x之后插入ffc,但在ffc中的任何其他内容之前插入。{/ li>

    如何在PHP中完成此操作?

    实际使用案例:

    我正在使用WordPress并抓取the_content()并将其移至变量$content

    我希望在$ content中的文本前面显示一些字符,但WP自动添加<p>标签(如果wpautop已打开,我想避免将其关闭),这意味着我添加的字符出现在上方而不是与$content在同一行。

    此处的目标是检查$content是否以<p>开头,以及是否在<p>字符“摘要:”之后插入。

    这是我到目前为止(它没有工作):

    <?php
     $content = get_the_content();
     echo $content;
     $hasP = substr($content, 0, 3);
     echo $hasP; 
     If ($hasP == '<p>') {
       echo "Yes!";
       $newString = substr($string, 3);
       echo $newString;
     };
     ?>
    

    不幸的是,当我回显$ newString时,WP似乎只是重新添加了<p>

1 个答案:

答案 0 :(得分:0)

所以,这花了很长时间让我弄明白,但这是我提出的解决方案(错误,让其他人偷走):

<?php
add_filter('the_content', 'before_after');
$content = the_content();
echo $content;
?>

然后真正的魔法发生在这里:

function before_after($content) {
    $content = preg_replace('/<p>/', '<span>', $content, 1);
    $content = preg_replace('/<\/p>/', '</span>', $content, 1);
    return $content;
}

在上文中,我实际上超出了我最初的陈述,取而代之的是开始和结束<p>