Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何替换WordPress外部内容中的HTML?_Php_Html_Regex_Wordpress_Replace - Fatal编程技术网

Php 如何替换WordPress外部内容中的HTML?

Php 如何替换WordPress外部内容中的HTML?,php,html,regex,wordpress,replace,Php,Html,Regex,Wordpress,Replace,我想插入barba.js包装器来启用主标记周围的barba 当前代码如下所示 <main> <article> ........ </article> </main> <div id="barba-wrapper"> <div class="barba-container"> <main> <article>

我想插入barba.js包装器来启用主标记周围的barba

当前代码如下所示

<main>
    <article>
        ........
    </article>
</main>
<div id="barba-wrapper">
    <div class="barba-container">
        <main>
            <article>
                ........
            </article>
        </main>
    </div>
</div>
add_filter('the_content', function($content) {
    $content = str_replace('<div id="barba-wrapper"><div 
    class="barba-container"><main>', '<main>', $content);
    $content = str_replace('</main>', '</main></div></div>', $content);
    return $content;
});

........
我想要的是下面的样子

<main>
    <article>
        ........
    </article>
</main>
<div id="barba-wrapper">
    <div class="barba-container">
        <main>
            <article>
                ........
            </article>
        </main>
    </div>
</div>
add_filter('the_content', function($content) {
    $content = str_replace('<div id="barba-wrapper"><div 
    class="barba-container"><main>', '<main>', $content);
    $content = str_replace('</main>', '</main></div></div>', $content);
    return $content;
});

........
如果主标记位于“theu content”过滤器内,我可以编写如下代码

<main>
    <article>
        ........
    </article>
</main>
<div id="barba-wrapper">
    <div class="barba-container">
        <main>
            <article>
                ........
            </article>
        </main>
    </div>
</div>
add_filter('the_content', function($content) {
    $content = str_replace('<div id="barba-wrapper"><div 
    class="barba-container"><main>', '<main>', $content);
    $content = str_replace('</main>', '</main></div></div>', $content);
    return $content;
});
add_filter('the_content',function($content){
$content=str_replace(“”,,$content);
$content=str_replace(“”,,$content);
返回$content;
});
但是,
不在
内容过滤器内,上述功能不起作用


还有什么可以替代的吗?关于这一点有什么警告吗?

我猜这是一个类似于:

(<main>(.*?)<\/main>)
(*?)
可能在这里工作

测验
$re='/(.*)/s';
$str='1
我们希望这里有一些内容
';
$subst='$1';
$result=preg_replace($re,$subst,$str);
回声$结果;
基于此,我们的代码可能如下所示:

$re = '/(<main>(.*?)<\/main>)/s';
$subst = '<div id="barba-wrapper"><div class="barba-container">$1</div></div>';
$result = preg_replace($re, $subst, $content);

echo $result;
$re='/(.*)/s';
$subst='$1';
$result=preg_replace($re,$subst,$content);
回声$结果;

Hi@Emma,很抱歉没有提供信息。我添加了当前代码和所需的输出。