• ベストアンサー

ココになんで「\」がつくのでしょうか?

okmotokunの回答

  • ベストアンサー
  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.4

01: <?php 02: 03: $data = " 04: 05: <html> 06: <head> 07: <title>タイトル</title> 08: </head> 09: 10: <body> 11: 12: <?php 13: $arr = file(\"testfile/test.txt\"); 14: mt_srand((double)microtime()*1000000); 15: print $arr[mt_rand(0,count($arr)-1)]; 16: 17: ?> 18: 19: </body> 20: </html> 21: 22: "; 23: 24: for($i = 0; $i < 10; $i ++){ 25: $fp = fopen("$i.php", "w"); 26: fwrite($fp, $data); 27: fclose($fp); 28: } 29: 30: for($i = 0; $i < 10; $i++){ 31: echo "<a href=\"./$i.php\">$i</a>\r"; 32: } 33: ?> 34: 「<?php」 はphpスクリプトの開始タグ、「?>」 は終了タグですよね。それで、 phpスクリプト文の中に書いた <?php、?> はphpタグではなく、単なる文字列です。 あなたの質問文は、 01行目 <?php で、ここから phpスクリプト開始、 03行目 $data = " で、4行目から、 22行目 "; で、21行目までの文字列を 変数$dataに代入する。ということになります。 この場合、4~21行の文字列中の変数は展開されますから、15行目の $arr を \$arr とエスケープしないとエラーになります。 シングルクォートで括ると変数の展開はしませんから、3行目、22行目をシングルクォートにすればエスケープの必要はありません。

pikapikamomomo
質問者

お礼

ありがとうございます! 大変助かりました。 シングルクォートにすればエスケープする必要もないのですね。 ありがとうございました。

関連するQ&A

  • 値の引継ぎについて

    下記のスクリプトについてなのですが… <?php $data=array("1","2","3","4","5","6","7","8","9","10","11","12"); for($i = 0; $i < 3; $i ++){ $index = fopen("$i.php", "w"); for($n = 0; $n < 4; $n ++){ fwrite($index,$data[$n]); } fclose($index); } for($i = 0; $i < 3; $i++){ echo "<a href=\"./$i.php\">$i</a><br>"; } ?> 0.php、1.php、2.phpのファイルができるのですが、1で表示されるのが5~8、2で表示されるのが9~12となるにはどのようにしたら良いでしょうか?

    • ベストアンサー
    • PHP
  • ファイルに書き込む時の負荷について

    PHPバージョン5.2.4を使っています。 次のような // ------------------------------------ $fp = fopen("data.txt", "w"); $buf = ""; for ($i = 1; $i <= 3; $i++) { $buf .= "aaa$i\n"; } fwrite($fp, $buf); fclose($fp); // ------------------------------------ という変数にいったん保存してから書き込む場合と // ------------------------------------ $fp = fopen("data.txt", "w"); for ($i = 1; $i <= 3; $i++) { $buf = "aaa$i\n"; fwrite($fp, $buf); } fclose($fp); // ------------------------------------ というその都度ファイルに書き込む場合とでは どちらが良い悪いというのはあるのでしょうか? たとえばこちらのやり方は負荷がかかるなど ループが多くなっていった場合に違いがでてくるのでしょうか?

    • ベストアンサー
    • PHP
  • PHPで作ったカウンタを任意の位置における

    ようにしたいのですができません counter.php: <?php $data_file = './access.dat'; //データファイル $fp = fopen("$data_file", "r+"); $cnt_num=(string)(fgets($fp, 64)+1); fseek($fp,0); flock($fp,2); fwrite($fp,$cnt_num); fclose($fp); $cnt_num=sprintf("%06d",$cnt_num); $f_pass = './a_gif'; for($i=0;$i<strlen($cnt_num);$i++)$value[]=substr($cnt_num,$i,1); for($j=0;$j<count($value);$j++)echo "<img src=$f_pass/".$value[$j].".gif>"; ?> としてHTMLの任意位置で <img src="./counter.php"/> をおいたのですが×マークが出るだけでカウンタ値が表示されません どうしたらいいでしょうか

    • ベストアンサー
    • CGI
  • PHPのfrrite関数

    お世話になります。 PHPのfwrite関数について質問です。 下記の様な記述で、アクセスがあった際に$lineをdata.txtに保存する場合、同じタイミングで複数のアクセスがあった場合などにエラーは起きないのでしょうか? エラーが起こりうるのであれば、その対処方法を教えて頂きたいです。 $fp = fopen("data.txt", "w"); fwrite($fp, $line); fclose($fp);

    • 締切済み
    • PHP
  • 新規ファイルを作成する

    にはどうしたらいいのでしょうか? <?php $file='gomi.dat'; $in=isset($_POST['in'])?$_POST['in']:'bad'; if(file_exists("$file")) { $a=file("$file"); foreach($a as $value) { echo "$value<br/>"; } } $fp=fopen("$file","w"); // <-------------- fwrite($fp,"$in\n"); fclose($fp); ?> <form method="post" action="<?= $_SERVER['PHP_SELF'] ?>"> <input type="text" name="in"/> <input type="submit" value="send"/> </form> は動きませんが $fp=fopen("$file","w"); // <-------------- を $fp=fopen("$file","r+"); // <-------------- としてあらかじめ空の gomi.dat (モード777)を作っていれば動きます どうしたら $fp=fopen("$file","w"); // <-------------- にしても動くようになるでしょうか?

    • ベストアンサー
    • PHP
  • 時間制限について

    携帯のホームページをつくっています。 アクセスしてから60秒間は「A」と表示し、60秒を過ぎるとは「B」と表示させようと考えています。 そこで <?php $file = "test.dat"; $a = file ($file); $fp = fopen ($file , 'w'); fwrite ($fp , date ('Y/m/d H:i:s')); foreach ($a as $line) { list($time) = $line; if (strtotime($time) > time() - 60) { echo 'A'; }else { echo 'B'; } } fclose($fp); ?> というような感じにしてみました。 けれど、更新するたびに$timeも動いてしまい、常にBと表示されてしまいます。 最初にアクセスした時間を固定する良い方法はございませんでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • fwrite の文法が間違っていますか?

    どうしてもエラーになってしまいます どこが間違っているかお教え頂けませんでしょうか 宜しくお願い致します $fp_i = fopen($indexphp, "w"); fwrite($fp_i, "<html>\n<head>\n"); fwrite($fp_i, "<title>title</title>\n"); fwrite($fp_i, "<meta http-equiv=\"content-type\" content=\"text/html; charset=Shift_JIS\">\n"); fwrite($fp_i, "</head>\n"); fwrite($fp_i, "<body>\n"); fwrite($fp_i, "<?php\n"); fwrite($fp_i, "$txt = 'test'\n"); fwrite($fp_i, "print'($txt)';\n"); fwrite($fp_i, "?>\n"); fwrite($fp_i, "</body>\n"); fwrite($fp_i, "</html>");

    • ベストアンサー
    • PHP
  • ファイル入出力について教えて下さい。

    ご覧いただきありがとうございます。 数値を入力して、数値を出力する方法を教えて頂きたいです。 ・   ・   ・ fp = fopen( "a.txt", "a" ); for( i = 16383; i >= 0; i-- ) { fprintf( fp, "%d", i ); } fclose( fp ); ・   ・   ・ data = (int *)malloc(32768); fp = fopen( "a.txt", "r" ); for( i = 0, i <= 16383; i++ ) { fscanf( fp, "%d", data+i ); } fclose( fp ); ・   ・ ・ 以上の記述で、入力はうまくいくのですが、出力の際に数値でなくなってしまいます。どうしてでしょうか? ご存じの方がおりましたら、ご回答よろしくお願いいたします。

  • テキストファイルの出力について

    今、学校の課題でC言語を使ってプログラムを作っています。 20000個のデータを読み込んで、200個ずつに区切り、別々のテキストファイルで出力するというものです。 最初につくったのは、以下の通りです。 *********************************************** FILE *fp; { int b,i=0; data[0][i]=trend_data[0][i]; data[1][i]=trend_data[1][i]; fp = fopen("D1.txt","w"); for(i=0;i<=199;i++){ fprintf(fp,"%8.8f %8.8f\n",data[0][i],data[1][i]); } fclose(fp); fp = fopen("D2.txt","w"); for(i=200;i<=399;i++){ fprintf(fp,"%8.8f %8.8f\n",data[0][i],data[1][i]); } fclose(fp); ・・・ ***************************************** これだと20000まで繰り返し記述しなければならずかなり困難だと思いました。そこで、ループを作ろうとしたのですが、テキストファイルをループを使って複数作成する方法がわかりません。 以下のようなプログラムを作ったのですが、テキストファイルが一つしか作られませんでした。 どのように記述すればよいのでしょうか? **************************************** FILE *fp; { int a,i=0; int b=1; int c=199; data[0][i]=trend_data[0][i]; data[1][i]=trend_data[1][i]; start: fp = fopen("D[1+b].txt","w"); for(i=a;i<=c;i++){ fprintf(fp,"%8.8f %8.8f\n",data[0][i],data[1][i]); if(i > c) c = c+200; a = a+200; b++; goto start; fprintf(fp,"%8.8f %8.8f\n",data[0][i],data[1][i]); fclose(fp); } } ****************************************** よろしくお願い致します。

  • PHP初心者です、教えていただけすか。

    /public_html /test のtest.txtの文字列をtest.phpで表示させたいのですが、 下記の文では表示されません、どこがおかしいのか教えてください。 <?php $fp = fopen ('test.txt', 'w'); $date = "test\n"; var_dump (fwrite($fp, $date)); fclose ($fp); ?>

    • ベストアンサー
    • PHP