PHP-为什么不是';t准备替换工作?

PHP-为什么不是';t准备替换工作?,php,preg-replace,Php,Preg Replace,我正在尝试替换[picasa and],但下面的代码段不起作用 $vars = '[picasa flashvars="host=picasaweb.google.com&hl=en_US&feat=flashalbum&RGB=0x000000&feed=https%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2F100016363917755589270%2Falbumid%2F5578059

我正在尝试替换[picasa and],但下面的代码段不起作用

$vars = '[picasa flashvars="host=picasaweb.google.com&hl=en_US&feat=flashalbum&RGB=0x000000&feed=https%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2F100016363917755589270%2Falbumid%2F5578059546640576577%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" width="288" height="192"]';

$patterns[0] =  "/\[picasa\] /";
$patterns[1] = "/\]/";

$replacements[0] = "<embed type='application/x-shockwave-flash' src='https://picasaweb.google.com/s/c/bin/slideshow.swf'";
$replacements[1] = " pluginspage='http://www.macromedia.com/go/getflashplayer'>";


$match = preg_replace($patterns,$replacements,$vars);
echo $match;
$vars='[picasa flashvars=“host=picasaweb.google.com&hl=en_US&feat=flashalbum&RGB=0x000000&feed=https%3A%2F%2Fpicasaweb.google.com%2Fdata%2feed%2feid%2Fapi%2Fuser%2f10001633917755589270%2Falbumid%2f557805954676577%3fLt%3Drss%26kind%3Dphoto%26hl%3Den_-US“width=”288“height=“192”];
$patterns[0]=“/\[picasa\]/”;
$patterns[1]=“/\]/”;
$replacements[0]=“”;
$match=preg_replace($patterns,$replacements,$vars);
回声$匹配;
我知道我可以用str_替换,但我想用preg_替换


我在这里做错了什么吗?

$patterns[0]
匹配
[picasa]
中没有的
$vars

应该是:

preg_replace('/\[picasa\s*([^\]]+)\]/',$replacements[0].'$1'.$replacements[1],$vars);