我有一个大问题。我正在使用PHP开发一个旧项目。它使用PHP 5.1.6。我无法升级到其他版本。
我使用的是梨包:DB和DB / common.php中有一个函数"函数prepare($ query)",它有一个" preg_split&#34 ;在乞讨时打电话:
$tokens = preg_split('/((?<!\\\)[@&?^])/', $query, -1, PREG_SPLIT_DELIM_CAPTURE);
我的查询是这样的:
INSERT into Logs ( log_uid, evuid, evtype, evinfo ) values (?, ?, ?, ?)
我现在面临的一大问题是,在DEV服务器上,我在分割后得到了这个结果:
array(9) {
[0]=>
string(248) "insert into Log ( log_uid, evuid, evtype, evinfo ) values ("
[1]=>
string(1) "?"
[2]=>
string(2) ", "
[3]=>
string(1) "?"
[4]=>
string(2) ", "
[5]=>
string(1) "?"
[6]=>
string(2) ", "
[7]=>
string(1) "?"
[8]=>
string(1) ","
这是正确的版权
但是,我在当地得到了这个:
array
0 => string '' (length=0)
1 => string 'i' (length=1)
2 => string 'n' (length=1)
3 => string 's' (length=1)
4 => string 'e' (length=1)
5 => string 'r' (length=1)
6 => string 't' (length=1)
7 => string ' ' (length=1)
8 => string 'i' (length=1)
9 => string 'n' (length=1)
10 => string 't' (length=1)
11 => string 'o' (length=1)
12 => string ' ' (length=1)
13 => string 'L' (length=1)
14 => string 'o' (length=1)
15 => string 'g' (length=1)
16 => string 'X' (length=1)
17 => string 'A' (length=1)
18 => string 'd' (length=1)
19 => string 'm' (length=1)
20 => string 'i' (length=1)
21 => string 'n' (length=1)
22 => string ' ' (length=1)
23 => string '(' (length=1)
.
.
.
.
列表很长,与过去的所有事情无关。
我现在的问题是:导致这种差异的原因是什么? 测试服务器有旧版Linux Redhat,我的本地虚拟机有Ubuntu 12.04.5。我使用相同的配置选项安装了php,但仍然存在这种差异。
Pcre版本也相同:&#34; PCRE库版本:6.6 06-Feb-2006&#34;
任何想法都表示赞赏。
谢谢!