0

我一直在开发一个 PHP 页面,该页面将使用 sqlsrv_fetch_array 将一些 SQL 数据导出到 csv 文件。我在获取 csv 文件中的数据时遇到了一些问题。当我运行脚本时,csv 文件上的输出如下所示。

<html>                          
    <head>                          
        <title>Page Title</title>                           
    </head>                         
    <body>                          
"   "                           
"           "                           
        "CCCCCCC\SSSSS" 140211 B Insxxxxxx  BBB Y   N   CCCCCCC\SSSSS   Stevens_Dave    Y
CCCCCCC\SSSSS   140211 W Insxxxxxx  BBB Y   N   CCCCCCC\SSSSS   Stevens_Dave    Y
CCCCCCC\SSSSS   140411 R Intxxxxx Auxxx BBB Y   N   CCCCCCC\SSSSS   Stevens_Dave    Y

请注意,即使其余信息没有,第一个“CCCCCC\SSSS”周围仍然有“。另外,由于某种原因,它会将 HTML 内容发布在 csv 文件的顶部。我希望它把头在那里,但似乎无法弄清楚如何让它工作。你能看一下代码,让我知道问题出在哪里以及如何将标题添加到 csv 文件中?这是代码.

<html>
    <head>
        <title>Page Title</title>
    </head>
    <body>


        <?php 

$userid = $_POST['userid']; //defined through a form


        $serverName = "server1, 1433";
$connectionInfo = array("UID"=>"adminweb", "PWD"=>"adminweb", "Database"=>"dbname");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
     echo "Could not connect.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Set up and execute the query. */
$sql = "SELECT * FROM UserProfile u INNER JOIN UserTeam ut ON u.UserID = ut.UserOrTeam WHERE UserID LIKE '%xxxx%'";
$stmt = sqlsrv_query( $conn, $sql);

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) )  {
 foreach($row AS $key => $value){
        //If the character " exists, then escape it, otherwise the csv file will be invalid.
        $pos = strpos($value, '"');
        if ($pos !== false) {
            $value = str_replace('"', '\"', $value);
        }
        $out .= '"'.$value.'",';
    }
    $out .= "\n";
}
sqlsrv_free_stmt($results);
sqlsrv_close($conn);
// Output to browser with the CSV mime type
header("Content-type: text/x-csv");
header("Content-Disposition: attachment; filename=testcsv.csv");
echo $out;



 ?>
    </body>
</html>
4

1 回答 1

0

尝试删除...

<html>                          
    <head>                          
        <title>Page Title</title>                           
    </head>                         
    <body> 

从 PHP 脚本的顶部开始。

于 2013-11-15T12:28:09.350 回答