preg_match 让一条不需要的线溜过
preg_match lets an unwanted line slip through
我正在使用 preg_match 将条件放在线上,以便在循环中处理。
这是我的代码:
$import = 'LT_VALUES2';
$contents = explode('-',$import,2);
$line = 'DATA LT_VALUES2 TYPE TABLE OF RGSB4 WITH HEADER LINE,';
if(preg_match('/(DATA $import)/i',$line) == 0 && preg_match("/($import\b|$contents[0]\W)/i",$line) == 1 && preg_match("/[']/",$import) == 0 && preg_match("/(\D)/",$import) == 1)
{
无缘无故到达这里
}
为什么无法处理我提供的条件?我在 phptester.net 测试了相同的代码,它按我想要的方式工作
单引号字符串不会插入变量,这可能正是您所期望的。
'/(DATA $import)/i'
字面意思是 /(DATA $import)/i
.
另一方面;
"/(DATA $import)/i"
将插值到 /(DATA LT_VALUES2)/i
我正在使用 preg_match 将条件放在线上,以便在循环中处理。 这是我的代码:
$import = 'LT_VALUES2';
$contents = explode('-',$import,2);
$line = 'DATA LT_VALUES2 TYPE TABLE OF RGSB4 WITH HEADER LINE,';
if(preg_match('/(DATA $import)/i',$line) == 0 && preg_match("/($import\b|$contents[0]\W)/i",$line) == 1 && preg_match("/[']/",$import) == 0 && preg_match("/(\D)/",$import) == 1)
{
无缘无故到达这里
}
为什么无法处理我提供的条件?我在 phptester.net 测试了相同的代码,它按我想要的方式工作
单引号字符串不会插入变量,这可能正是您所期望的。
'/(DATA $import)/i'
字面意思是 /(DATA $import)/i
.
另一方面;
"/(DATA $import)/i"
将插值到 /(DATA LT_VALUES2)/i