为了账号安全,请及时绑定邮箱和手机立即绑定

替换帖子内容中的多个域

替换帖子内容中的多个域

PHP
HUH函数 2023-09-15 09:42:17
我有一个包含域的数组,我想替换 WordPress 中的内部帖子内容。我的功能很简单,使用 preg_replace。<?phpadd_filter( 'the_content', 'filter_the_content' );function filter_the_content( $content ) {  $domains = array('domain1.com/out/','domain2.com/out/');  if ( is_single() ) {      $content = preg_replace("/^(http(s)?:\/\/)?((w){3}.)?(".implode('|', $domains)."?([a-zA-Z0-9_]{2,5}.)?(\/out)?\/.+/i", 'https://domain3.com/out', $content);  }  return $content;}?>应用过滤器后,我的内容消失了,我不知道如何让它工作,替换数组中的域。
查看完整描述

1 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

在您的正则表达式中,您有两倍的扩展名和/out/.


你可以用以下方法解决这个问题:


$content = 'blah https://domain1.com/out/ blah https://domain2.com/out/ blah https://domainXXX.com/out/ blah';

$domains = array('domain1.com/out/','domain2.com/out/');

$content = preg_replace("~(?:https?://www)?(?:".implode('|', $domains).")~i", 'https://domain3.com/out', $content);

echo $content;

输出:


blah https://https://domain3.com/out blah https://https://domain3.com/out blah https://domainXXX.com/out/ blah

演示和解释


查看完整回答
反对 回复 2023-09-15
  • 1 回答
  • 0 关注
  • 45 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信