ベストアンサー print_r以外の出力方法 2010/08/26 17:46 print_r以外の出力方法 print_rでは変数を指定しますが、 現在そのページで保持している変数(スコープの違い、配列など一切構わず)をすべて出力、もしくは確認できる関数はあるのでしょうか? みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー yambejp ベストアンサー率51% (3827/7415) 2010/08/26 18:07 回答No.1 変数となるとサーバー変数やらスーパーグローバル変数やらもひっかかりますがよろしいですか? <? $a="a"; $b=1; $arr = get_defined_vars(); print "<pre>\n"; print_r($arr); print "</pre>\n"; ?> 質問者 お礼 2010/08/27 16:47 リファレンス探しても適切なものが見つからなかったので助かりました! ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発PHP 関連するQ&A PHP の print_r( ) 関数について お世話になります。 上記タイトルの関数の出力形式について、添付のスクリーンショットを参考に質問させていただきます。 この関数の使い方などを調べてみると、出力の例として必ず添付写真の赤で囲ったようなものを見ます。 しかしわたしが2次元配列を作って出力したものは緑枠の中のように、内容がよくわかるようなものでなく、ただ連続して出力されています。 print_r( )関数を使うといつもこれです。 赤枠のようにきれいに出力する方法を教えていただきたいと思います。 print_rで出力した配列データファイルをfile_get_cont print_rで出力した配列データファイルをfile_get_contentsでそのまま取り込もうとしましたが、配列としてではなく文字列として取り込んでしまいます。 ひとつの配列にまとまってしまします。 text.php $data=array(1,2,3,4,5); print_r($data); Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) output.php これを別ファイルで取り込むと$value= file_get_contents("text.php"); echo $value; print_r($value);両方とも Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) が出力されました。 配列として取り込みたいのですが可能でしょうか? printの出力結果を変数に代入するには? PHP初心者です。 print関数で出力した文字を変数に代入するにはどうしたら良いのでしょうか? ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム 「print関数は出力先のファイルハンドル」の 出力先? 「print関数は出力先のファイルハンドル」の出力先とはどういう意味なのでしょうか? 本の説明では「次のprint文はファイルハンドルOUTを出力先に指定して$countを出力しています。」と書いてありました。 なんだかこの「出力先」と言うのが理解できないんです。 わかりやすく説明をしてください。 よろしくお願いします! $GLOBALS変数について教えてださい $GLOBALS変数について教えてください。 $GLOBALS変数は、スーパーグローバル変数と認識しています。 スコープが違っても、データを保持できるようですが ページが遷移してもデータを保持できるのでしょうか? $_SESSIONと同じようにページ遷移してもデータを保持できますか? テストをしてみたのですが同ページ内ならデータを保有することは 確認できてます。ページ遷移するとデータが初期化されてしまっている 状態です。 ご存知の方いらっしゃったら教えてください。 AWKで1項目以外を簡単に出力したい awkのprint出力で$1$2$3$4$5$6と書くのではなく、$1から$6までを簡潔に指定できる方法はありませんか? (たとえば$1-$6のような) すべて出力したい場合は$0でいいのですが、1項目だけ除外してあとはすべて出力したい時に項目が多い大変ですから。 QuarkXpress4.1で出力できないページがある よろしくお願いします。 QuarkXpress4.1でプリント出力できないページがあります。それも、全59ページ中の37-38ページ(見開き)だけなのです。それ以外のページは出力されます。念のため3.3で開きなおして出力するとちゃんとプリントされるのです。試しにこのページのものすべてを選択してコピーし、新規ドキュメントを作成してペーストし、4.1で出力をかけたところプリントされました。そこで元のドキュメントの37-38ページのあとに新規ページをふたつ挿入して37-38すべてをコピー&ペーストして、元の37-38ページを削除し、出力したところ、やはり同じ状態です。「使用状況」も確認していますし、このページだけ他と違うフォントを使っているわけでもありません。 出力されない、というのは、プリントの設定を一通り行って、プリントボタンをクリックすると、作業状況を示すインジケータのようなものが毎回必ず真ん中あたりで止まってしまう状況です。コマンド+ピリオドでも停止できません。時計は回ったままでマウスを動かすと位置は移動しますが、それ以外のことは何もできない状態です。1時間放っておけば1時間ずっとその状態です。コマンド+オプション+エスケープで強制終了する以外に抜け出せません。 来月には入稿なのですが、とりあえず3.3で見本出力ができれば大丈夫なのでしょうか。また、できることなら原因を突き止めて今後繰り返さないように改善したいのです。どなたかおわかりの方、教えてください。 MDDのG4、1.25GHz、OSは9.2.2です。データはモノクロのみです。画像はすべてeps、イラストレータデータは文字にアウトラインをかけてあります。 PL/SQLの変数内容出力について PL/SQLでの開発にあたり、もし良い方法がありましたら教えて下さい。 例外やORACLEエラー発生時、EXCEPTION処理としてUTL_FILEパッケージを使用したログ出力を行っています。 この際に、その処理の中で使用している全ての変数の内容を出力したいのですが、例えばV$テーブル等で、変数の内容を保持しているようなものは無いでしょうか? 一変数ずつ出力していると大変なので、例えばセッション情報を引数にして、そのセッションで使用されている変数内容を全て出力するようなログ関数を作りたいのです。 以上、よろしくお願いします。 一般的なechoとprintの実装方法 お世話になります、php初心者です。 phpでhtmlを出力する際の代表的な2つの関数(echo, print)がありますが、 以下の2点の実装方法のうち、一般的な実装方法はどちらでしょうか。 A index.phpで必要とするhtmlを全て変数に詰めて(必要とする関数を全て実行)、一気にはき出す B index.phpで必要するとhtmlを、逐次はき出す 答えて頂けると幸いです。 関数内、ファイルのstatic変数 関数内で、static変数を宣言した場合に、その値は保持されると 思いますが、その関数の外からポインタで見る場合にその値は 保証されるのでしょうか? (必ず同じメモリ上に配置されるのでしょうか?) また、関数とファイル内static変数においてスコープ以外に 取り扱いが変わったりするのでしょうか? (配置されるメモリ空間等) よろしくお願い致します。 指定した文字数だけ出力する方法 こんにちわ。 Perlプログラミングで質問です。 初心者なので、内容がわかりにくかったら申し訳ありません。 変数に入れた文字を、指定した文字数だけ表示する方法を教えて下さい。 例えば・・・ $aaa = "こんにちわ"; print "$aaa"; #こんにちわと出力される 上記のような内容で出力する時に「こんに」の3文字だけを出力したいです。 よろしくお願いします。 改行させずに文字配列を出力させる関数 改行させずに文字配列を出力させる関数は、printf以外にありますか? printf("Hello world!!"); //改行せずに出力 char str[]="Hello world!!"; puts(str); //改行されて出力 出力の最後に自動的に改行文字を追加しないで、文字配列を表示する標準関数って、printf以外にありますか? もしくは、改行されない関数が必要な場合は自作するしかありませんか? AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム 引数のみで出力 問題として main内部を変更してはならない。 関数sub()でmainのループと同じ出力するようにせよ。 ただし、関数subで引数以外の変数を宣言してはならない。 また、広域変数を追加してはならない。 となっていて、色々とforループで出力させようと 配列にしたりポインタにしたりしたのですが forのiに比例する配列をどう組めばいいのか、わからないです。。。 mainの出力は 1 8 15 22 29 36 となっています。 これをsubでもできるように設定するみたいです。 #include <stdio.h> #define MAX 7 void sub(int [MAX]); int main() { int i; int x[MAX]; for (i = 0; i < MAX-1; ++i) { x[i] = 7*i+1; } x[MAX-1] = 0; for (i = 0; x[i] > 0; ++i) { printf("x = %d\n", x[i]); } printf("print again\n"); sub(x); return 0; } void sub(int a[MAX]) { // a[6]=0 // MAX 7 a[MAX-1]=0; for(a[MAX-1];a[MAX-7]<=MAX-1;++a[MAX-1]){ //a[MAX-1] = 7*a[MAX-1]+1; printf("a[%d] = %d\n",a[MAX-1],a[MAX-7]); } } 何を言いたいのでしょうか!? 以下の意味ですが、わたし的(素人)には何を言いたいのか、物に例えると、輪郭程度でしたらわかります。 具体的に何を言いたいのでしょうか!?(PHP教本にありました。) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ $GLOBALS グローバルスコープに定義された変数名をキーとして連想配列を持ちます。 <?php $globals_test = 1; echo $globals_test,PHP_EOL; (1) echo $GLOBALS[‘globals_test’],PHP_EOL; (2) (1)と(2)は同じ変数を参照にしており、このスクリプトでは1が出力されます。 PHPでは関数の中などのローカルスコープでも、$GLOBALS変数を用いてあらゆるグローバル 変数への読み書きができます。globalキーワードと同様、スコープを区切らずにあらゆる変数にア クセスできてしまうと、思わぬ個所で値が変更され、それが他の個所で思わぬ影響を及ぼす場合があ ります。$GLOBALSを利用するのはやむを得ない場合や、利用用途がそのプログラムの開発に携 わるすべての人に明確である場合に限るべきです。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 以上よろしくお願いいたします。 画像ファイルを配列に格納する方法 http://okwave.jp/qa/q8852322.html このページで、 配列から直接圧縮画像ファイルを出力する方法を教えていただきました。 次は圧縮画像ファイルから配列を読み取るプログラムを作りたいと考えています。 http://tanlab.blog.fc2.com/blog-entry-31.html このページで画像ファイルをメモリに読み込む方法は書かれていて、 GdipCreateBitmapFromFile(ByVal StrPtr(file1), image) で変数imageに読み込むことができます。 このimageを上記のページの変数pDstBitmapに回すことで、 読み込んだ画像を別の画像として出力できることがわかりました。 いまやりたいことは 変数imageあるいは変数pDstBitmapを配列に書き出すことなのですが どうやれば良いでしょうか? これらの変数はLongとして定義されていて、 型が配列ではないのですが どのようにして扱えば良いのでしょうか? 一応、検索などして調べてみましたが 分かりませんでしたので教えてください。 javascript print()について javascript print()について教えて下さい。 作成したwebページをダイレクトで印刷したい。 イントラネットの環境でみるサイトを作成してます。 そのサイトに「印刷する」というボタンを設置し、print()関数を使用してそのページが印刷できるようにしてます。 ただ、print()を使用するとプリンターの選択画面が表示されます。これを失くして 「印刷する」のボタンを押せばダイレクトで通常使うプリンターに出力したいと考えてます。 これは可能なのでしょうか?また可能であればどのようにすればできるのでしょうか? 宜しくお願いします。 javaで配列の中身を表示する方法 こんばんは。 私は、PHPをやっていたのですが、今度はjavaにチャレンジしてみたいと思っています。 それで、質問です。 PHPでは重宝していたのですが、print_r()メソッドにあたるメソッドはないでしょうか? このメソッドは、配列やオブジェクトの中身を全て出力してくれるメソッドなのですが…。配列の構造が見たいときなどはとても重宝しました。 ex) ■プログラム $arr = array(1, 2, 3, 4, 5); print_r($arr); ■結果: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) ご存知の方いらっしゃいまいしたら、教えてください。 phpでの局所変数 phpで、perlでいうlocalやmyのような宣言はできないのでしょうか? function a() { if(1){ $a=2; print "$a<br>"; } print "$a<br>"; } としても2が2つ表示されてしまいます。 ある関数内で場所を問わず宣言したグローバル変数でない変数のスコープは、宣言場所がどこであれ、「関数内」となるのでしょうか? Rの微分同相で一次関数以外にありますか? f:R→RをC^∞微分同相写像であり、 fとその逆函数gのすべての微分が有界であるとします。 そのような函数の例として一次函数f(x)=ax+b があると思うのですが、これ以外の函数は存在しないのでしょうか。 それとも反例は見つけられないものでしょうか。 全組み合わせの出力プログラム $kana1[0][0] = "a"; $kana1[0][1] = "u"; $kana1[1][0] = "n"; $kana1[1][1] = "m"; という二次元配列があったときに an am un um と出力するようなプログラムのアルゴリズム(?)を教えてほしいです。 簡単なようでforループでやるとうまくいかずwhileを使ってフラグ変数とか作ってやってみましたがどうも駄目です。 ヒントでも何でもいいのでよろしくお願いします! むしろ二次元配列を使うのがダメなら言って下さるとありがたいです。 よろしくお願いします。 最終的には二次元配列の縦も横も任意の数のときにすべての組み合わせを出力できるようにならなければなりません。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
リファレンス探しても適切なものが見つからなかったので助かりました! ありがとうございます。