Php str_replace()函数和多个变量?

Php str_replace()函数和多个变量?,php,Php,这将很难解释,所以我会尽量让它成为一个按时间顺序排列的故事,并以这个问题结束,这样任何需要对我所说内容有一个相对深入的了解的人都会有一个:) 我有一个主题模板,有四个文本容器,分别名为主标题,主标题子行,次标题和次标题子文本。每个容器的内容来自echo($container\u name) 每个容器都有自己的变量,$container\u name,它将用户创建的内容发布到表单中,有时包含变量$city\u name和$ref\u name作为原始数据的内容(即“你好,我来自$city\u na

这将很难解释,所以我会尽量让它成为一个按时间顺序排列的故事,并以这个问题结束,这样任何需要对我所说内容有一个相对深入的了解的人都会有一个:)

我有一个主题模板,有四个文本容器,分别名为
主标题
主标题子行
次标题
次标题子文本
。每个容器的内容来自
echo($container\u name)

每个容器都有自己的变量,
$container\u name
,它将用户创建的内容发布到表单中,有时包含变量
$city\u name
$ref\u name
作为原始数据的内容(即“你好,我来自$city\u name”),因为
$city\u name
$ref\u name
都有赋值,为了便于讨论,让我们只说
$city\u name
=
Dallas
$ref\u name
=
Facebook

最初,我认为我只希望用户能够在
次要子文本
容器中使用
$city\u name
$ref\u name
,我还打算首先让用户选择使用
$city\u name
$ref\u name
(他们必须选择其中一个,或者选择另一个,或者不选择,但不能同时选择两者

但是,我现在希望允许所有四个容器变量(
$secondary\u subtext
)中的
$city\u name
$ref\u name

所以,我的问题是,我该如何以最简单的方式做到这一点

以下是我的旧代码:

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];
    }
}