“最难不过坚持”
本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作
有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339
- https://jueru.net/
-
- :weixiao:
-
- :shuijiao: :weiqu: :zhenbang: :leng:
-
- :yiwen: :yiwen: :yiwen: :yiwen:
-
- 这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
-
使用Spreadsheet_Excel_Reader类将excel文件导入php数据库,步骤如下:
步骤1:下载类库
从GitHub下载PHP Excel Reader库,下载地址:https://github.com/nuovo/spreadsheet-reader
下载后将其解压缩到根目录并将其重命名为“library”。
步骤2:创建db_config.php文件
为数据库配置创建db_config.php文件,在这个文件中,你必须设置数据库主机、数据库用户名、数据库密码、数据库名称。该文件将用于将数据存储到数据库中。
代码如下:
<?php header('Content-Type: text/html;charset=utf-8'); $dbHost = "localhost"; $dbUser = "root"; $dbPasswrod = ""; $dbDatabase = "test"; $mysqli = new mysqli($dbHost, $dbUser, $dbPasswrod, $dbDatabase); mysqli_set_charset($mysqli,"utf8"); // 解决中文乱码 ?>步骤3:创建index.php文件
在根目录中创建index.php文件,在这个文件中,我使用bootstrap创建了一个简单的表单,实现点击按钮后导入选择excel文件的功能。
代码如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> </head> <body> <div class="container"> <h1>Excel上传</h1> <form method="POST" action="excelUpload.php" enctype="multipart/form-data"> <div class="form-group"> <label>上传Excel文件</label> <input type="file" name="file" class="form-control"> </div> <div class="form-group"> <button type="submit" name="Submit" class="btn btn-success">上传</button> </div> </form> </div> </body> </html>步骤4:创建excelUpload.php文件
创建excelUpload.php文件来管理导入数据库的数据,在这个步骤中,我们必须创建uploads文件夹来存储excel文件到这个文件中,然后读取该文件。
代码如下:
<?php require('library/php-excel-reader/excel_reader2.php'); require('library/SpreadsheetReader.php'); require('db_config.php'); if (isset($_POST['Submit'])) { $mimes = ['application/vnd.ms-excel', 'text/xls', 'text/xlsx', 'application/vnd.oasis.opendocument.spreadsheet','application/octet-stream']; // var_dump($_FILES["file"]); // echo $_FILES["file"]["type"]; if (in_array($_FILES["file"]["type"], $mimes)) { $uploadFilePath = 'uploads/' . basename($_FILES['file']['name']); move_uploaded_file($_FILES['file']['tmp_name'], $uploadFilePath); $Reader = new SpreadsheetReader($uploadFilePath); $totalSheet = count($Reader->sheets()); echo "你有 " . $totalSheet . " 张表" . $html = "<table border='1'>"; $html .= "<tr><th>标题</th><th>描述</th></tr>"; for($i = 0;$i < $totalSheet;$i++) { $Reader->ChangeSheet($i); foreach ($Reader as $Row) { $html .= "<tr>"; $loginName = isset($Row[0]) ? $Row[0] : ''; $encode = mb_detect_encoding($loginName, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5')); // 检查从excel导入的数据什么编码 $loginName = mb_convert_encoding($loginName, 'UTF-8', $encode); // 数据转换为utf-8编码,这样在页面显示就不乱码了,数据库也正常插入了 $loginSecret = isset($Row[1]) ? $Row[1] : ''; $html .= "<td>" . $i . "</td>"; $html .= "<td>" . $loginName . "</td>"; $html .= "<td>" . $loginSecret . "</td>"; $html .= "</tr>"; $query = "insert into users2(loginName,loginSecret) values('" . $loginName . "','" . $loginSecret . "')"; $mysqli->query($query); } } $html .= "</table>"; echo $html; echo "<br />添加到数据库的数据"; } else { die("<br/>sorry,不允许此文件类型上传,只允许Excel文件。"); } } ?>备注:
1,excel中有中文,导入不到数据库,显示在页面上也是乱码;已解决,方法如下:
$encode = mb_detect_encoding($loginName, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5')); // 检查从excel导入的数据什么编码
$loginName = mb_convert_encoding($loginName, 'UTF-8', $encode); // 数据转换为utf-8编码,这样在页面显示就不乱码了,数据库也正常插入了
扩展: 从phpmyadmin导出数据库,选择CSV格式,中文乱码,导出之前要把编码改为GB2312格式,就不乱码了。
2,导入excel后,输出到页面的表格会多两行空白的空格,这是由excel表中的sheet2和sheet3造成的。
3,excel上传后,mime码是application/octet-stream通用格式,而不是'application/vnd.ms-excel', 'text/xls', 'text/xlsx', 'application/vnd.oasis.opendocument.spreadsheet'中的任何一种格式,不知道为什么