if there is a problem with the loop, how can there be so many lines for the second time
Why is the data from POST serial? why is the data from the previous row read? I got the data by reading the Excel table
I just want to read every row of Excel data instead of finding a serial solution
<?php
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_NOTICE);
define("ROOT",dirname(__FILE__)."/");
if ((($_FILES["file"]["type"] == "application/vnd.ms-excel")||($_FILES["file"]["type"] == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"))&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
if (!empty($_FILES)) {
$fileInfo = $_FILES["file"];
//echo "";
//print_r($fileInfo);
//echo "
";
$fileName = $fileInfo ["name"];
$fileType = $fileInfo ["type"];
$fileTmpName = $fileInfo ["tmp_name"];
$fileError = $fileInfo ["error"];
$fileSize = $fileInfo ["size"];
If ($fileError = = UPLOAD_ERR_OK) {
If (move_uploaded_file ($fileTmpName,iconv ("utf-8","gb2312","./uploads/".$fileName) {
$fileDir = dirname (_ _ FILE__);
Echo "uploaded successfully". "\ n < br/ >\ n < br/ >";
/ / doExcel (iconv ("utf-8","gb2312","./uploads/".$fileName));
$file_types = explode (".", $_ FILES ["file"] [" name"]);
$file_type = $file_types [count ($file_types)-1];
$ExcelToArrary = new ExcelToArrary (); / / instantiation
$res = $ExcelToArrary- > read (iconv ("utf-8","gb2312","./uploads/".$fileName), "UTF-8", $file_type);
/ / print_r ($res);
DoData ($res);
} else {
Echo "upload failed";
}
} else {
Switch ($fileError) {
Case 1:
Echo "uploaded files exceed the limit of upload.max.filesize in php.ini";
Break;
Case 2:
Echo "file exceeds the MAX_FILE_SIZE limit of the form";
Break;
Case 3:
Echo "part of the form is uploaded";
Break;
Case 4:
Echo"no uploaded file found";
Break;
Case 6:
Echo"no temporary files found";
Break;
Case 7:
Echo "file write failed";
Break;
Case 8:
Echo "php file upload extension is not open";
Break;
Default:
Echo "unknown error, please contact the administrator, happy@13.com";
Break;
}
}
} else {
Echo "unknown error";
}
}
}
Else
{
Echo $_ FILES ["file"] ["type"]; / / application/vnd.ms-excel
Echo "Invalid file";
}
Function doData ($data) {
/ / print_R ($data);
/ / print_R ($data [1]);
$email = [];
$bodyh = "";
Foreach ($data as $key = > $value)
{
/ / print_r ($key); / / Line number
/ / print_r ($value);
$len = count ($value);
If ($key==1) {
$title = $value;
/ / echo $value [0]. $value [1]. $value [2]. "\ n < br/ >";
}
If ($key > 1) {
/ / echo $value [0]. $value [1]. $value [2]. "\ n < br/ >";
$bodyys = "";
For ($iTuno / investors / I < $len;$iPP)
{
$telTo = "";
$mailTo = "";
/ / pseudo code is written by itself.
/ / if ($value [$I] = = "Mobile number feature")
/ / {
/ / $telTo = "18600806920";
/ /}
/ / if ($value [$I] = "mailbox characteristics")
/ / {
/ / $mailTo = "xx@qq.com";
/ /}
/ / pseudo code is written by itself.
$bodyys = $bodyys.$title [$I]. ":". $value [$I];
Echo "< table style="border:1px solid red" > < tr > < td >". $title [$I]. ":". $value [$I]. "< / tr > < / td > < / table >"; / /-sharp-sharp is convenient to see the effect
}
$bodyh=$bodyh.$bodyys;
$body [] = $bodyh;
/ / var_dump ($bodyh);
$email [] = $data [$key] [2]."@ qq.com";
$bodyh = preg_split ("^ [0-9] * $", $bodyh);
Echo "\ n < br/ >";
/ / var_dump ($email);
/ / send email or text message below
/ / doMail ("payroll", $body, "mailbox regularly matches $mailTo"); / /-sharp-sharp
/ / send email or text message above
}
}
Echo"< form action= "email.php" method= "POST" >";
Foreach ($email as $keyy = > $value) {
Echo"< input type= "hidden" name= "body []" value= ". $body [$keyy]."" >";
Echo"< input type= "hidden" name= "email []" value= ". $value."" >";
}
Echo"< input type= "submit" value= "send mail" >";
Echo"< / form >";
}
Class ExcelToArrary
{
Public function _ _ construct () {
Require_once "PHPExcel-1.8/Classes/PHPExcel.php";
Require_once "PHPExcel-1.8/Classes/PHPExcel/IOFactory.php";
}
Public function read ($filename,$encode,$file_type)
{
If (strtolower ($file_type) = "xls") / / determine whether the excel table type is 2003 or 2007
{
Require_once "PHPExcel-1.8/Classes/PHPExcel/Reader/Excel5.php";
$objReader =\ PHPExcel_IOFactory::createReader ("Excel5");
} elseif (strtolower ($file_type) = = "xlsx") {
Require_once "PHPExcel-1.8/Classes/PHPExcel/Reader/Excel2007.php";
$objReader =\ PHPExcel_IOFactory::createReader ("Excel2007");
}
$objReader- > setReadDataOnly (true);
$objPHPExcel = $objReader- > load ($filename);
$objWorksheet = $objPHPExcel- > getActiveSheet ();
$highestRow = $objWorksheet- > getHighestRow ();
$highestColumn = $objWorksheet- > getHighestColumn ();
$highestColumnIndex =\ PHPExcel_Cell::columnIndexFromString ($highestColumn);
$excelData = array ();
For ($row = 1; $row < = $highestRow; $rowPP) {
For ($col = 0; $col < $highestColumnIndex; $colPP) {
$excelData [$row] [] = (string) $objWorksheet- > getCellByColumnAndRow ($col, $row)-> getValue ();
}
}
Return $excelData;
}
}
? >