2016-04-10 4 views
0

Я пытаюсь изменить несколько строк в шаблоне. Я использую программное обеспечение vBulletin.создание более одной строки заменить

Это то, что у меня есть:

$drcidl_inc = '<!--/CSS Stylesheet -->'; 
$drcidl_cr = '$vbphrase[powered_by_vbulletin]'; 
$drcrb_hd = '<textarea name=\"message\" id=\"{$editorid}_textarea\" rows=\"10\" cols=\"60\" style=\"width:100%; height:{$editor_height}px\" tabindex=\"1\" dir=\"$stylevar[textdirection]\"></textarea>'; 
$find = '<textarea name=\"message\" id=\"{$editorid}_textarea\"'; 
$replace = '<textarea class=\"form-control comment-form-textarea\" name=\"message\" id=\"{$editorid}_textarea\"'; 
if(strpos($vbulletin->templatecache['headinclude'],$drcidl_inc) !==false)$vbulletin->templatecache['headinclude'] = str_replace($drcidl_inc,fetch_template('drc_iiu_css').$drcidl_inc,$vbulletin->templatecache['headinclude']); 
else $vbulletin->templatecache['headinclude'] .= fetch_template('drc_iiu_css'); 
$vbulletin->templatecache['showthread_quickreply'] = str_replace($find,$replace,$vbulletin->templatecache['showthread_quickreply']); 
$vbulletin->templatecache['showthread_quickreply'] = str_replace($drcrb_hd,$drcrb_hd.fetch_template('drc_iiu_below_txtarea'),$vbulletin->templatecache['showthread_quickreply']); 
$vbulletin->templatecache['footer'] = str_replace($drcidl_cr,$drcidl_cr.fetch_template('drc_iiu_js'),$vbulletin->templatecache['footer']); 

Это работает, но только первый showthread_quickreply str_replace работает. Я не уверен точно, как сформулировать этот вопрос, но как я могу использовать несколько str_replace в одной переменной ...?

Это один я пытаюсь объединить:

$vbulletin->templatecache['showthread_quickreply'] = str_replace($find,$replace,$vbulletin->templatecache['showthread_quickreply']); 
$vbulletin->templatecache['showthread_quickreply'] = str_replace($drcrb_hd,$drcrb_hd.fetch_template('drc_iiu_below_txtarea'),$vbulletin->templatecache['showthread_quickreply']); 

и мне нужно будет добавить еще один к нему еще слишком.

+0

Это звучит, как вы, возможно, потребуется более надежный метод замены, как 'preg_replace_callback()' – Rasclatt

+0

я понял это уже, я просто был неправильный порядок с кодом в этом последнем блоке, перевернув его, он решил его. Я заменял имя textarea, имя класса textarea ... прежде чем другая заменила его. ... если это делает sence lol –

ответ

1

str_replace - это обычная функция php, и ответ да. Для этого вы можете использовать массивы.

Вы должны, однако, убедиться, что массивы имеют одинаковые индексы.

$phrase = "You should eat fruits, vegetables, and fiber every day."; //in your case the vBulletin data 
$healthy = array("fruits", "vegetables", "fiber"); //What you want to find 
$yummy = array("pizza", "beer", "ice cream"); //What you want to replace 

$newphrase = str_replace($healthy, $yummy, $phrase); 

результат:

You should eat your pizza, beer, and ice cream every day. 

взяты из: http://php.net/manual/en/function.str-replace.php

Смежные вопросы