Присвойте их проектам, которые не требуют "высшего качества стабильный код", если это - Ваше беспокойство, и позвольте разработчику младшему перестать работать. Сделайте, чтобы они были одним для 'вхождения в выходные' для исправления их ошибок. Пообедайте много и разговор о методах разработки программного обеспечения (не лекции, но обсуждения). Вовремя они получат и разработают лучшие практики, чтобы сделать задачи, которые им присваивают.
, Кто знает, они могли бы даже придумать что-то лучше, чем методы, которые в настоящее время использует Ваша команда.
Ваш шаблон замены выглядит нормально, но поскольку вы использовали одинарные кавычки в шаблоне соответствия, ваша переменная $ num не будет вставлена в него. Вместо этого попробуйте
$patterns[] = '/<ces>(.*?)\+'.$num.'(.*?)<\/ces>/';
$replacements[] = '<ces>$1<'.$text.'/>$2</ces>';
. Также обратите внимание, что при построении шаблона из «неизвестных» входных данных, как это, обычно рекомендуется использовать preg_quote . например
$patterns[] = '/<ces>(.*?)\+'.preg_quote($num).'(.*?)<\/ces>/';
Хотя я предполагаю, что, учитывая имя переменной, в вашем случае оно всегда числовое.
Переменные будут раскрыты только в строках, объявленных в двойных кавычках . Поэтому либо используйте двойные кавычки:
$patterns[] = "/<ces>(.*?)\\+$num(.*?)<\\/ces>/";
$replacements[] = "<ces>$1<$text/>$2</ces>";
, либо конкатенацию строк:
$patterns[] = '/<ces>(.*?)\+'.$num.'(.*?)<\/ces>/';
$replacements[] = '<ces>$1<'.$text.'/>$2</ces>';
Вам также следует взглянуть на preg_quote
, если ваши переменные могут содержать метасимволы регулярных выражений.