• 締切済み

phpでテンプレートを使ったファイルのダウンロード

yuuki0229の回答

  • yuuki0229
  • ベストアンサー率70% (33/47)
回答No.3

PHPは元々テンプレートのような構文ですので以下のように 普通にPHPスクリプトをテンプレートとして利用する方法で良いのではないでしょうか? -- download.php --- <?php $data = array( array("a"=>"A1", "b"=>"B1", "c"=>"C1"), array("a"=>"A2", "b"=>"B2", "c"=>"C2"), array("a"=>"A3", "b"=>"B3", "c"=>"C3"), ); header("Content-Type: ~~~"); // ダウンロード用ヘッダなど include "template.csv"; // 拡張子はお好みで -- template.csv --- ColumnA,ColumnB,ColumnC <?php foreach ($data as $v): ?> <?=$v['a']?>,<?=$v['b']?>,<?=$v['c']?> <?php endforeach; ?>

kreuz000
質問者

お礼

ご回答ありがとうございます。 結局、取得した$a~$eを配列に格納し、格納したものを別な配列のキーとして扱うことで、 思っていた処理を再現させることができました。

関連するQ&A

  • PHPファイルとテンプレートファイルの書き方

    <?php // ファイル名 $fname = "test.csv"; // ファイルを開く $file = fopen($fname, "r"); // 全データを出力する while (list($id, $name, $add) = fgetcsv($file, 1000, ",")) { echo "<hr>"; echo "<br>ID:".$id; echo "<br>名前:".$name; echo "<br>住所:".$add; } // ファイルを閉じる fclose($file); ?> <質問> 上の内容をSmartyを使ってPHPファイルとテンプレートファイルに分離したい。 テーブルにCSVファイルのデータが入るようにしたい。 PHPファイルとテンプレートファイルの書き方を教えてください。

    • 締切済み
    • PHP
  • 外部のCSVファイルをPHPで読み込み、出力させたい

    下記の質問を参考に外部のCSVファイルをPHPで読み込み、出力させるphpを書きました。 http://oshiete1.goo.ne.jp/qa1615206.html data.csvは "データ01" "データ02" "データ03" ・・・ といったように100行書いてあります。 <1ページ目に記述したphp> <?php $fp = fopen("data.csv", "r"); $repeat = 10; $count = 1; while ($data = fgetcsv($fp, 10000)) { if ($count > $repeat) { break; } print <<<EOD $data[0] EOD; $count++ ; } fclose ($fp) ?> 2ページ目には11行目からのデータを出力したいと思い、 $data[0]の部分を$data[11]に変えたり、 $repeat = 20; $count = 11;にしたりしたのですが、 両方ともうまくいきませんでした。 2ページ目にcsvの11行目からのデータを出力するにはどうすればいいのでしょうか? 私がしたいことは、1ページ目にcsvの1~10行目を、2ページ目にcsvの11~20行目を出力したいとおもっております。 上記のphp以外の記述でも構いませんので、どなたかお分かりになる方がいらっしゃいましたら是非教えて下さい。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHPでCSVファイルを編集したい

    PHPを触りだして間もない者です。 PHPでCSVファイルを編集したいのですが、上手くいきません。 CSVファイルの中身は{商品番号,名前,住所,年齢}が数行入力されています。 具体的にはPHPで引数の商品番号を基にCSVファイルで編集する行数を決定して、その行の一部項目を変更したいのですが、良い方法はありますでしょうか?

    • 締切済み
    • PHP
  • PHPでファイルのダウンロード判定について

    PHPでファイルのダウンロード判定について 宜しくお願い致します。 PHPのheaderでCSVファイルをダウンロードさせる際に、ダウンロードダイアログの開く、保存、キャンセルのどのボタンを押したかを取得する事はできますか? 開いた場合と保存した場合とキャンセルした場合で、その後の処理を変えたいと考えております。

    • ベストアンサー
    • PHP
  • phpでcsvファイルから二次元配列を作る

    php初心者です。 phpでcsvファイルを読み込んで、 配列[csvの行番号][項目名(csv一行目の内容)]=各々の値 という二次元配列を作りたいのですが、作り方が全く分かりません。 どなたか教えてください。

    • ベストアンサー
    • PHP
  • CSVファイルのダウンロード方法について

    CSVファイルのダウンロード方法についてご教授願います。 (いろんなサイトやFAQをみてきましたが、いまいちわからなかったのでここで質問させていただきます。) 現在、 (1)アンケート項目データ採取.cgi(集計プログラミング込み)…ブラウザ上表示はではcgiにhtmlテンプレートを読み込み ↓ (2)集計.CSVにてデータ集計 ↓ (3)検索.cgiにて(2)集計.CSVのソートや詳細の検索ができる ---------- 他、(4)修正phpがあり、(2)集計.cgiを集計できます。 ---------- (1)、(3)、(4)各ページで<a href="***/***/集計.csv">_CSVダウンロード_</a>なるものをリンク表記したのですが、ダウンロードできません。 どうしたらよいでしょうか?

    • 締切済み
    • CGI
  • PHPで、CSVファイルを、指定した行数だけ出力するには?

    同じようなトピックは、いくつかありましたが、あと一歩、わからないので質問させてください。 CSVファイルをPHPを使って読み込み、出力させる場合で、 CSVファイル data.csv --------------------------- データ1,説明,詳細 データ2,説明,詳細 データ3,説明,詳細 データ4,説明,詳細 データ5,説明,詳細   … データ100,説明,詳細 --------------------------- 上記のように100行あったとします。 この時、 PHPファイルを、 --------------------------- <?php $fp = fopen("data.csv", "r"); while ($data = fgetcsv($fp, 10000)) { $num = count ($data); print <<<EOD $data[0]・$data[1]・$data[2]<br> EOD; } fclose ($fp) ?> --------------------------- と書くと、100行目まで普通に出力してしまいます。 もし、10行目までを出したい場合は、どう記述すればよいのでしょうか? 上記のPHPソースに少し書き加える形で解決できればと思うのですが・・・ 色々試しましたが、私の力だけでは無理でした。

    • ベストアンサー
    • PHP
  • 1行目と2行目の間にデータを書き出すには・・・。

    私はプログラマではないのですが、会社でPHPプログラムの修正を頼まれてしまいました。 ■現在のプログラム ----------------------------------- $fp = fopen( $CSVFileName, "a+" ); $a = fseek($fp,0,SEEK_END); $ret = fputs( $fp, $CSV_SJIS); fclose($fp); ----------------------------------- 現在は、以上のような方法で新しいデータを追加しているのですが、これをデータファイルの2行目に追加するように変更して欲しいと言われています。 なぜ、そのような要求が出たかというと、データファイルというのがCSV形式のファイルで、1行目にはExcelで処理するための列名(項目名)が入っています。よって2行目に新しいデータを追加したいのです。 どなたか詳しい方がいらっしゃいましたら、回答をお願い致します。

    • ベストアンサー
    • PHP
  • CSVファイルのアップロードとダウンロード処理

    いつも大変お世話になっております。 PHPとpostgreSQLを利用してテーブルのデータをCSV形式でダウンロードとアップロードしようと考えています。ダウンロードとアップロードの際に、エラー処理を行いたいのですが、どのように書けばいいのかわかりません。参考になるサイトがありましたら教えて頂けますでしょうか。 宜しくお願い致します。

    • 締切済み
    • PHP
  • PHPでCSVの読み込みができません。

    PHP4+ApacheでWebアプリケーション(問い合わせフォーム)を開発しています。 普段はApache+PHPを導入したWindowsマシンでコーディングしていて、CSVファイルも開きます。 しかし、開発サーバ(Linuxマシン、ApacheとPHPのバージョンは同じ)へアップロードすると Windowsマシンで読み込みができていたCSVファイルが読み込みができなくなります。 CSVファイルの文字コードShift-JISで各項目は""でくくってあります。1行あたり10項目で20行固定です。 CSVファイル読み込みする理由は定義ファイルとして読み込んむためで、各行には宛先や問い合わせ内容・タイトル等を設定し、定義ファイルの番号(3桁の数字)によって問い合わせフォームを切り替えています。 ちなみにPHPの文字コードはUTF-8です。 例) "f01","パソコンセミナー申込","","","","","","","","" "f02","インターネットに触れてみよう。","","","","","","","","" "f03","申込期限2009年1月末,"","","","","","","","" "f04","hoge@aaa.jp","hage@bbb.jp","debu@ccc.jp","","","","","","" "f05","support@ddd.jp","","","","","","","",""  :  : "f20","○○○","20","△△△","","","","","","" 1行目は問い合わせフォーム名、2行目と3行目はフォーム内容のコメント、4行目は担当者宛のメールアドレス、5行目は自動応答用のメールアドレス、6行目以降は問い合わせフォームの任意設定項目(f20の場合、○○○:好きな食べ物は?、20:文字数20文字、△△△:3つ以内で記入してください)を表します。 問い合わせフォーム本体PHPと入力チェック等を行う外部ライブラリPHPを用いています。現状は、本体PHPでCSVをfopenで開いて、CSV読み込みにはfgetcsv()を使用しています。指定行以内でループさせ、該当の行の該当項目を指定しています。 CSVファイルはテンプレートのCSVファイルをコピー関数で複製・リネームしていますが テンプレートファイル内の各項目(各行先頭項目)はしっかりコピーされています。 Windows環境下では mb_convert_encodingを使用して、読み込み・書き込み(Shift-JIS⇔UTF-8変換)ともに動いています。 しかし、Linux環境下では、まったく読み込みすらできません。 Linuxで読み込みができないのがどうしてもわかりません。 よろしくお願いします。

    • ベストアンサー
    • PHP