替换 PHP 中的字符串,同时使用字符串中的信息


Replace strings in PHP while using info from the string

我当前的客户的目标是一个封闭的文本查看器,同时为客户保持某些变量开放。这是为了显示文本的预览,同时不依赖客户端来获取整个文本。目前,我想到了一个包含输入元素的表单。这些元素将动态填充到文本中的某些范围中,以便客户端能够看到预览。提交表单后,服务器端会将标识符替换为输入。

我目前的想法是让我的客户创建一个包含标识符的文本,客户端可以填写或使用复选框显示。所有这些元素都存储在 mysql 数据库中,这可能会导致如下所示:

You are thinking about %el1%, and you want to create %el2%. %bl3%

这是使用以下输入。

<input type="text" name="el1">
<input type="text" name="el2">
<input type="checkbox" name="bl3">

要用 A( 元素替换这些标识符,这些元素可以通过 Javascript 更改,B( 可以在完整文档中用 PHP 替换。

You are thinking about <span id="el1"></span>, and you want to create <span id="el2"></span>. <span id="bl3" style="display:none;">This is a text that is retrieved from the database, and shown when the user checks the checkbox</span>

我不知道这是否是一个好主意,但客户希望它是这样的。这样,客户端无法编辑全文,而只能输入某些输入。我将在客户端和服务器端验证这些内容。

这是个好主意吗?如果没有,我该怎么办?如果是,我如何创建一个循环,该循环将根据 %el1% 或 %bl3% 查找这些标识符,并将其替换为<span>标签或提交的变量?

$phrase  = "You are thinking about %el1%, and you want to create %el2%. %bl3%.";
$healthy = array("%el1%", "%el2%", "%bl3%");
$yummy   = array("el1", "el2", "bl3");
$newphrase = str_replace($healthy, $yummy, $phrase);
你也可以

使用 sprintf((:

$output = sprintf(
    "You are thinking about %1$s, and you want to create %2$s. %3$s",
    $el1, $el2, $bl3
);

%1$s将被替换为$el1等的值。