PHP:提取图像并修改其输出

PHP:提取图像并修改其输出,php,image,resize,Php,Image,Resize,我想为我的图像使用一个调整大小的脚本()。我试图从数据库中提取文章中包含的第一个图像,并将脚本的路径以及一些额外的说明添加到其中: <?php $content = $post->post_content; preg_match_all('/src=\"https?:\/\/[\S\w]+\"/i', $content, $matches, PREG_SET_ORDER); foreach($matches as $e)

我想为我的图像使用一个调整大小的脚本()。我试图从数据库中提取文章中包含的第一个图像,并将脚本的路径以及一些额外的说明添加到其中:

    <?php
        $content = $post->post_content;
        preg_match_all('/src=\"https?:\/\/[\S\w]+\"/i', $content, $matches, PREG_SET_ORDER);
        foreach($matches as $e)
        echo '<img src="http://site/scripts/timthumb.php?'.$e[0].'&h=320&w=214&zc=1" title="" alt="">';
        {
        }
    ?>

虽然这是我所需要的,但它在标签的中间添加了一些双引号,这些双引号缺少图像的路径(同样的双引号,我需要检测图像):


因此,我的问题是:

  • 你如何移除这些 双引号(当我需要它们时) 第一时间寻找一个 模式
  • 还有,你会怎么做 只拉帖子中的第一张图片

  • 非常感谢您的任何输入首先,使用括号捕获您需要的内容,即URL本身。其次,如果您只需要第一张图像,则只需使用preg_match,而不是preg_match_all:

    $content = $post->post_content;
    if (preg_match('/src=\"(https?:\/\/[\S\w]+)\"/i', $content, $match))
    {
        echo '<img src="http://site/scripts/timthumb.php?'.
            urlencode($match[1]).'&h=320&w=214&zc=1" title="" alt="">';
    }
    
    $content=$post->post\u内容;
    if(preg\u match('/src=\“(https?:\/\/[\S\w]+)\“/i',$content,$match))
    {
    回声';
    }
    
    注意正则表达式的URL部分是如何用()标记的——因为这是第一个括号中的表达式,所以它将是$match数组的元素1


    我还对图像URL进行了URL编码,以确保匹配中的任何内容都正确编码,以便在URL中使用。

    Paul:太好了!非常感谢。我使用它时没有使用urlencode,因为它给了我“%”符号-这是我的配置吗?我正在本地与WAMP合作。%符号是URL编码!如果你得到它们,它表明你有需要编码的字符!
    $content = $post->post_content;
    if (preg_match('/src=\"(https?:\/\/[\S\w]+)\"/i', $content, $match))
    {
        echo '<img src="http://site/scripts/timthumb.php?'.
            urlencode($match[1]).'&h=320&w=214&zc=1" title="" alt="">';
    }