У меня есть файл шаблона, который использует структуру [FIRSTNAME] [LASTNAME]
и т. д. и т. д., и я буду выполнять поиск и замену на нем. Одна вещь, которую я хотел бы сделать, это то, что когда шаблон будет отправлен обратно, если я не указал, [FIRSTNAME] …. он все еще отображается в шаблоне … Я хотел бы сделать его NULL, ЕСЛИ я раю Для данных переменных не было данных.
в моем коде я использую FILE_GET_CONTENTS
$q = file_get_contents($filename); foreach ($this->dataArray as $key => $value) { $q = str_replace('['.$key.']', $value, $q); } return $q;
Поэтому, когда этот цикл заполняется надлежащими данными, мне нужно выполнить другой поиск и заменить любые оставшиеся переменные, [FIRSTNAME]
Надеюсь, это имеет смысл, если кто-то может направить меня в правильном направлении.
ура
Похоже, вы просто хотите добавить строку, например:
$q = preg_replace('/\[[^\]]*\]/', '' , $q);
После всех ваших подстановок, чтобы устранить любые оставшиеся квадратные скобки.
Если вы хотите быть краткими, вы можете заменить всю функцию вариацией «движка шаблонов одной строки» по адресу http://www.webmasterworld.com/php/3444822.htm с квадратными скобками вместо завитушек.
Вы можете передать массивы в функцию str_replace в качестве аргументов.
$keys = array( 'FIRSTNAME', 'LASTNAME' ): $replacements = array( 'George', 'Smith' ); str_replace($keys, $replacements, $input);
И если вы хотите удалить первое имя, если оно пустое, почему бы вам просто не добавить его к массиву key => с значением ''
?
$this->dataArray['FIRSTNAME'] = '';
или что-то вроде
if (!isset($this->dataArray['FIRSTNAME'])) { $this->dataArray['FIRSTNAME'] = ''; }