2009-08-02 92 views
0

我想为我的图像使用调整大小脚本(Timthumb)。我试图从包含在后第一个图像数据库提取和路径添加到它的脚本,以及一些额外的指令:PHP:拉图像并修改其输出

<?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="">'; 
     { 
     } 
    ?> 

虽然这是呼应我所需要的,它补充说,在标签的中间,这是缺少图像的路径一些双引号(同双引号,我需要检测图像):

<img src="http://site/scripts/timthumb.php?src="http://site/images/image.jpg"&h=320&w=214&zc=1" title="" alt=""> 

所以我的问题是:

  1. 如何你会做删除这些 双引号(而我需要他们在 第一时间搜索 模式)?
  2. 而且,您会如何处理 只拉第一张图片的帖子?

任何输入

回答

2

非常感谢首先,使用括号来捕捉你需要的位,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="">'; 
} 

注意正则表达式的URL部分是如何标有() - 因为这是第一个括号表示,这将是$ match数组的元素1。

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

+0

保罗:优秀!非常感谢。我在没有urlencode的情况下使用它,因为它给了我'%'标志 - 是我的配置吗?我在WAMP当地工作。 – Peanuts 2009-08-02 12:43:34