• ベストアンサー

JSON の出力先ディレクトリの指定方法

cakePHPの初心者です。 以下のようにPHPからJSON形式で、データファイルを出力したいと考えております。 $json = new Services_JSON; $encode = $json->encode($hoge); echo $encode; ですが、出力先ディレクトリの指定の仕方が分かりません。 ご存知の方、恐れ入りますが方法を教えて頂けますでしょうか?

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

質問者が選んだベストアンサー

  • ベストアンサー
  • 4017B
  • ベストアンサー率73% (1304/1775)
回答No.1

cakePHPは使った事がないので、いまいち自信は無いけど… ━ ココから ━━━━━━━━━━━━━━━━━━━━━━━━ $json = new Services_JSON; $encode = $json->encode($hoge); /* バッファリング開始 */ ob_start(); /* echoコマンドは無視され, $encode の内容がメモリ上に一時保存 */ echo $encode; /* メモリ上に一時保存(バッファ)されたデータを, $output へ代入 */ $output = ob_get_contents(); /* 一時作成されたバッファをクリア */ /* これを行わないと, バッファに残ったデータ(文字列)が画面に表示されてしまう */ ob_end_clean(); /* $output をファイル(test.txt)として外部に保存 */ $my_file = fopen( 'hoge/hage/test.txt', 'w' ); fwrite( $my_file, $output ); fclose( $my_file ); ━ ココまで ━━━━━━━━━━━━━━━━━━━━━━━━ ~こんな感じOKなはず?? ポイントとしては「ob_start() ~ ob_end_clean()」で出力したいデータを囲んで、バッファとして確保する事でしょうか?他にも色々なやり方はありますが、一つの方法として参考程度に。

関連するQ&A

  • .htaccessによるディレクトリ内ファイル一覧出力(JSON形式)

    .htaccessによるディレクトリ内ファイル一覧出力(JSON形式) .htaccessを利用して,ディレクトリ内部のファイル一覧をJSON形式で出力することを考えています. DirectoryIndexで設定したインデックスファイルが存在しない場合に表示される ファイル一覧ページを変更する形での実現を調べてみましたが,よくわかりませんでした. .htaccessでそのような設定は可能なのでしょうか. また,ファイル一覧ページの変更以外に何か方法はあるのでしょうか. なお,PHP等のサーバーサイドスクリプトは使わない方針でお願いします.

  • $.getJSONにJSON.stringifyを

    $.getJSONに、JSON.stringifyした結果を指定したいのですが、どうすればよいでしょうか? ■現状 ・コンソールにJSONは出力されているのですが、$.getJSONでこのファイルを指定しても、画面真っ白です ▼index.html <script type="text/javascript" src="hoge.json"></script> <script type="text/javascript"> $.getJSON('hoge.json', function(data) { ▼hoge.json var obj =([ [略], ]); var json_text = JSON.stringify(obj); // テスト出力 console.log(json_text); ■質問 ・$.getJSONにこの出力結果(json_text)を指定するためには、どうすれば良いでしょうか? ・一旦ファイル出力しなければいけないのでしょうか? ・どうやるのでしょうか? ・AJAXでサーバ側へデータを渡してファイル出力した後、$.getJSONでその出力したファイルを指定するしかない?

  • getJSONで受け取れるよう出力するには?

    ■前提 ・$.getJSONでAPIからデータ取得するサンプルがあります ・この時、第1引数のURLを叩くと、データが表示されます $.getJSON('http://hoge … &callback=?') .error( ajaxError ) .success(function( data ){ ・動作確認のため、「第1引数のURLで表示されたデータ」を取得(コピペ)して、「piyo.php」としてアップロードしてみました ■質問 ・$.getJSON第1引数を「piyo.php」へ変更すると、同じようにデータ取得できると思ったのですが、うまくいきません ・何故でしょうか? ・「json値」をサーバが返すようにすれば良いのでしょうか? ・それはどうやるのでしょうか? ・「echo json_encode?」「header('Content-Type:?」それとも、拡張子がjsonじゃないといけないのでしょうか?

    • ベストアンサー
    • AJAX
  • php5.16でjsonを使うには?

    http://www.dezinerfolio.com/dfgallery-2/free-flash-gallery こちらのFlashギャラリーを使用したくて苦戦しています。 サイトではphp5+と説明されているのですが、json関数を使用できないとうまくデータのやり取りができないようです。 なんとかphp5.16の環境でjsonを使えるように試しているのですが、 http://www123.ddo.jp/extwiki/?2.0%2Fjson_encode%E9%96%A2%E6%95%B0 という、json encodeを試してみてもだめでした。 これはphp4.xでjsonを使用する為のものみたいです。 php5.16でjson encodeを使用できるようなうまい方法はないでしょうか? よろしくお願い致します。

    • 締切済み
    • PHP
  • php5-fpmでjson_encode()エラー

    json_encode()を有効にするにはどうしたらいいでしょうか? ・エラーメッセージ Error: Call to undefined function json_encode() File: /var/www/cake.net/lib/Cake/View/Helper.php Line: 516 ・環境 ubuntu13.10 nginx php5-fpm ※cakephpのチュートリアル勉強中です ・やったこと phpのインストール $ sudo aptitude install php5 php5-cgi php5-cli php5-mysql php5-gd php-apc php5-fpm php5-curl php5-json php5-dev $ php /var/www/hoge.com/app/webroot/phpinfo.php Loaded Configuration File→/etc/php5/fpm/php.ini $ sudo vim /etc/php5/fpm/php.ini 最後の行に extension=json.so 追加 $ sudo vim /etc/php5/mods-available/json.ini ; configuration for php json module priority=20 extension=json.so $ sudo service php5-fpm restart $ sudo service nginx restart -- 以上です jsonを扱ったことないので質問の仕方もあっているかどうかわかりませんが ubuntu+nginx環境のphp5-fpmでjsonを扱う場合はどうしたらいいでしょうか? phpinfo()して確認してもjsonの記述はModule Authorsのところにしか出てきません ご回答お待ちしております

    • ベストアンサー
    • PHP
  • json_encode日本語表示/PHP5.2.5

    PHP5.2.5で、json_encodeした結果を日本語表示させたいのですが、どうすれば良いでしょうか? ・unicodeエスケープされた結果を、JSON形式のまま、元(Unicodeアンエスケープしていない状態)に戻すにはどうすれば良いでしょうか? ・あるいは、json_encodeを利用せず(?)に、ユーザー定義関数を利用する方法でもいけるのでしょうか?、 例えば、下記関数を5.2.5で動作させるには、どうすれば良いでしょうか? ▽PHPでUnicodeアンエスケープしたJSONを出力する関数 - オープンソースこねこね   http://kohkimakimoto.hatenablog.com/entry/2012/05/17/180738

    • ベストアンサー
    • PHP
  • JSON変換データをjavascriptへ渡したい

    json_encode()関数で、JSON形式の文字列に変換した配列データをjavascriptへ渡したいのですが、 いつのまにか、ただんの文字列になってしまいます。なんででしょうか? ■コード $jsondata= json_encode($originalarray) <script type="text/javascript"> var result = <?php echo($jsondata) ?>; alert(result); </script> ■変数 ・$originalarray Array ( [0] => ./im/1a.j [1] => ./im/2.j [2] => ./im/9_1.j ) ・jsondata [".\/im\/1a.j",".\/im\/2.j",".\/im\/9_1.jp"] ・result ./im/1a.j./im/2.j./im/9_1.jp

    • ベストアンサー
    • PHP
  • どのように指定したらいいの?

    PHPフォームの「form action」の記述についてですが、 次のページで入力結果を出力したい場合はどうすればいいのでしょうか? <?php echo $_SERVER["PHP_SELF"]; ?> $_SERVER["PHP_SELF"]、とした場合、 データ出力のファイル名はどうすればいいんでしょうか? <form action="hoge.php3"~略>のように指定してしまえば、 出力先のファイル名は「hoge.php」でいいと思うのですが…。 初めてフォームをPHPで作るので本を読んでも良く分かりません;; よければ教えてくださると助かります!; よろしくお願いします!!

    • 締切済み
    • PHP
  • MySQL→PHP→JSONをしたいのですが…

    現在、MySQLから取得したID一覧をJSON形式で出力したいのですが、うまくいきません。どうしたらよいでしょうか?よろしくお願いします。 なお、PHPでは以下のような処理をおこなっています。 ///////////////////////////////////////////////////////////////////// ・ ・ ・ //SQLを発行して結果セットを取得します $rst = mysql_query($sql); while ($col = mysql_fetch_array($rst)) { $return[] = $col; } function get_id($f) { return $f["dataid"]; } $return = array_map( "get_id", $return ); // JSON形式にして返す if( $return ) print Jsphon::encode( $return ); ・ ・ ・//////////////////////////////////////////////////////////////////// このようなかんじです。 この出力結果は『 ["18","19","20"] 』このようになるのでJSONでうまく処理できていないようです。 JSON形式なら『 {"dataid":"18","dataid":"19","dataid":"20"} 』 になるはずなのですが…何故でしょうか?教ええてください。お願いします。

    • ベストアンサー
    • PHP
  • PHPでのドキュメントルート指定方法

    PHPでのドキュメントルートの指定方法がうまくいかず困っています。 マルチドメインで組んでいます。 公開ディレクトリのルートは /home/hoge/www になります。 wwwの中に/piyo/でマルチドメインを組んでいます。 →絶対リンクを/home/hoge/www/piyo/ ここに指定したいです。 あるサイトを見てcommon.phpを作成し、index.phpと同じ階層に置き、index.phpの頭に <?php include 'common.php'; ?> を指定すると設定ができると記載されていたので下記の様に設定しました。 // common.php // <?php // サーバー上の絶対パスを記入 // これは公開ディレクトリのルート(サイトのルートディレクトリ)と一致 $__DOC_ROOT__ = '/home/hoge/www/piyo/ <http://piyo.co.jp/> '; ?> // index.php // <?php include 'common.php'; ?> <!doctype html> <html lang="ja"> … <?php echo $_SERVER['DOCUMENT_ROOT']; ?> … </html> echoで呼び出してみましたがサイトのルートディレクトリが /home/hoge/www こちらになり変更されていませんでした。 これを /home/hoge/www/piyo/ に変更したいと思います。 ご回答よろしくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう