PHP分析二维数据表(长度|数字字段|空值|纯姓名|英文用户名|科学计数|是否等长|是否唯一)

这篇具有很好参考价值的文章主要介绍了PHP分析二维数据表(长度|数字字段|空值|纯姓名|英文用户名|科学计数|是否等长|是否唯一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先看图,后有完整代码 

 PHP分析二维数据表(长度|数字字段|空值|纯姓名|英文用户名|科学计数|是否等长|是否唯一),php,mysql,php,sql

<?php
$t = "Excel数据转Sql查询系统字段半智能分析";
$s = "Excel复制过来的二维结构表内容,分析查询条件!";
$x = "字段|最大长度|长度有|数字字段|空值存在|纯姓名|英文用户名|科学计数|是否等长|是否唯一";
$xx= explode("|",$x);
function isname($str) {
    $pattern = '/^[\x{4e00}-\x{9fa5}]{2,8}$/u'; // Unicode编码范围内的汉字
    return preg_match($pattern, $str);
}
function isuser($str) {
    $pattern = '/^[a-zA-Z0-9_\-]{6,18}$/'; //
    return preg_match($pattern, $str);
}
$tt=array();
$tt["空值存在"]="查询条件列内容如果空值则查询不到";
$tt["纯汉字姓名特征"]="是(2-6汉字):适合查询条件";
$tt["英文用户名特征"]="是(6-16字母数字):适合查询条件";
$tt["科学计数"]="数值已科学计数,会影响数值精度和人眼识别;如果是查询条件则查询不到!";
$datedir = "";
if($_GET["x"] == "cha"){
$base = isset($_POST['tips']) ? $_POST['tips'] : "";
$files="S2".date("YmdHis");
$uptis = "上传失败:";
if(!stristr($base,"\t"))$uptis .= "制表符;";
if(!stristr($base,"\n"))$uptis .= "回车符;";
if($uptis<>"上传失败:") exit("提交内容由Excel复制过来:应当包含:".$uptis);
file_put_contents($datedir.$files.".csv", $base);

$file = fopen($datedir.$files.".csv", 'r');
$header = fgetcsv($file, 0, "\t");
 $nozd  = count($header); $jj=0;
$max_lengths = array_fill(0, $nozd, 0); //字段最长
$lengths = []; //字段长度
$strlist = []; //字段集合
$lies = []; //字段集合
$num_str = array_fill(0, $nozd, "是"); //是否全数字
$is_null = array_fill(0, $nozd, "No"); //是否空值
$is_user = array_fill(0, $nozd, "<b>是</b>");
$is_name = array_fill(0, $nozd, "<b>是</b>");
while (($line = fgetcsv($file,0,"\t")) !== false) {
  $jj ++; if(count($line)<>$nozd) $lies[] = $jj;
  foreach ($line as $i => $value) {
    $strlist[$i][] = $value;
    $lenx = strlen($value);
    $lengths[$i][] = strlen($value);
    if( Trim($value)=="" ) $is_null[$i] = "<b>是</b>";
    if( !is_numeric($value) ) $num_str[$i] = "否";
    if( !isuser($value) ) $is_user[$i] = "否";
    if( !isname($value) ) $is_name[$i] = "否";
    $max_lengths[$i] = max($max_lengths[$i], strlen($value));
  }
}
fclose($file);
echo "<h3>分析结果:<strong>机器识别,仅供参考</strong></h3>\r\n";
echo "<table cellspacing=\"0\" class=\"table\" cellpadding=\"0\">\r\n";
echo "<tr class='tt'><td>".join("</td><td>",$xx)."</td></tr>\r\n";
for($ii=0;$ii<$nozd;$ii++){
 $line = [];
 $uni = array_count_values($strlist[$ii]); $una = array_keys($uni); $unb = join(";",$una);
 $lilen = array_unique($lengths[$ii]); $listl = join(",",$lilen);
 $line["字段"] = $header[$ii];
 $line["最长长度"] = $max_lengths[$ii];
 $line["字段长度有"] = $listl;
 $line["字段属性"] = $num_str[$ii];
 $line["空值存在"] = $is_null[$ii];
 $line["汉字名字"] = $is_name[$ii];
 $line["用户名"] = $is_user[$ii];
preg_match_all("/[+-]?[\d]+([\.][\d]+)?[Ee][+-]?[\d]+/", $unb, $match);
$kes = count($match[0]); 
if($kes>0){ $line["科学计数"] = "异常<b>$kes</b>处";}else{ $line["科学计数"] = "正常";} 
 if(count($lilen)==1) $line["是否等长"] = "是"; else $line["是否等长"] = "否";
 $isc = array_diff($uni, [1]);
 if(count($isc)<1) $line["是否唯一"] = "是"; else $line["是否唯一"] = "否";
 echo "<tr><td>".join("</td><td>",$line)."</td></tr>\r\n";
}
echo "</table>\r\n";
echo "<p><b>请核对:</b>核对数据:{$jj}行{$nozd}列</p>\r\n";
if(count($lies)>0) echo "<p><b>有".count($lies)."行</b>(行:".join(",",$lies).")列数与标题列数({$nozd})不一致</p>\r\n";
foreach($tt as $ti=>$tv){ echo "<p><b>$ti</b>: $tv</p>";}
 exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo $t; ?></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes" />
<script type="text/javascript">
console.log("问题反馈电话:","15058593138");
console.log("问题反馈邮件:","admin@12391.net");
function $(objId){
return document.getElementById(objId);
}
function loadcha(xid) {
var xmlhttp;
var Stxt= "nums=aa";
Stxt+="&tips="+ encodeURIComponent($("tips").value);
//$("tips").innerHTML = "正在加载...";
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var btxt = xmlhttp.response;
if(btxt == "err01"){ $("tipx").innerHTML = "!"; return false;}
$('tipx').innerHTML = xmlhttp.response;
}
}
xmlhttp.open("POST", "?x=cha&tt="+Math.random(), true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(Stxt);
}
 
</script>
<style>
div,#tipx{display:block;width:99.7%;border:0;margin-top:5px;}
textarea{display:block;width:99.7%;border:1px solid #ccc;height:160px;}
table{margin:20px auto;border-left:1px solid #a2c6d3;border-top:3px solid #0180CF;font-size:12px;width:99.7%;}
table td{border-right:1px solid #a2c6d3;border-bottom:1px solid #a2c6d3;padding:2px;word-wrap:break-word;word-break:break-all;}
td{min-width:30px;max-width:490px;}
.tt{background-color: #f2f2f2;}
b{color:red;}
#submit{ height:35px;}
</style>
</head>
<body>
 
<form class="form" id="form" method="POST" act="?act=cha" >
<p><?php echo $t; ?></p>
<textarea id="tips">
姓名	学号	身份证	科目1	科目2	科目3	科目4	科目5	科目.	科目N
李一一	10001001	90001001	87	84	75	91	83	76	87
李二	10001002	90001001	95	81	81	71	60	8299
李三	10001003	90001003	68	80	65	79	68	71	91
李四	10001004	90001004	82	80	75	90	87	1.23457E+15	81
李五	10001005	90001005	60	64	61	71	73		61
李六	10001006	90001006	62	69	77	73	96	6	82
李七	10001007	90001007	98	72	68	59	84	333	92
</textarea>
 <input type="button" id="submit" value="提交分析" onclick="loadcha('xid')">
<div id="tipx"></div>
 </form>
</body>
</html>

仅供娱乐!文章来源地址https://www.toymoban.com/news/detail-837240.html

到了这里,关于PHP分析二维数据表(长度|数字字段|空值|纯姓名|英文用户名|科学计数|是否等长|是否唯一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL Server创建数据表,新增字段的SQL语句

    1、创建数据库 语法:CREATE DATABASE 数据库名称 2、创建数据表  语法: USE suntest   create table 仓库   (   仓库编号 int ,    仓库号 varchar(50) ,    城市 varchar(50) ,    面积 int   )   create table 仓库1   (   仓库编号 int not null ,    仓库号 varchar(50) not null,    城市 varchar(50) not null

    2024年02月10日
    浏览(45)
  • Python Flask Web开发三:数据表的字段增加和删除

    在实际的开发中,数据表中的字段的增加和删除是很正常的操作,在运营的不断提需求下,这个修改的频率是很高的,那么在flask中如何进行字段的增加和删除呢?下面我来给大家讲讲 使用数据库迁移工具(如 Flask-Migrate等)创建一个新的迁移脚本。这个脚本将包含对数据库

    2024年02月09日
    浏览(31)
  • SQL SERVER 中将数据表中的字段按分隔符分成多行多列

     SQL SERVER 中将数据表中的字段按分隔符分成多行多列_sql按逗号拆分列为多行_帅气的苹果果的博客-CSDN博客      

    2024年02月07日
    浏览(41)
  • 从"他急匆匆地跑来了“来谈一下数据表字段命名

    表名、字段名、类名、方法名、属性名、变量名、文件名、配置项...,关于命名,命名规范其中之一是见名知意。在理解需求时,试着抓重点、看本质,据此来命名。切不能强行缩减或随意缩减。许多时候,较长的名称,也比随意简拼的名称易读。如果需要对名称缩减,开发

    2024年02月03日
    浏览(31)
  • 数据分析-Pandas如何整合多张数据表

    数据表,时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。数据分析过程中表格重整,重新调整,重塑数据表是很重要的技巧,此处选择Titanic数据,以及巴黎、伦敦欧洲城市空气质量监测 N O 2 NO_2 N O 2 ​ 数据作为样例。 数据分析

    2024年01月17日
    浏览(32)
  • 用Python做数据分析之生成数据表

    第一部分是生成数据表,常见的生成方法有两种,第一种是导入外部数据,第二种是直接写入数据。 Excel 中的文件菜单中提供了**外部数据的功能,支持数据库和文本文件和页面的多种数据源导入。 获取外部数据 python支持从多种类型的数据导入。在开始使用 python 进行数据导

    2024年01月17日
    浏览(28)
  • 用Python做数据分析之数据表清洗

    对数据表中的问题进行清洗。主要内容包括对空值,大小写问题,数据格式和重复值的处理。这里不包含对数据间的逻辑验证。 处理空值(删除或填充) 我们在创建数据表的时候在 price 字段中故意设置了几个 NA 值。对于空值的处理方式有很多种,可以直接删除包含空值的数据

    2024年01月16日
    浏览(33)
  • PHP自己的框架PDO数据表前缀、alias、model、table、join方法实现(完善篇九--结束)

    一、实现功能,数据表前缀、alias、model、table、join方法实现    二、表前缀实现 1、config.php增加表前缀  2、增加表前缀方法function.php 3、PDO数据表增加表前缀ModelBase.php 三、alias数据表别名和join实现实现ModelBase.php 四、控制器实现,数据表前缀、alias、model、table、join方法查询

    2024年02月10日
    浏览(32)
  • Python案例实现|租房网站数据表的处理与分析

     在综合实战项目中,“北京链家网”租房数据的抓取任务已在 上一篇 完成,得到了数据表bj_lianJia.csv,如图1所示。该数据表包含ID、城区名(district)、街道名(street)、小区名(community)、楼层信息(floor)、有无电梯(lift)、面积(area)、房屋朝向(toward)、户型(

    2024年02月15日
    浏览(30)
  • 数据表中字段排序规则不一致(utf8mb4_general_ci、utf8mb4_0900_ai_ci)导致的错误,附解决办法

    环境: 数据库版本MySQL 8.0.32 报错: 在查询数据的时候返回以下错误 \\\"(1267, \\\"Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation \\\'=\\\'\\\")\\\" 报错分析及初期解决过程: 该错误是因为在执行查询或比较操作时,涉及到了不同字符集的表或字段之间的比较,

    2024年02月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包