【发布时间】:2017-03-20 22:12:38
【问题描述】:
我最近正在浏览一堆 php 代码,并且 SQL 语法因情况而异。我一直在研究它并对其进行修复以符合可读性。
我当前使用的命令是:
sed -i 's/select/SELECT/g;s/from/FROM/g;s/where/WHERE/g;s/limit/LIMIT/g;s/and/AND/g' /master/dashboard.php
然而,问题是其中一些词会在 html 表单错误消息等中弹出,我正在消磨时间修复这些错误。我宁愿更聪明地工作而不是更努力地工作。
假设每个mysql的格式都类似于so
mysqli_query($mysqli_con,"select * from contacts where username='$username' and password='$password' and active='1'");
如何让 sed 的正则表达式搜索查询部分,然后在其中执行替换?
高级冰雹玛丽,我永远爱你问题:如果我可以让正则表达式使用查询作为替换区域,是否可以将文件中的单词列表馈送/管道 sed 到用`字符括起来?
ie:我有一个包含联系人、用户名、密码、公司等的文件;和 sed -> `contacts`、`username`、`password`、`etc`。
示例文件输入代码段:
session_start();
$username = preg_replace("%[^-_.0-9A-Za-z@]%","",$_SESSION['username']);
$password = preg_replace("%[^-! _.0-9A-Za-z@]%","",$_SESSION['password']);
$date = date("r");
$ip = $REMOTE_ADDR;
$query = mysqli_query($mysqli_con,"select * from contacts where username='$username' and password='$password' and active='1'");
$data = mysqli_fetch_array($query);
if((mysqli_num_rows($query) == "0"))
{
$_SESSION['message'] = "<font color='red'><b>" . _("Invalid login") . ":</b> " . _("The username and password you entered are not valid.") . "</font>";
header('Location: /index.php');
}
else
{
$_SESSION['username'] = $data['username'];
$_SESSION['password'] = $data['password'];
$_SESSION['accountid'] = $data['accountid'];
$_SESSION['role'] = $data['role'];
$getCompany = mysqli_query($mysqli_con,"select * from companies where companyid='" . $data['accountid'] . "'");
$dataCompany = mysqli_fetch_array($getCompany);
include('/master/html/header.inc');
?>
<script type="text/javascript">
$(document).ready(function()
{
resizeDashboard();
$(window).resize(function() {
【问题讨论】:
-
你不会喜欢结果,其中选定的单词会以看似无限的方式被破坏。有很多关键词。