「PHP/ファイル入出力」の版間の差分

削除された内容 追加された内容
ソケット通信の話題
HTMLのdownloadプロパティだ
314 行
 
PHPの header() 関数でいう「ヘッダ」とは何かというと、ブラウザとサーバーとの間で、通信のために やりとり している HTTPヘッダ という情報のことである。<ref> [https://www.php.net/manual/ja/function.header.php "PHP: header - Manual"] 2020年5月16日に閲覧して確認.</ref>
 
 
* 実際の例
上記のコードだと、ページが表示される前にダウンロードが始まってしまう。そのため、とても見づらくなる。
 
上記のPHPコードにprintなどの命令を書いても、うまく動作しない。(基本的に、ダウンロード用のリンクでは、画像表示や文字表示は、あまり機能しない。)
 
 
実務的な方法としては、別のHTMLファイルで上記PHPコードにアクセスするリンクを配置し、
 
;コード例
<syntaxhighlight lang="HTML">
<a href="dlTest.php">ダウンロード</a>
</syntaxhighlight>
 
::(※ これはHTMLファイルです。PHP'''ではない'''です。)
のようにして、このHTMLファイルに先にリンクしてもらうようにするのが良い。
 
すると、先にこのHTMLだけが表示される。
 
そして、「ダウンロード」リンクをクリックすると、ページはそのままで(このHTMLが表示されたままで)、ダウンロードのポップアップが出るので、あとはブラウザ側でユーザーにダウンロードしてもらえば済む。
 
 
 
* HTMLのdownloadプロパティ
2020年の近年、じつはダウンロードするだけなら、PHPなどを用いなくても、HTMLのdownloadプロパティだけで実装できるようになっている。
 
;コード例
<syntaxhighlight lang="HTML">
<a href="gazou.png" download>ダウンロード</a>
</syntaxhighlight>
::(2020年5月18日 に Fedora 32 上でのブラウザ Firefox76 で動作確認。)
のようにhrefのハイパーリンクのあるタグに download プロパティを追加するだけでも、実は簡単にダウンロードを実装できるようになっている。
 
上記コードの場合、単に「ダウンロード」をクリックするだけで、画像のダウンロードが開始する。