WordPress.org

Make WordPress Core

Changeset 12198


Ignore:
Timestamp:
11/17/09 19:25:01 (4 years ago)
Author:
ryan
Message:

Use preg_replace_callback to eliminate eval. Props BenBE1987. fixes #10896

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/post.php

    r12110 r12198  
    714714 */ 
    715715function _fix_attachment_links( $post_ID ) { 
     716    global $_fix_attachment_link_id; 
    716717 
    717718    $post = & get_post( $post_ID, ARRAY_A ); 
     
    741742 
    742743        $post_search[$i] = $anchor; 
    743         $post_replace[$i] = preg_replace( "#href=(\"|')[^'\"]*\\1#e", "stripslashes( 'href=\\1' ).get_attachment_link( $id ).stripslashes( '\\1' )", $anchor ); 
     744         $_fix_attachment_link_id = $id; 
     745        $post_replace[$i] = preg_replace_callback( "#href=(\"|')[^'\"]*\\1#", '_fix_attachment_links_replace_cb', $anchor ); 
    744746        ++$i; 
    745747    } 
     
    751753 
    752754    return wp_update_post( $post); 
     755} 
     756 
     757function _fix_attachment_links_replace_cb($match) { 
     758        global $_fix_attachment_link_id; 
     759        return stripslashes( 'href='.$m[1] ).get_attachment_link( $_fix_attachment_link_id ).stripslashes( $m[1] ); 
    753760} 
    754761 
Note: See TracChangeset for help on using the changeset viewer.