php搜索和替换

时间:2010-05-06 17:25:13

标签: php

我正在尝试使用php

创建一个数据库字段合并到文档(rtf)中

即如果我有一个开始的文件

亲爱的先生,

客户名称:[customer_name],订单日期:[order_date]

检索到适当的数据库记录后,我可以使用简单的搜索和替换将数据库字段插入到正确的位置。

到目前为止一切顺利。

然而,我想在更换数据之前对数据进行更多控制。例如,我可能希望标题为它,或者将带分隔符的字符串转换为带有回车符的列表。

因此,我希望能够在要替换的字段中添加额外的格式化命令。 e.g。

亲爱的先生,

客户名称:[customer_name,TC],订单日期:[order_date,Y / M / D]

每个字段可能有多个格式化命令。

现在我有办法搜索这些字符串吗?字符串的格式不是一成不变的,所以如果我必须更改格式,那么我可以。

任何建议表示赞赏。

3 个答案:

答案 0 :(得分:1)

您可以使用像Smarty这样的模板系统,这可能会让您的生活更轻松,因为您可以{$customer_name|ucwords}或实际将PHP代码放入电子邮件模板中。

答案 1 :(得分:0)

您可以使用explode将它们分隔为数组值。

例如:

$customer_name = 'customer_name, TC';
$get_fields = explode(',', $customer_name);

foreach($get_fields as $value)
{
  $new_val = trim($value);
  // Now do whatever you want to these in here.
}

很抱歉,如果我不理解你。

答案 2 :(得分:0)

尝试使用RegEx和preg_replace_callback

function replace_param($matches)
{
  $parts = explode(',',$matches[0]);
  //$parts now contains an array like: customer_name,TC,SE,YMD
  // do some substitutions and:
  return $text;
}
preg_replace_callback('/\[([^\]]+)\]/','replace_param',$rtf);