PHPについて質問です。


「sample.php」というファイルを新規で作成して、
そこに「print "ももんが";」を実行するスクリプトを作成してください。

ファイルへの書き出しは通常「fwite」関数を使うのでしょうが、
これまで作ったスクリプトをそのファイルで実行するということが目的ですので、
print関数を実行するスクリプトでお願いします。

質問者はまだ初心者なので、
自分のやりたいことをうまく質問することもままなりません。
不明瞭な場合はコメントをいただければ幸いです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/02/13 00:55:54
  • 終了:2008/02/14 01:20:49

回答(1件)

id:bayan No.1

bayan回答回数100ベストアンサー獲得回数132008/02/13 08:08:01

ポイント60pt

おはようございます。


> 「sample.php」というファイルを新規で作成して、

> そこに「print "ももんが";」を実行するスクリプトを作成してください。


sample.php というファイルを作成して、その中に 「print "ももんが";」 を

実行するPHPスクリプトを書き込むということでしょうか。

// $fname ファイル名
// $text 書き込む内容
// 戻り値 書き込んだバイト数、失敗なら -1
function write_file($fname, $text) {
  $len = -1;
  $fp=@fopen($fname,"w");
  if($fp){
    $len = fputs($fp,$text);
    fclose($fp);
  }
  return $len;
}

$script = '<?php print "ももんが"; ?>';
write_file("sample.php", $script);

http://q.hatena.ne.jp/1202816828 で皆さんが回答されている内容と

あんまり変わらないですね。


PHP5までは文字列をファイルに書き込む簡単な関数がないので、

ユーザ定義関数を用意していますが、PHP5からは file_put_contents という

関数が利用できます。これを使えば次のように書けます。

$script = '<?php print "ももんが"; ?>';
file_put_contents("sample.php", $script);


でも恐らくここまでの回答はハズしていそうですね。。。


> ファイルへの書き出しは通常「fwite」関数を使うのでしょうが、

> これまで作ったスクリプトをそのファイルで実行するということが目的ですので、

> print関数を実行するスクリプトでお願いします。


すみません。ここのくだりがちょっとわかりませんでした。。。

が推測で回答してみます。

例えば次の内容で hoge.php があるとします。

<?php
print "ももんが";
?>

同じディレクトリ(フォルダ)にある sample.php を実行するときに、

この hoge.php の内容を読み込んで実行したいということであれば、

include 文が使えます。

次のように sample.php を書きます。

<?php
include "hoge.php";
?>

http://www.php.net/manual/ja/function.include.php


大雑把に言うと、include "hoge.php"; と書いた場所に、hoge.php の内容が

埋め込まれるイメージになります。


include の仲間には、同じファイルの読み込みは1度だけ行う include_once や、

対象のファイルが読み込めないときはエラーになる require や require_once も

あります。

こんなことで、やりたいことに近づけるでしょうか。

共通に使えるユーザー定義関数や定数を別のファイルに書いておき、

いろいろなPHPスクリプトから「インクルードする」ということがよく行われます。

(共通に使えるものを一箇所にまとめる、同じものをあちこちに書かない)

id:taroemon

こんばんは。


ご回答いただいてから、ずっと悩んでいたので、

すでにもう「こんばんは」の時間になってしまいました。

やはり、僕がやりたかったことはご指摘の

「include」を使うことによって実現できるようです。


質問が不明瞭で大変失礼しました。

しかし、おかげでひとつPHPを理解することができました。

また質問しますので、今後もいろいろ教えてください。

2008/02/14 01:20:17
  • id:tezcello
    既に、
    <?php

    print 'ももんが';

    print 'むささび';

    print 'ほげほげ';

    ?>
    というようなスクリプトが出来ていて、
    個別の print を変更しないで、それぞれの出力を sample.php というファイルに書き出したいって事でしょうか?

  • id:taroemon
    tezcelloさんコメントありがとうございます。
    おそらくご指摘の通りだと思います。

    「思う」というのは、ちょっと自信をなくしていて断言ができないのです。
    今回の質問もなんとか自分のやりたいことを文章にしようと思って、
    がんばってみたのですが、うまく伝わらなかったようです。
    逆に、ご指摘いただいてることが、
    ちゃんと理解できてるかはなはだ怪しい感じです。努力はしているのですが・・・。
    私にはまだPHPの敷居が高いと言うことでしょう。

    不明瞭なことばかりですみません。
    今後も質問しますので、これに懲りずまたいろいろ教えてください。
    よろしくお願いします。


  • id:bayan
    私の書き方で、気分を害して/自信を失わせてしまったようであれば申し訳ないです。


    振り返ると、PHPを触り始めて7年くらい経ってしまいましたが、
    まだまだ精進が足りんです。(飲み込みの良い方ではないので。。。)

    人力検索もはじめて1年以上経ちましたが、常々スマートな回答ではないとなぁ思います。
    他の回答者さんの回答を見ては「うーなるほどー」とうなっています。


    でも、なんであれ、はじめはみんな初心者なんで、めげずに努力するしかないと思っています。

    懲りずにがんばってください。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません