簡體   English   中英

如何從另一個php文件調用函數?

[英]How to call functions from another php file?

簡而言之:我上傳到/ var / tmp多個excel文件,然后將它們轉換為.csv(2個不同的轉換器,用於.xls和.xlsx)。 生成的文件result.csv應該插入到數據庫中。 這一切都奏效,直到我們決定允許同時上傳多個文件 (向html輸入標簽添加多個屬性)。 問題:數據未插入表中

<?php
// database connection goes here;
include 'convertt2a.php';
if (isset($_POST["submit"])) {
$updir = "/var/tmp/result.xlsx";
$n= count($_FILES['rawexcel']['name']);
for ($i=0; $i<$n; $i++)    {
$upfile = $updir.basename($_FILES['rawexcel']['name'][$i]);
$ext = pathinfo ($_FILES['rawexcel']['name'][$i], PATHINFO_EXTENSION);
if(is_uploaded_file ($_FILES ["rawexcel"]["tmp_name"][$i]))
{
 move_uploaded_file ($_FILES["rawexcel"]["tmp_name"][$i], $updir);
if ($ext == 'xlsx' ) {   exec("/usr/local/bin/cnvt   /var/tmp/result.xlsx      /var/tmp/result.csv "); } else 
 if ($ext == 'xls' ) {   exec("/usr/local/bin/xls2csv -x   /var/tmp/result.xls* -b WINDOWS-1251 -c /var/tmp/result.csv -a UTF-8"); } 
 echo "File  successfully uploaded and converted to .csv ";
  } 
else {
 echo "error uploading file ".$upfile;}

if (isset($_POST['provider'])) {
//select action to perform on case of different providers
if ($_POST['provider']=='tele2altel'){echo t2a("tele2");}
} 
 echo "cycle ".$i."ended here; </br>";
 }}
 else {echo "not isset post method";}
  ?>

t2a功能:

function t2a ($string){

//opening .csv file, inserting into table in SAMPLEBANK TELE2ALTEL
$row =0;
if (($handle = fopen("/var/tmp/result.csv", "r"))!==FALSE){
while (($data = fgetcsv($handle, 1000, ","))!==FALSE) {
$row ++;
//we got data in $data[$i] array
if ($row==4) {$idb=$data[2];}
if ($row >6) {
$da=$data[0]; $imei = $data[1]; $ab=$data[2];$ty = NULL;
$du=$data[6]; $op = $data[3];$dir =$data[5];
$num= strlen($dir);
if ($num>=28) {$ty= $dir; $dir=NULL;}
if ($ab!==''){
$sql= "INSERT INTO tele2altel(Abonent,Opponent, Type, Data, Duration,     idBase, IMEI,direction)  
values ('$ab','$op','$ty','$da','$du', '$idb','$imei','$dir')";
$res = mysqli_query($conn, $sql);}
}}
fclose($handle);
} else {echo "unable to read file";}
$s = "Successfully inserted into DB";
return $s;
}

我的輸出:文件已成功上傳並轉換為.csv

我在這里結束了;

成功插入DB,i次(要上傳的文件數)

我檢查了seapartely .csv文件,它們正在正確轉換。 因此,錯誤在t2a函數中。 我將不勝感激任何幫助。

在其中包含另一個文件。

<?php include('yourfilename'); ?>

我認為下面的行是打開錯誤的文件...

fopen("/var/tmp/result.xlsx", "r")

應該

fopen("/var/tmp/result.csv", "r")

這段代碼工作所需要的是澄清函數的返回類型:

 function t2a ($string):string {}

解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM