如何在fetch_assoc()结果mysql中正确打印结果搜索preg_replace?

时间:2015-05-17 00:42:54

标签: php preg-replace

// $1 - 'string'; // result search preg_replace()
// $i['string'] = 'hello';

错误 - 未定义的变量:$ 1

<input>

打印'hello'的语法如何正确?

3 个答案:

答案 0 :(得分:2)

好的,下次再花一点时间问这个问题:

<?php

$i['string'] = 'zzzzzzzzzzzzzzzzzzzzzz';
$content = "test test test  {string} testtesttesttesttest";


$x=preg_replace_callback("/\{(.*?)\}/", function($m) use($i){
  return $i[$m[1]];
},  $content);


echo $x;

演示:http://codepad.viper-7.com/u29uKh

对于这种特殊的方法,你需要使用preg_replace_callback()需要PHP 5.3 +

答案 1 :(得分:1)

您可以使用strtr更快地进行替换。为此,您只需要一个关联数组,但这一次,所有键必须用大括号括起来。

$i = $result->fetch_assoc();
$keys = array_map(function($k) { return '{' . $k . '}'; }, array_keys($i));
$trans = array_combine($keys, $i);
$content = strtr($content, $trans);

答案 2 :(得分:0)

变量名不能以PHP中的数字开头。它必须以下划线或字母开头。

相关问题