如何在fetch_assoc() result mysql里面右打印结果search preg_replace?
How right print result search preg_replace inside fetch_assoc() result mysql?
$i = $result->fetch_assoc();
preg_replace("/\{(.*?)\}/", $i[""], $content);
错误 - 未定义的变量:$1
// - 'string'; // result search preg_replace()
// $i['string'] = 'hello';
打印语法的正确程度如何'hello'?
变量名不能以 PHP 中的数字开头。必须以下划线或字母开头。
好的,下次请多花点时间问问题:
<?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+
您可以使用 strtr
加快替换速度。为此,您只需要一个关联数组,但这次,所有键都必须用大括号括起来。
$i = $result->fetch_assoc();
$keys = array_map(function($k) { return '{' . $k . '}'; }, array_keys($i));
$trans = array_combine($keys, $i);
$content = strtr($content, $trans);
$i = $result->fetch_assoc();
preg_replace("/\{(.*?)\}/", $i[""], $content);
错误 - 未定义的变量:$1
// - 'string'; // result search preg_replace()
// $i['string'] = 'hello';
打印语法的正确程度如何'hello'?
变量名不能以 PHP 中的数字开头。必须以下划线或字母开头。
好的,下次请多花点时间问问题:
<?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+
您可以使用 strtr
加快替换速度。为此,您只需要一个关联数组,但这次,所有键都必须用大括号括起来。
$i = $result->fetch_assoc();
$keys = array_map(function($k) { return '{' . $k . '}'; }, array_keys($i));
$trans = array_combine($keys, $i);
$content = strtr($content, $trans);