-1

私がやろうとしているのは、実際にファイルを保存してサーバー上に作成せずに、ファイルを生成してそこにコンテンツを指定することです。

<link rel="stylesheet" href="css/style.css" />
<?php
if(isset($_POST['download'])){
    header('Content-disposition: attachment; filename=testing.txt');
    header('Content-type: text/plain');
    echo 'Lorem Ipsum';
    exit();
}
echo 
'
<form method="POST" action="index.php">
<input type="submit" name="download" value="submit"/>
</form>
';
?>

生成された .txt ファイルに<?php<link rel="stylesheet" href="css/style.css" />、 との前のコンテンツが含まれるようLorem Ipsumになりましたが、指定したコンテンツのみが必要です。Lorem Ipsum

4

2 に答える 2

1

ヘッダーは、何かがエコーされる前に来る必要があります。

<?php
if(isset($_POST['download'])){
    header('Content-disposition: attachment; filename=testing.txt');
    header('Content-type: text/plain');
    echo 'Lorem Ipsum';
    exit();
}
echo 
'
<link rel="stylesheet" href="css/style.css" />
<form method="POST" action="index.php.php">
<input type="submit" name="download" value="submit"/>
</form>
';
?>

同じ構造に保つには:

$data = '<link rel="stylesheet" href="css/style.css" />';

if(isset($_POST['download'])){
    header('Content-disposition: attachment; filename=testing.txt');
    header('Content-type: text/plain');
    echo 'Lorem Ipsum';
    exit();
}
$data .='
<form method="POST" action="index.php.php">
<input type="submit" name="download" value="submit"/>
</form>
';

echo $data;
于 2013-08-01T20:17:22.560 に答える
0

という別のファイルを作成しましたcreatefile.php

<?php
     header('Content-diposition: attachment; filename=testing.php');
     header('Content-type: text/plain');
     echo 'Lorem Ipsum';
?>

そしてindex.php

<link rel="stylesheet" href="css/style.css" />

<form action="createfile.php" method="POST">
    <input type="submit" name="submit" value="submit"/>
</form>

今は createfile.php にあるものだけをロードします

于 2013-08-01T21:47:29.510 に答える