2016-02-28 44 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'; 

這將是足夠的。