使用PHP打开文件会在echo上打印所有内容

问题描述 投票:0回答:1

我正在尝试使用PHP打开文件。事实是该文件正确保存在服务器上,但是当我想通过PHP打开时,用户可以下载/查看它,它还显示了代码中完成的其他操作。如果有人有想法,那对我来说将是很大的帮助。

这是我的代码:

<?php

echo"<form method='post'><p>"; // Inicio de FORM

foreach ($ini_array as $section => $value){ // Para cada $section en el $ini_array

    if ($section == 'FILE') {   // Ignorar la $section de pos 0 donde estan los datos del [FILE]
        continue;
    }

    if ($ini_array[$section]['Edit'] == false) { // Condición si está disabled el input o no // ARREGLAR PARA PARAMS QUE NO TIENEN VALOR POR DEFECTO PERO SI PUEDEN TOMAR INPUT
        $default_value_control = 'disabled';
    }else{
        $default_value_control = '';
    }

    echo
    "<div class='container'><input type=".$ini_array[$section]['Obj']." name='".$section."' value='".$ini_array[$section]['Value']."' ".$default_value_control. ">".$ini_array[$section]['Desc']."</div><div class='tooltip'>?<span class='tooltiptext'>".$ini_array[$section]['Help']."</span></div> <br>";
}

if (isset($_POST['ExecCmd'])){
    try{
        ini_set("display_errors", 0); 
        $cmd=$ini_array['FILE']['Path']." ";
        foreach ($ini_array as $section => $value){
            $manualinput=$_POST[$section];
            if (!empty($manualinput)){
               $cmd.=" ".$ini_array[$section]['Flag']." ".$manualinput;
            }
        }
    }
    finally { ini_set("display_errors", 1);
    }
        $myfile = fopen("output.csv", "w") or die("Unable to open file!");
        //echo $cmd;
        $command = escapeshellcmd($cmd); // Ejecutamos el archivo y también la concatenación anterior de $argFinal
        $output = shell_exec($command);
        echo $output;       

        fwrite($myfile, $output);
        fclose($myfile);

        $file_url = 'output.csv';
        header('Content-Type: text/csv');
        header("Content-Transfer-Encoding: Binary"); 
        header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\""); 
        readfile($file_url);

}

echo "<button name='ExecCmd'>Execute</button></p></form>";

?>

php file output
1个回答
-1
投票
更多:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types

就我而言,当使用chrome访问页面时,这些代码可以正常工作。

但是,当我尝试从PHP下载/打开文件时,它也会在输出文件上打印我页面的代码PHP。我正是这个意思。

这是另一个问题~~!
© www.soinside.com 2019 - 2024. All rights reserved.