<?php
$str = '`&tpl = @FILE root / resources / mychank.tpl`';
// Вариант 1 (самый банальный)
$res_str = str_replace(' / ', '/', $str);
print_r($res_str);
// Вариант 2 (импровизация)
$res_str = implode('/', array_map('trim', explode('/', $str)));
print_r($res_str);
// Вариант 3 ( регулярка:) )
$res_str = preg_replace('#\s+/\s+#isu', '/', $str);
print_r($res_str);
UPD:
Щас сижу читаю вот это:
Есть строка `&tpl = @FILE root / resources / mychank.tpl` в корой нужно удалит пробелы перед и после / с учетом того, что / должы находится в внутри `` которое содержит @FILE
К чему это условие (выделенное жирным), если изначально у тебя это и есть вся строка, исходя из:
Есть строка `&tpl = @FILE root / resources / mychank.tpl`
Т.е. получается эта "строка" может находится среди других данных? Или как? Ну т.е., например:
абракадабра / сым-салабым / чудо-юдо `&tpl = @FILE root / resources / mychank.tpl` / тырым-пырым / хали-гали
UPD2:
<?php
$str = 'абракадабра / `&tpl = @NOFILE root / resources / mychank.tpl` /сым-салабым / чудо-юдо `&tpl = @FILE root / resources / mychank.tpl` / тырым-пырым / хали-гали';
function trimSlashes($str) {
// Тут любой из вариантов, которые выше...в данном случае "взяли" третий, чтобы было всё на "регулярках" :)
return preg_replace('#\s+/\s+#isu', '/', $str[0]);
}
$res_str = preg_replace_callback('#`[^`]+@FILE[^`]+`#isu', 'trimSlashes', $str);
print_r($res_str);
Результат:
абракадабра / `&tpl = @NOFILE root / resources / mychank.tpl` /сым-салабым / чудо-юдо
`&tpl = @FILE root/resources/mychank.tpl` / тырым-пырым / хали-гали
P.S.: Правильно составленный вопрос - половина ответа...