Preg_replace在数字前插入字符串

时间:2012-11-08 21:02:16

标签: php wordpress preg-replace

如何在数字前插入字符串?

我有以下Wordpress功能:

get_the_term_list( $post->ID, 'level', '', ', ', '' )

此功能输出如下数字:

<a href="#">1</a>

或者,如果数据库中有多个条目:

<a href="#">1</a>, <a href="#">2</a>

如何在号码前插入“等级”?所以它看起来像这样:

<a href="#">level 1</a>

或者:

<a href="#">level 1</a>, <a href="#">level 2</a>

4 个答案:

答案 0 :(得分:4)

Function Reference/get the term list

wordpress手册会告诉你具体的方法。

我不使用wordpress但是通过傻笑“wordpress get_the_term_list”找到它

答案 1 :(得分:1)

您只需匹配该号码即可。正则表达式\d+可用于小数。

 $text = preg_replace('#>(\d+)<#', '>level $1<', $text);

您可以使用><个锚点。这里$1重新插入找到的小数。

答案 2 :(得分:0)

您将如何做到这一点:

get_the_term_list( $post->ID, 'level', 'Level: ', ', ', '' );

参考:http://codex.wordpress.org/Function_Reference/get_the_term_list

修改

get_the_term_list中的wp-includes/category-template.php修改为

/**
 * Retrieve a post's terms as a list with specified format.
 *
 * @since 2.5.0
 *
 * @param int $id Post ID.
 * @param string $taxonomy Taxonomy name.
 * @param string $before Optional. Before list.
 * @param string $sep Optional. Separate items using this.
 * @param string $after Optional. After list.
  * @param string $beforeEach Optional. After each term.
 * @return string
 */
function get_the_term_list( $id, $taxonomy, $before = '', $sep = '', $after = '', $beforeEach = '' ) {
    $terms = get_the_terms( $id, $taxonomy );

    if ( is_wp_error( $terms ) )
        return $terms;

    if ( empty( $terms ) )
        return false;

    foreach ( $terms as $term ) {
        $link = get_term_link( $term, $taxonomy );
        if ( is_wp_error( $link ) )
            return $link;
        $term_links[] = '<a href="' . esc_url( $link ) . '" rel="tag">'. $beforeEach . $term->name . '</a>';
    }

    $term_links = apply_filters( "term_links-$taxonomy", $term_links );

    return $before . join( $sep, $term_links ) . $after;
}

用法:

get_the_term_list( $post->ID, 'level', '', ', ', '', 'Level: ');

答案 3 :(得分:0)

测试这些。您可能需要调整偏移量,pos数字。这将使你获得99%。

$ numPos = strpos($ string,“1”);

$ firstStr = substr($ string,0,$ pos); $ secondStr = substr($ string,$ pos);

$ newStr = $ firstStr。 “水平”。 $ secondStr;