2016-02-28 42 views
0

我有一个php代码,有if语句(导出为pdf,导出为ex​​cel,最后一个导出为ex​​cel)。在循环内执行一个php内的另一个php文件

前两个如果上传pdf和excel工作的很好,当我点击按钮来运行第三个if语句时,它显示了我的空白页面,即使它的代码运行正常分别。

我的PHP代码如下:

<?php 
define('FPDF_FONTPATH','/Applications/XAMPP/xamppfiles/lib/php'); 
if (isset($_POST['pdf'])) { 
    //code// 
} 
} 
if (isset($_POST['excel'])) { 
    //code// 

} 

if (isset($_POST['upload'])) { 

exec('imp.php'); 

} 
?> 

而我试图运行的imp.php文件是:

<?php 
ini_set('display_errors', 1); 
error_reporting(E_ALL); 
$db_host = 'localhost'; 
$db_user = 'root'; 
$db_pwd = ''; 

$database = 'mydatabase'; 
$table = 'demo'; 

if ([email protected]_connect($db_host, $db_user, $db_pwd)) 
    die("Can't connect to database"); 

if (!mysql_select_db($database)) 
    die("Can't select database"); 


    if(isset($_POST['submit'])) 
    { 
     $fname = $_FILES['sel_file']['name']; 
     echo 'upload file name: '.$fname.' '; 
     $chk_ext = explode(".",$fname); 

     if(strtolower(end($chk_ext)) == "csv") 
     { 

      $filename = $_FILES['sel_file']['tmp_name']; 
      $handle = fopen($filename, "r"); 

      while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
      { 
       $sql = "INSERT into demo(orders,quantity,country,dates,comment) values('$data[0]','$data[1]','$data[2]', '$data[3]','$data[4]')"; 
       mysql_query($sql) or die(mysql_error()); 
      } 

      fclose($handle); 
      echo "Successfully Imported"; 

     } 
     else 
     { 
      echo "Invalid File"; 
     } 
    } 

    ?> 
    <h1>Import CSV file</h1> 
    <form action='<?php echo $_SERVER["PHP_SELF"];?>' method='post' enctype="multipart/form-data"> 
     Import File : <input type='file' name='sel_file' size='20'> 
     <input type='submit' name='submit' value='submit'> 
    </form 
+0

也许至少它应该是'exec('php imp.php');'?顺便说一句,当你执行'exec()' –

+0

时,你会在浏览器中看到任何东西,它仍然显示我一个空白的屏幕,而不是显示imp.php的内容 – compcrk

+0

我应该使用什么,而不是exec()呢? – compcrk

回答

1

exec功能服务器上执行的文件。除非明确将exec的结果显示为变量并输出,否则不会看到任何内容。

但是,当我看到 - 你只是想包括一些PHP文件到另一个 - 这是includerequire应该:

include '/path/to/file.php'; 

这将是足够的。