• 締切済み

PHPでの最適なダウンロード方法

PHPでのファイルのダウンロード方法を教えてください。 ・XOOPSなどのフレームワークを利用している際の最適なダウンロード方法 (テキスト情報を、ただ単にリダイレクトをするとXOOPSのヘッダなどのHTMLまで出力されてしまう。そうかと言って、ヘッダ読み込みの前にリダイレクトをしようとすると関数などが読み込まれていないため処理が動かない) いい知恵をいただけたらと思います。 よろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

XOOPSの仕様が良くわからないのですが、 単純に自分でヘッダを書いて、あとは データを流し込むだけでよいのでは?

関連するQ&A

  • PHPでのリダイレクト

    PHPでウェブアプリを作成しています。 PHPでのリダイレクト方法として、 header("Location: xxxxx.php"); を使うことが多いのですが、HTML出力のあとで使おうとすると、 「Warning: Cannot modify header information - headers already sent by (~」というPHPエラーが発生します。 HTML出力前にリダイレクトができればいいのですが、 HTMLをかいたあとに、PHP処理をさせている処理構造上、header関数以外でリダイレクトする方法はあるのでしょうか?

    • ベストアンサー
    • PHP
  • PHP header関数が使えない

    OS:Linux PHP、Postgres のシステム環境です。 現在PHPのheader()関数が動いてくれません。 (リダイレクトできない。) <HTML> <HEAD><TITLE>aaaa</TITLE></HEAD> <BODY> <?php header('Location: http://aaa.com/'); ?> </BODY> </HTML> こんな風にHTMLタグなにか出力した後にheader関数を呼び出すとエラーになり、headerのコールはすべての出力の前に行うこととサイトで調べてみまして分かったのですが。 あるシステムではHTMLタグの中に入れてもheader関数は問題なく動いています。 php.iniの設定なのでしょうか、それともプログラムの記述方法で回避できるのでしょうか? このおかげで膨大な修正が必要になりました。 回避策はございますでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPのheader関数の疑問

    header関数について疑問がありご質問させていただきます。 header関数について下記の説明をみつけました。それに関して質問があります。 『覚えておいて頂きたいのは、header() 関数は、 通常の HTML タグまたは PHP からの出力にかかわらず、すべての実際の 出力の前にコールする必要があることです。 頻出するエラーとして、include() または require() 関数、他のファイルをアクセスする関数に 空白または空行があり、header() の前に出力が 行われてしまうというものがあります。同じ問題は、単一の PHP/HTML ファイルを使用している場合でも存在します。』http://fol.axisz.jp/php/man/php/function.header.html 上の説明文にしたがって下記のコードを試しましたが正常にリダイレクトされました。上記は以下に示すコードでエラーとなると考えましたが違うのでしょうか ---------------- 以下 PHPファイル --------------- <html> <body> <?php header("Location: http://exsample.co.jp"); ?> </body> </html> ----------------------------------------------------- 上記のPHPファイルでエラーが発生せず正常にリダイレクトされましたが引用で書かれていることはどういうことなのでしょうか。 近くに聞く人がいなくて困っています。宜しくお願いします。

    • ベストアンサー
    • PHP
  • php URLのヘッダーを確認するプログラム

    php であらかじめ用意した1000件程度のURLのヘッダーから リダイレクト処理をしているかを確認しファイルに書き込むプログラムをつくっております $headers = @get_headers($chk); $headchk = $headers[0]; $findme= "30"; $checkridirect = strpos($headchk,$findme); で判定できたのですが、 これを1000件ループさせたところ処理がおいつかず ひたすら処理中になっています。 しかもサーバのし仕様か何かで HTML部分のヘッダーは表示はされても処理中でコンテンツが表示されなくなり 処理が終わってもそのままです。 何か良い方法はありますでしょうか?

    • 締切済み
    • PHP
  • PHPファイルの暗号化(難読化)方法

    PHPファイルの暗号化(難読化)方法 PHPファイルを暗号化(難読化)する方法を探しています。 現在は、有料の暗号化ツールを使用せずに、 自作で暗号化(難読化)を実施可能かどうかを検討しております。 ファイル全体を暗号化したいのですが、 ファイル内容は、PHPの開始タグ(<?php)、終了タグ(?>)とHTMLタグが混在していて それをbase64_encodeなどを使用し、暗号化をかけた場合、 base64_decodeで復号をかけたデータをブラウザにて実行させたい場合は、 どのようにすればよいか困っています。 eval関数は、phpソースコードを実行するため、 PHPの開始タグ、終了タグをのぞいた、phpコードしか実行できません。 echo関数では、phpソースコードもそのまま出力されます。 PHPの開始タグ、終了タグとHTMLタグ混在していても、 ブラウザ上でphpコードの実行とHTMLタグの出力が実行できる方法はないでしょうか。 ネット上で調べてみましたが、 phpコードのみを暗号化して、eval関数で実行するものしか 発見することができませんでした。 そもそも、ファイル全体を上記のような方法で復号化⇒実行することは無理で、 ファイルの中身を解析し、タグの置き換えや、 eval関数が使用可能な処理とそうでない処理とに分けるようなことになるのでしょうか。 暗号の目的は、ファイルが一見、何を行っているのかわからなく、 そのまま処理を使いまわしできないようにしたいためです。 PHPや暗号化に詳しい人が復号化できてしまうことは、理解しております。 何か方法やアドバイス等、ございましたら、 ご回答頂ければと思います。 phpバージョンは、5.2.14です。 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPを使ってHTML内のフォームに書き込んだ内容をテキストファイルと

    PHPを使ってHTML内のフォームに書き込んだ内容をテキストファイルとして出力(タグとかも同時につけて)したいのですがどういった関数など使えばいいでしょうか? PHPに関して初心者なのでまだ書き方とかもよくわかっていないのですがヒントなどいただけるとうれしいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPを用いてPOSTし、リダイレクトする方法

    お世話になります。 PHPを用いてリダイレクトさせたいのですが、リダイレクト先にはHTTPリクエストのPOSTを用いて情報を送信させる方法を教えてください。 いろいろ調べたのですが、 curl関数やfsockopen関数では、POSTでリクエストして、レスポンスが返ってくるので、望むような方法が実現できません。 なぜ、リダイレクトさせたいかというと、リダイレクト先は違うhostなので、画像やcss、formなどがうまく表示・動作できないようになってしまうためです。 送信方法として、フォームによる送信を行いますと、クライアント側に情報を埋め込んで送信するため、セキュリティ的に問題がありますので、PHPから情報を飛ばしたいと考えております。 よろしくお願いします。

    • 締切済み
    • PHP
  • PHPからHTMLメール

    LINUX7.0でPHP4を使っているんですが、プログラムからHTMLメールを送れません。何かいい方法はありませんでしょうか? mail()関数でも/usr/sbin/sendmailからでもいいのですが、ヘッダ部分がうまく付けることができていないようです。どなたか教えてください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • リダイレクト元のURLの取得方法について

    現在、以下2つのphp5プログラム(+ PEAR::AUTH)で、なんちゃってフォーム認証するCGIを作成しています。 環境 Windows XP、Web SV IIS 5.1 (1) aaa.php  : PEAR:AUTHを使った、ログイン画面(フォーム認証CGI)。  : 機能 : MySQLに格納されたID/PWで認証する。認証OKだったら、bbb.phpが出力するDBレコードデータ参照ページへのリンク集を出力する。    リンク1)http://domain.jp/bbb.php?id=1001    リンク2)http://domain.jp/bbb.php?id=1002    リンクn)http://domain.jp/bbb.php?id=nnnn    ・・・といった感じで、DBに登録されたレコードを表示するCGIへのリンクをずらずら出します。 (2) bbb.php  : DBデータを整形し、多少見やすい形に加工したHTMLページを出力する。    この時、aaa.phpが認証OKの証?として出力したCookieが、    1.あったらHTMLページ出力し、     例1)http://domain.jp/bbb.php?id=1001 = 一意のキーid=1001の値で出力出来る、MySQL上のデータをHTML化したもの     例2)http://domain.jp/bbb.php?id=1002 = 一意のキーid=1002の値で出力出来る、MySQL上のデータをHTML化したもの     例n)http://domain.jp/bbb.php?id=nnnn = 一意のキーid=nnnnの値で出力出来る、MySQL上のデータをHTML化したもの    2.無かったら、     (a) http header 401を出力     (b) aaa.php(フォームログイン画面)にリダイレクトする。  一応、ここ迄はいいのですが、例えば、利用者が、上記例2のURLをブラウザ「お気に入り」で保存しておき、直接そのページをみたい、と言った時、リンク指定先のbbb.phpは、  ・ そのユーザがログインしていない場合(Cookieが無い場合)、aaa.phpのログインフォームへリダイレクトする  ・ aaa.phpは認証後、リンク集ページを出力する、  といった動作になってしまいます(てゆうかそうゆう作りなんで当たり前ですが・・・)。  そこで、aaa.phpの機能で、  ・ 「どのURLから、リンク(リダイレクト)されてきたかを判定するロジック」を入れ、もし、「bbb.php?id=xxxx」だったら、   ・ 認証OK後、直接、そのbbb.phpが出力するHTMLのURL(http://domain.jp/bbb.php?id=xxxx)に、再度リダイレクトする処理を入れれば良い?、   のかなーと短絡的に考えました。  で、問題となるのが、aaa.phpが表示された時、どこからリダイレクトされてきたか(リダイレクト元のURL)を知る方法です。  そこで、PHPの、$_SERVER[HTTP_REFERER]を入れてみた所、  ・ bbb.phpにリダイレクトされる前のURLが、$_SERVER[HTTP_REFERER]に入っている(多分、別のHTMLのbbb.php?id=~へのリンク集?)  ・ $_SERVER[HTTP_REFERER]の中が空(URL直接指定?)  という現象で詰まってしまいました。  ここから抜け出す為、何か良いアイディア(別の方法、関数等)があればお知恵拝借したいと考えています(書いてある事を理解して頂ける文章か今イチ不安ですが・・・)。  何卒よろしくお願いします。

    • ベストアンサー
    • PHP
  • header関数で遷移した際のURLエンコード

    こんにちは。 XOOPSを利用しております。 ログイン画面を表示する際にSSL化したいため、PHPのheader関数を利用してSSLページを表示させることをしております。 その場合に、ログイン後のリダイレクトするページを保存するために、「xoops_redirect="リダイレクト先URL"」という変数をURLに埋め込んでおります。 そこで解決できない問題があります。 header()使用時には、xoops_redirectの値をURLエンコードして以下のように送っております。 header(Location: https://localhost/xoops/user.php? xoops_redirect=%2Fxoops%2Fmodules%2Fcs%2Fsearch.php%3Fcid%3D1%26aid%3D1);" しかし、表示されるURLを見ると以下のようにxoops_redirectの値がURLエンコードされておりません。 https://localhost/xoops/user.php? xoops_redirect=/xoops/modules/cs/search.php?cid=1&aid=1 よって、$_GET['xoops_redirect']で値を取得すると、"/xoops/modules/cs/search.php?cid=1"という部分のみしか取得できません。 何か分かることがありましたら教えてほしいです。 別の解決方法でもぜんぜんかまいません。 よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう