【问题标题】:preg_replace on part of database querypreg_replace 部分数据库查询
【发布时间】:2012-02-23 17:57:32
【问题描述】:

我想这对专家来说是小菜一碟……我已经把头发扯掉了。 好的,我必须对一块 WordPress 的“posts_where”查询执行 preg_replace。这是原片:

$where = " AND (((wp_posts.post_title LIKE '%lorem%') OR (wp_posts.post_content LIKE '%lorem%')*INSERTION*)) AND wp_posts.post_type IN ('post') AND (wp_posts.post_status = 'publish')" 

请注意上面的 INSERTION,我唯一要做的就是插入另一个 OR 条件/子句。 有没有办法用 preg_replace 做到这一点?要不然?比如:

$where = preg_replace( "REGEX", $my_INSERTION_stuff, $where );

非常感谢!

编辑

有人愿意为奖品解决问题吗?这真的很重要!

【问题讨论】:

    标签: wordpress preg-replace


    【解决方案1】:

    你甚至不需要 preg_replace,只需使用 str_replace:

    $where = str_replace( "*INSERTION*", $my_INSERTION_stuff, $where );
    

    【讨论】:

    • 我想我不明白,对不起。
    • 哦,对不起 - 我误会了你。
    • INSERTION 表示需要插入新内容的确切位置,它根本不存在于那种(书面)形式中。抱歉,如果不够清楚。
    【解决方案2】:

    现在我意识到它可能是多么简单!希望它可以帮助某人。

    $where = preg_replace("/(AND.*?\))(\)\))/", "$1{$insertion}))", $where, 1);
    

    【讨论】:

      猜你喜欢
      • 2011-09-14
      • 2018-08-07
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 2015-02-21
      • 2011-03-02
      • 1970-01-01
      相关资源
      最近更新 更多