str_replace () и несколько переменных?

Это будет довольно сложно объяснить, поэтому я постараюсь сделать это как можно больше хронологической истории и закончить с вопросом, чтобы любой, кто нуждается в относительно глубоком понимании того, о чем я говорю имеет один :).

У меня есть шаблон темы с четырьмя текстовыми контейнерами с именем primary_headline , primary_subline , secondary_headline и secondary_subtext . Содержимое каждого контейнера поступает из echo($container_name) .

Каждый контейнер имеет свою собственную переменную $container_name , которая публикует контент, созданный пользователем, из формы, содержимое которой иногда содержит переменные $city_name и $ref_name качестве исходных данных (т. $ref_name «Привет, я из $ city_name»), как $city_name и $ref_name присвоили значения, для аргументов просто скажем $city_name = Dallas и $ref_name = Facebook .

Первоначально я считал, что я только хотел, чтобы пользователь мог использовать $city_name и $ref_name в контейнере secondary_subtext , и я также собирался сделать вариант использовать $city_name ИЛИ $ref_name выбор пользователя в первую очередь (они должны были выбрать один или другой или ничего, но не могли выбрать оба.

Однако теперь я хочу разрешить $city_name AND $ref_name для всех четырех переменных контейнера (например, $secondary_subtext ).

Итак, мой вопрос: как я могу сделать это самым легким способом?

Вот мой старый код для хорошей оценки:

 if($geo_text == "enable") { $geo_init = include("inc/geo_text.php"); $secondary_headline = str_replace('$city_name', $city_name, $_POST['secondary_headline']); // $_POST data from user } else($ref_text == "enable") { $ref_init = include("inc/ref_text.php"); $secondary_headline = str_replace('$ref_name', $ref_name, $_POST['secondary_headline']); // $_POST data from user } else { $secondary_headline = $_POST['secondary_headline']; } 

Любые комментарии / ответы и т. Д. Будут очень благодарны 🙂 !!

 $placeholders = array('city_name','ref_name'); $include_mapper('geo_text' => 'inc/geo_text.php','ref_text'=>'inc/ref_text.php'); $containers = array('first_headline','scondary_headline'); $found = 0; foreach ($include_mapper as $map => $include){ if ($$map == "enable"){ include ($include_mapper[$map]); foreach ($container as $container){ foreach ($placeholders as $placeholder){ $$container = str_replace('$'.$placeholder, $$placeholder, $_POST[$container]; } } $found = 1; break; } } if (!$found){ foreach ($container as $container){ $$container = $_POST[$container]; } }