帮忙分析一下这段PHP程序里正则表达式的含义

bluekangkang 2009-11-10 04:20:20
帮忙分析一下这段PHP程序里正则表达式的含义

这段程序是用来分析SQL语句的

$flag = PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY;
$tokens = preg_split('/(\'(?:(?:\\\\\')|(?:\'\'))*(?:[^\']+(?:(?:\\\\\')|(?:\'\'))*)+\')/', $query, -1, $flag);
$sql = "";
foreach ($tokens as $token) {
if (preg_match('/^\'.*\'$/', $token)) {
$sql .= $token;
continue;
}
if (strpos($token, '?') !== false) {
$sub_tokens = preg_split('/(\?)/', $token, -1, $flag);
foreach ($sub_tokens as $sub_token) {
if ($sub_token == '?') {
$replace = array_shift($args);
if ($replace == null) {
trigger_error("The number of place holder token is not equal the number of data", E_USER_ERROR);
}
mysql_real_escape_string($replace, $this->_connection);
$sql .= "'$replace'";
}
else {
$sql .= $sub_token;
}
}
}
else {
$sql .= $token;
}
}
...全文
48 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluekangkang 2009-11-10
  • 打赏
  • 举报
回复
不错 不过毕竟是机器弄出来的 还需要慢慢理解 先谢过给分
ImGoTop 2009-11-10
  • 打赏
  • 举报
回复
下载个RegexBuddy软件,它会告诉你该正则是什么意思

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧