【发布时间】:2015-11-11 23:13:39
【问题描述】:
我正在尝试替换每个问号“?”在具有数组值的字符串中。
我需要遍历一个字符串,并替换第一次出现的 '?'在带有值的字符串中。每次出现我都需要这样做
这是我尝试过的
function sprintf2($str='', array $values = array(), $char = '?')
{
if (!$str){
return '';
}
if (count($values) > 0)
{
foreach ($values as $value)
{
$str = preg_replace('/'. $char . '/', $value, $str, 1);
}
}
echo $str;
}
但我得到以下异常
preg_replace(): 编译失败:偏移 0 处没有可重复的内容
下面显示了我是如何调用函数的
$bindings = array(10, 500);
$str = "select * from `survey_interviews` where `survey_id` = ? and `call_id` = ? limit 1";
sprintf2($str, $bindings);
我在这里做错了什么?为什么会出现这个异常?
【问题讨论】:
-
您可能会从准备好的语句中受益。看看这个example at php.net。还有this one.
-
@showdev 我实际上想打印正在服务器上执行的实际查询。我想用纯文本打印它来评估它的价值
标签: php regex replace preg-replace