1

我对 preg_match_all 有疑问,这是我的 PHPfile 中的一个函数:

function get_images ($content){

  preg_match_all ('#\\[img\\](.+?)\\[/img\\]#ie', $content, $preg_array);
  if (count ($preg_array[1]) != 0){
    foreach ($preg_array[1] as $item){
        if ($this->reset_url($_SERVER['HTTP_HOST'])!=$this->reset_url($item)){
            if (!(in_array ($item, $this->images))){
                $this->images[] = $item;
                continue;
            }
        }
    }
  }
}

使用该代码,我只能从简单的 [img][/img] 标签中提取图像,例如:

[img]http://www.domain.com/image.jpg[/img]

我不能使用带有对齐的 img 标签,例如:

[img=left]http://www.domain.com/image.jpg[/img]

我如何修复此功能以使用两个图像标签?

4

2 回答 2

3
#\[img(:?.*)?\](.*?)\[/img\]#

这将忽略其中的任何内容[img=foo],仅获取源信息。

于 2013-04-02T08:08:12.237 回答
2

用这个,

preg_match_all ('#\\[img.*\\](.+?)\\[/img\\]#ie', $content, $preg_array);

Codeviper 演示。

于 2013-04-02T08:03:24.010 回答