1

テーブルから情報を取得し、css でフォーマットされた Web サイトのページがあります。

ページをそのまま、テキストまたは PDF ファイルとして保存する方法が見つかりません。これを行う pdf サイトを見つけましたhttp://pdfmyurl.com/しかし、外部サイトなしで自分のサイトで同じことをしたいと思っていました。

Web ページにはsession、ユーザーがログインしていることを確認する機能があり、それに応じて、user_idどのデータがデータベースから取り出されます。明確にするために、ユーザーがこのページを表示できるようにしたいと考えています。"SAVE TO COMPUTER"そのページで、そのページをそのまま保存するボタンを望んでいました。

見つけた

<?php

 //Link to download file...
 $url = "savechoice.php";

 //Code to get the file...
 $data = file_get_contents($url);

 //save as?
 $filename = "test.txt";

 //save the file...
 $fh = fopen($filename,"w");
 fwrite($fh,$data);
 fclose($fh);

 //display link to the file you just saved...
 echo "<a href='".$filename."'>Click Here</a> to download the file...";
?>

しかし、これは実行されていないphpを含むテキストとしてページを保存するだけです。また、URLを完全なURLに変更しましたが、セッションが認識されないため、PHPを実行すると空白に戻ります。

4

4 に答える 4

4

file_put_contents()の使用を検討してください。また、サーバーへの書き込み権限があることも確認してください。is_writable()を使用してこれを行うことができます。

しかし、これはページをphpを含むテキストとして保存するだけです. -> サーバーに処理させますsavechoice.phpか? これは全く違います。file_get_contents()を使用してファイルを開くと、ファイルを開いたときとまったく同じようにファイルが取得されます。ファイルは実行されません。

働き方を変える必要がありますsavechoice.php。それが何らかの出力を持つスクリプトである場合は、代わりに出力を変数に入れることができます$data。例えば:

savechoice.php

<?php
echo 'Hello World!';
?>

これを次のように変更します。

<?php
$echo = 'Hello World!';
?>

他のファイルでは、 require()を使用file_put_contents($echo);して呼び出した後に簡単に使用できます。savechoice.php

于 2013-03-11T17:20:29.980 に答える
1

おそらく、次のようなものがもっと必要になるでしょう:

ob_start();
include('savechoice.php');
$text = ob_get_clean();

しかし、実際には、savechoice.php のコードを関数として呼び出し可能になるように変更するのが最善の方法です。

$text = get_choice(...);

代わりに、HTML の包装紙なしで、必要なデータのみを出力する適切なロジックです。独自のサーバーに対して HTTP リクエストを呼び出すことは、ほとんどすべての使用例で、特にセッション (および特に標準的なファイルベースのセッション) を使用している場合、リソースの無意味な浪費です。

于 2013-03-11T17:22:31.743 に答える
1

生のコンテンツではなくファイルの出力を取得する場合は、ファイルが php.ini として実行されていることを確認する必要があります。

あなたはそれを含めることができます(私はすでに別の答えがあると思います...)または次を使用できます:

$url = "http://localhost/path/to/file/savechoice.php";

元のコードを使用して、ファイルが Web サーバーによって処理されるようにします。

于 2013-03-11T17:23:52.353 に答える
0

これは、ファイルの URL ではなく、ファイルをロードしているためです。

サイトのドメインがhttp://www.example.comで、ファイル「savechoice.php」が Web ルートにあるとします。$url を

$url = "http://www.example.com/savechoice.php";

ファイル内の php が解釈され、php ではなく Web ページが表示されます。

于 2013-03-11T17:23:13.087 に答える