2012-06-18 67 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