2012-06-18 69 views
1

不知道如果我只是被愚蠢或东西,但在这里不用我的Shape5.com工作,我做了有顶点框架问题的Joomla不断更新,这已经在我们的论坛上几个弹出次错误警告:preg_replace函数()[function.preg替换]:编译失败:在括号不匹配偏移67PHP的preg_replace帮助编译失败:括号不匹配

这是我们的代码

<?php 
$script = "Hello window.addEvent('domready', function(){ new Fx.Accordion($$('div#template-sliders-116.pane-sliders > .panel > h3.pane-toggler'), $$('div#template-sliders-116.pane-sliders > .panel > div.pane-slider'), {onActive: function(toggler, i) {toggler.addClass('pane-toggler-down');toggler.removeClass('pane-toggler');i.addClass('pane-down');i.removeClass('pane-hide');Cookie.write('jpanesliders_template-sliders-116',$$('div#template-sliders-116.pane-sliders > .panel > h3').indexOf(toggler));},onBackground: function(toggler, i) {toggler.addClass('pane-toggler');toggler.removeClass('pane-toggler-down');i.addClass('pane-hide');i.removeClass('pane-down');if($$('div#template-sliders-116.pane-sliders > .panel > h3').length==$$('div#template-sliders-116.pane-sliders > .panel > h3.pane-toggler').length) Cookie.write('jpanesliders_template-sliders-116',-1);},duration: 300,opacity: false,alwaysHide: true}); });"; 
$script = preg_replace("/window.addEvent('domready', function(){ new Fx.Accordion(.*?)}); });/", '', $script); 
echo $script; 
?> 

问题是Fx.Accordion被永远改变取决于他们使用的模板,这实际上使我感到困扰,有时它有时不起作用试图逃脱一些没有,但仍然得到错误上面的代码将重现错误,正如我们看到它,如果任何人都可以帮助粉碎。

偏移67是最后一个),并是香港专业教育学院试图逃脱它取出ü命名为香港专业教育学院的尝试:d

我敢打赌,它的一些简单的笑

感谢戴夫

+1

我。眼睛。伤害。 – bos

+0

如果需要将它们解释为文字字符,则需要转义[meta character](http://php.net/regexp.reference.meta)。 – Gumbo

+1

你可以用'回声“你好”替换所有的代码;' – Esailija

回答

2

括号是特殊字符PCRE捕获分组,这需要通过反斜杠,因为这样做{}否则其范围符,点.

$script = preg_replace("/window\.addEvent\('domready', function\(\)\{ new Fx.Accordion\(.*?\)\}\); \}\);/", '', $script); 

我想我已经完全逃脱了。我认为(.*?)并不打算成为一个捕获组。 ?实际上是不必要的,因为.*意味着零个或多个任何字符。

$script = preg_replace("/window\.addEvent\('domready', function\(\)\{ new Fx.Accordion(.*?)\}\); \}\);/", '', $script); 
//-----------------------------------------------------------------------Don't escape ^^^^^ 

更新:如果(.*?)旨在为nongreedy比赛组,然后不要逃避它。

+0

还有'.'来完成。 – Gumbo

+0

@Gumbo是的,我仍在扫描我错过的其他东西。 –

+0

香港专业教育学院刚刚运行的代码,它什么都不做IM affraid:d我想留下什么是公正你好 – BigDave