• April 27, 2018

    This is what the function returns:
    http://www.domain.com/wp-content/uploads/2014/09/image.jpg

    This is what I need:
    wp-content/uploads/2014/09/image.jpg

    function catch_first_image()
    {
        global $post, $posts;
        $first_img = '';
        ob_start();
        ob_end_clean();
        $output = preg_match_all( '/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches );
        $first_img = $matches[1][0];
    
        echo $first_img;
    }

    ตอบ

    $output = preg_match_all( "/<img.*https?:\/\/[^\/]+\/([^\"']+)[\"'].*/i", $post->post_content, $matches );
    echo $matches[1][0];

    Demo
    https://ideone.com/8kKyDR

    Explanation:

    .* => any character zero or more times
    https? => http or https
    [^\/]+ => any character other than / at least one time
    [\"'] => double or single quote

    ตอบ

    Use this expression:

    ~<img.+?src=['"]http://www\.domain\.com/([^'"]+)['"].*?>~i

    Demo

    https://regex101.com/r/kS6fK0/1

    I just literally matched http://www.domain.com outside of your first capture group you reference. Note that I changed delimiters to ~ so we don’t need to escape slashes. You may want to change this to https?://(?:www\.)? to make things more flexible. Don’t forget to escape periods. Also, I made your dot-match-all repetitions lazy to save you from headaches in the future (.+? and .*?).

    ตอบ

    <img.+?https?://[^\/]+\/\K[^\"']+

    Demo

    https://stackoverflow.com/questions/25876431/using-preg-match-all-to-return-part-of-images-url-in-wordpress



เวอไนน์ไอคอร์ส

ประหยัดเวลากว่า 100 เท่า!






เวอไนน์เว็บไซต์⚡️
สร้างเว็บไซต์ ดูแลเว็บไซต์

Categories