当前位置: 首页> 游戏> 评测 > 中国品牌设计公司_名词解释seo_b站视频推广网站动漫_seo招聘信息

中国品牌设计公司_名词解释seo_b站视频推广网站动漫_seo招聘信息

时间:2025/7/14 0:48:35来源:https://blog.csdn.net/weixin_46001736/article/details/144981290 浏览次数:0次
中国品牌设计公司_名词解释seo_b站视频推广网站动漫_seo招聘信息

效果

1、目录

2、aaa.php文件实现效果

3、bbb.php文件实现效果

4、执行后,输出提示

代码

1、aaa.php修改前代码

<?php
$sql = 'SELECT * FROM sf_item_no b WHERE b.status = "active"';
?>

2、bbb.php修改前代码

<?php
$sql = "SELECT * FROM sf_item_no b WHERE b.status = 'active'";
?>

3、脚本代码

<?phpheader('Content-Type: text/html; charset=utf-8');
// 遍历 PHP 文件目录
$phpDir = "H:/software/wampserver/wamp/www/person";
$files = scandir($phpDir);
foreach ($files as $file) {if (pathinfo($file, PATHINFO_EXTENSION) === "php") {$filepath = $phpDir . "/" . $file;processPhpFile($filepath);}
}function processPhpFile($filepath) {// 检查文件是否存在if (!file_exists($filepath)) {echo "文件不存在: $filepath\n";return;}// 检查文件是否可读if (!is_readable($filepath)) {echo "文件不可读: $filepath\n";return;}// 检查文件是否可写if (!is_writable($filepath)) {echo "文件不可写: $filepath\n";return;}// 读取文件内容$content = file_get_contents($filepath);// 正则表达式匹配 SQL 查询$pattern = "/\\\$sql\s*=\s*([\"'])(.*?SELECT.*?FROM.*?sf_item_no.*?)\\1;/is";// 检查是否有匹配if (preg_match_all($pattern, $content, $matches)) {echo "匹配到的内容:\n";print_r($matches); // 输出匹配到的内容$content = preg_replace_callback($pattern, function($matches) {$quote = $matches[1]; // 捕获的引号类型(单引号或双引号)$sql = $matches[2]; // 捕获的 SQL 查询语句$modifiedSql = addEnableFlagCondition($sql, $quote);echo "原始 SQL 查询: $sql\n";echo "修改后的 SQL 查询: $modifiedSql\n";// 返回修改后的 SQL 语句,保留原始引号类型return "\$sql = $quote$modifiedSql$quote;";}, $content);// 将修改后的内容写回文件file_put_contents($filepath, $content);echo "文件已更新: $filepath\n";} else {echo "未找到匹配的 SQL 查询\n";return; // 跳过该文件}
}function addEnableFlagCondition($sql, $quote) {// 动态设置 enable_flag 的引号$enableFlagQuote = ($quote === "'") ? '"' : "'";// 正则表达式匹配 sf_item_no 表及其别名$pattern1 = "/(FROM|JOIN)\s+(?:sf_item_no\s+(\w+)|`sf_item_no`\s+(\w+))\s*(WHERE|ON|$)/i";// 检查是否已经有 WHERE 关键字if (preg_match("/\bWHERE\b/i", $sql)) {// 如果已经有 WHERE,在 AND 后添加 enable_flag 条件$replacement = "$1 sf_item_no $2 $3 WHERE $2.enable_flag = $enableFlagQuote" . "Y" . "$enableFlagQuote AND ";} else {// 如果没有 WHERE,添加 WHERE 和 enable_flag 条件$replacement = "$1 sf_item_no $2 WHERE $2.enable_flag = $enableFlagQuote" . "Y" . "$enableFlagQuote ";}// 替换$sql = preg_replace($pattern1, $replacement, $sql);// 确保 WHERE 和 AND 的顺序正确if (strpos($sql, "WHERE") !== false && strpos($sql, "AND") !== false) {// 如果 WHERE 和 AND 都存在,确保 AND 在 WHERE 之后$sql = preg_replace("/(WHERE.*?)\s+AND\s+/i", "$1 AND ", $sql);}// 确保 WHERE 后面紧跟条件$sql = preg_replace("/WHERE\s*/i", "WHERE ", $sql);// 确保 AND 后面紧跟条件$sql = preg_replace("/AND\s*/i", "AND ", $sql);return trim($sql);
}?>
关键字:中国品牌设计公司_名词解释seo_b站视频推广网站动漫_seo招聘信息

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: