Это будет довольно сложно объяснить, поэтому я постараюсь сделать это как можно больше хронологической истории и закончить с вопросом, чтобы любой, кто нуждается в относительно глубоком понимании того, о чем я говорю имеет один :).
У меня есть шаблон темы с четырьмя текстовыми контейнерами с именем 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]; } }