トップページphp
1001コメント296KB

くだすれPHP(超初心者用)6

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/04/05(日) 22:04:26ID:???
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。

PHP Home Page
ttp://www.php.net/
ttp://jp.php.net/

前スレ
くだすれPHP(超初心者用)5
http://pc11.2ch.net/test/read.cgi/php/1227303362/

関連スレ
PHP総合雑談スレ
http://pc11.2ch.net/test/read.cgi/php/1200314111/
PHP初心者勉強会やらんかね!
http://pc11.2ch.net/test/read.cgi/php/1209137730/
05675572009/07/07(火) 23:09:14ID:???
みなさんレスありがとうございます。
一応求めていたのは>>563さんのものだったのですが、
アホなので理解できませんでしたw
$lvが増えていくと処理が遅くなりそうですが、
とりあえず現状は9までで間に合うので>>566さんので妥協しようかと思います。
ありがとうございました。
0568nobodyさん2009/07/08(水) 02:20:29ID:???
つ変数の初期化
つpow

てか今の経験値で到達するレベルじゃなくて、今のレベルに必要な経験値を求める関数でいいの?
0569nobodyさん2009/07/08(水) 08:58:54ID:szsLUg6E
>>568
今の経験値からLvがいくつかなのを求めるということでしょ。
0570nobodyさん2009/07/08(水) 09:00:15ID:???
あげちゃったすまそ
0571nobodyさん2009/07/08(水) 10:06:03ID:???
だからそのために1〜99まで毎回ループして比較するわけ?って言ってんの
0572nobodyさん2009/07/08(水) 10:26:11ID:???
その関数で配列作っておいて
配列スキャンするのがいいんじゃないかな。
0573nobodyさん2009/07/08(水) 14:29:28ID:???
99回のループが問題になるって、どんなんだよw
それに、3次の解の公式の方が重たいだろ、複素数出てくるし3乗根出てくるし。
0574nobodyさん2009/07/08(水) 14:36:42ID:???
お前頭悪いだろ
0575nobodyさん2009/07/08(水) 14:44:00ID:???
>>574
理解できないならそう言えばいいのに。
0576nobodyさん2009/07/08(水) 15:55:04ID:???
この一連の流れがまったくわかってない人がいるね
0577nobodyさん2009/07/08(水) 18:11:27ID:m/DVsNfk
PHPの完全な初心者です。
さきほど、http://windows.php.net/download/ よりZipをDLし、本の指示に従い
「php.ini-recommened」をコピーして「php.ini」にしようとしましたが「php.ini-recommened」
が見つかりません(似たようなものなら有りますが)。

DL→解凍した中身は下記の通りです。
http://uproda11.2ch-library.com/185843edT/11185843.jpg 
どうしたら良いでしょうか?
0578nobodyさん2009/07/08(水) 18:23:14ID:???
そのくらいで迷うなら本とバージョンもあわせたほうがいいかもね。

php.ini-development や php.ini-production の中見てみた?
あと一緒に添付されてるinstall.txtとかも読もうぜ
0579nobodyさん2009/07/08(水) 18:25:03ID:???
応用の利かなさっぷりがすごいな…
0580nobodyさん2009/07/08(水) 19:21:59ID:???
>>576
こうだろ。

568==571<今のレベルと次のレベルの経験値を保存しとけばいいだろ。
573<毎回99回のループで計算してなにか問題でも?
0581nobodyさん2009/07/08(水) 19:45:09ID:???
572 でいいと思うのだが
0582nobodyさん2009/07/08(水) 19:53:20ID:???
572でいいな。
0583nobodyさん2009/07/08(水) 23:49:11ID:???
俺も>572のようにLvと総経験値の対応テーブルを持っておくに一票。

・計算式の変更が起きる可能性は高いだろうから、簡単に差し替えられるようにした方が便利
・また、変更があった際に、Lv10とLv2で同じ計算式になるって保証もないので、式の一般化はしない方が便利
・毎回算出しても問題になるような量の計算でもないが、無駄な計算を回避できるに越した事はない

>563 のような式そのものをコードの中に組み込むのは
・後でどういう式で計算してるのか分かるように、ロジックをソースコードの中に書いておきたい
・「ルチ将軍のLvは1300だ」とか「私の戦闘力は53万です」とか、データ量が多すぎで一覧表にしてられない
場合とかかな。
0584nobodyさん2009/07/09(木) 00:29:26ID:???
ワンチップマイコンでもあるまいし今の時代に
ソースサイズ必死で小さくする理由があるんかねw
0585nobodyさん2009/07/09(木) 00:41:28ID:???
そもそもPHPが毎回起動すんだろ。

IF文が200個くらい増えたところで、
起動プロセスよりはるかに軽い。
0586nobodyさん2009/07/09(木) 00:45:18ID:???
PHP毎回起動とか何時代のインフラだよ
0587nobodyさん2009/07/09(木) 00:45:48ID:???
Apacheのプロセスでは?
0588nobodyさん2009/07/09(木) 04:32:30ID:???
>>583は「構造化のススメ」かな?
ソース分けて関数にするだけで>>583のような心配は無くなる。
あとは関数の中身を自分の解りやすいように書けばいい。
0589nobodyさん2009/07/09(木) 04:56:29ID:???
どういう関数にして実際のスクリプトではそれをどう利用すると?
0590nobodyさん2009/07/09(木) 09:55:40ID:???
CG やアクションでも、計算量多いのは予め計算済みの値を配列(テーブル)に入れるのが定石。

function is_next_level($current_level, $current_exp) {
 $level_table = array(
  '1'=>'8',
  '2'=>'26',
  '3'=>'58',
  '4'=>'108',
  '5'=>'180',
  '6'=>'278',
  '7'=>'406',
  '8'=>'568',
  '9'=>'768',
  );

 $next_level = $current_level + 1;

 if ($level_table[$next_level] < $current_exp) {
  return true;
 }
 else {
  return false;
 }
}

$level = 54;
$exp  = 2000;
if (is_next_level($level, $exp)) {
 print 'レベルがあがった。再帰でも使って何レベル上がったか返す関数は自分で書け';
}
0591nobodyさん2009/07/09(木) 10:33:32ID:???
学校の課題とかでスマートに書きたいんじゃね?
0592nobodyさん2009/07/09(木) 11:46:56ID:???
>>591
君、そうとう鈍いだろ
0593nobodyさん2009/07/09(木) 15:05:13ID:9xva5nyV
俺なら手っ取り早くDBに入れるけどなあ
SELECT MIN(level) AS level WHERE exp > 2000
こんなかんじ?
0594nobodyさん2009/07/09(木) 15:06:28ID:???
わざわざDBに計算してもらうの?(驚愕
0595nobodyさん2009/07/09(木) 15:06:57ID:???
経験値取得の度に DB アクセス…
0596nobodyさん2009/07/09(木) 15:35:32ID:???
ソース書く人と仕様を決める人が同じオナニープログラムなら
>>566みたいなのでいいかもしれんが
将来的に拡張される可能性があるなら配列に入れるのが手っ取り早いね
もちろん、いずれは膨大な数になるとかならDBでもいいけど
高々10個足らずの整数値しか取らない変数にDBはありえないでしょ
0597nobodyさん2009/07/09(木) 15:59:42ID:???
572 でいいと思うのだが
0598nobodyさん2009/07/09(木) 19:05:12ID:???
質問者不在の議論が続く…
0599nobodyさん2009/07/09(木) 20:52:57ID:lMkQZB1Q
おしえてください。
PHPで自動的にメールを送って、メルモというメールマガジンにまかせて配布…ということを考えているのですが、うまくいきません。
メールの内容は以下のような内容で文法はあっているでしょうか。

MIME-Version: 1.0
Content-Type: text/plain;charset=ISO-2022-JP
Content-Transfer-Encoding: base64
From: xxxxxxxxxxx@xxxxxxx
To: xxxxxxxxxxxxxx@merumo.ne.jp
subject: =?ISO-2022-JP?B?xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==?=

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

実際の送信の部分は以下のように。
mb_internal_encoding('ISO-2022-JP');
$subject =mb_encode_mimeheader(mb_convert_encoding($subject,'ISO-2022-JP','UTF-8'));
$text=mb_convert_encoding($text,'ISO-2022-JP','UTF-8');
$text=base64_encode($text);
$text=chunk_split($text);
mail($to,$subject,$body,$header)

以下のことは既に確認したのですがいまだにうまくいきません。
・メールアドレスを自分のものにすればYahooメールには届いて、本文が読める。
・受信者・送信者は間違っていない。

あとは、おそらくメルモ側が「管理者からのメールのみ送信する」という設定なので
Fromを正しく認識さしてあげてないのかな…と思うのですが。
0600nobodyさん2009/07/09(木) 21:12:59ID:???
$textはどこいった? mail()に渡してないようだけど
06015992009/07/09(木) 22:17:58ID:???
ぐぁ…すいません、改行制限と戦ってるうちに書き換わってましたが、body→textです。
toだけ書き換えればメール本文は届くことは確認しました。
0602nobodyさん2009/07/09(木) 22:28:48ID:???
そのメルモっていうサービスは
・Content-Transfer-Encoding: base64 を食ってくれるの?
・envelope from と From が違っても受け取ってくれるの?
という辺りが気になった。
0603nobodyさん2009/07/09(木) 22:39:45ID:mlTLaiQM
すみません、教えてください。
言語というよりはインフラの質問です。

Windows 2000 Server, Apache2.2 で PHP4 は動作しましたが、
ibase_connect() がどうやっても Undefined function になってしまいます。

もちろん ext のパスを php.ini の extension_dir に記述しています。
ext に php_interbase.dll もあります。extension も ; コメントをはずしています。
GDS32.dll が必要との事だったので、firebird server/client をインストールして、
GDS32.dll を windows, system32 フォルダにともにコピーしました。

php.ini をしっかり見ているかの確認はしました。
ただ、extension のファイル名を適当なものにしてもエラーにならないのが
少し気になりましたが・・・

どんな些細なことでも良いです。なにか解決の糸口を教えてください。
0604nobodyさん2009/07/09(木) 22:54:27ID:???
apache再起動
0605nobodyさん2009/07/09(木) 23:01:33ID:???
php.iniは複数あるからどれを見てるか・・
0606nobodyさん2009/07/09(木) 23:03:48ID:???
>>604
 php.ini を変えるたびに再起動しました。
 何度やってもだめなので OS も 4〜5 回再起動しました。
 でもだめですた・・・

>>605
 そう思って、extension_dir や include_dir を適当なやつにしてみて、
 エラーになるところまで確認しました。
 向き先は間違っていないと思います・・・orz
0607nobodyさん2009/07/09(木) 23:13:25ID:???
phpinfo()
06085992009/07/10(金) 01:08:50ID:???
ありがとうございます。なるほど…
エンコード方法考えてまた試して見ます。
06096032009/07/10(金) 01:13:26ID:???
>>607
phpinfo() には interbase の出力はありません。
 単純に dll が読み込めていないんだと思います。
 でも、なぜ読み込めないのかが分かりません。。
0610nobodyさん2009/07/10(金) 01:42:54ID:???
>>609
phpinfo()の出力結果で、Loaded Configuration Fileはどこになってる?
自分が呼んでほしいところになってる?

問題なければ、次にコマンドラインから

php -m -c (php.iniへのフルパス)
を実行したらどうなる?
エラー出る?出ない?
interbaseの拡張モジュールは表示される?

これらの結果がどうなるか教えて
0611nobodyさん2009/07/10(金) 01:56:05ID:dQkRWDmk
OS:WinXP-Pro(SP2) ブラウザ:FieFox3.0.11
Apache:2.2.9,PHP:5.2.6

書籍の動作が再現できません。下記コード(抜粋)は
http://uproda11.2ch-library.com/186009Ms1/11186009.jpg 
の表示になりますが、上のtext1フォームに入力してボタンを押しても「」内に表示されません。
※同じくPOSTも駄目です。


コード(専ブラでこのコード自体が実行されるのでJPG化しました)
http://uproda11.2ch-library.com/186010y2f/11186010.jpg

フォームに入力した文字列はFireFoxのURLバーに追記されるだけです。
どこが間違っているのでしょうか? (IEでも駄目でした)
0612nobodyさん2009/07/10(金) 02:02:08ID:???
>>611
そのバーに出てるアドレス(追記前)を書いてみましょう。
0613nobodyさん2009/07/10(金) 02:07:39ID:???
>>611
(1)アパッチ起動してる?

(2)urlにはlocalhostって入力してる?
phpファイルをダブクリでは動かないよ
0614nobodyさん2009/07/10(金) 02:22:30ID:???
どうも。

>>612
file:///C:/php5/hajimete_php5/07-03_01.php?text1=〜
です(『〜』が追記部分)


>>613
アパッチは起動してますが、「urlにはlocalhostって入力してる?」の意味が分かりません。
PHPはプログラム選択で起動させています。
0615nobodyさん2009/07/10(金) 02:29:17ID:???
>>614
ブラウザを開いて、
URL欄に、
localhost
って入れないとダメなのよ。
0616nobodyさん2009/07/10(金) 02:32:26ID:???
URLとWebサーバーのメカニズムを勉強しよう。

まず、URLの記述。 file:// で始まるURLは、HTTPによる
通信を伴わないファイル本体の参照だよ。つまり、Explorer
でファイルを開くのと同じこと。だからソースが表示される。

http:// で始まるURLは、HTTPというプロトコルを通して、
通信先のWebサーバーに接続、それ以降の記述によって、
得るデータは、Webサーバーの処理の任せるということなんだ。

http://www.yahoo.co.jp:8080/movie/
~~~~~ ~~~~~~~~~~~~~~~~    ~~~~~~
@    A            B

@がプロトコル。 Aがホスト名(:がついてるとポート番号指定) 
B以降は、Webサーバー側が勝手に解釈する。

上のレスで localhost 、というのは、同じマシンの中のApacheを
参照するときのホスト名だよ。なので、まずは http://localhost
と書かないと、Webサーバー経由のアクセスにならない。

それから、PHPのメカニズム。
url で、xxxx.php で終わるものをApacheが受け取ると、Apache
は、自分が参照できるPHPファイルを開き、PHPで処理してから
ブラウザに結果を渡すんだ。なので、ソースとは違う表現になる。

1) 自分のコンピュータで正しくApacheが構成されているか確認
  しよう。(http;//localhost:xxx/で確認できる)
2)問題なかったら再度、自分の設置したPHPファイルをApache
 経由で見ることができるか確認しよう。

問題の解決の糸口はここからだ。 たぶん。
0617nobodyさん2009/07/10(金) 02:45:39ID:???
>>615-616
早速のレス有難うございます。

出来ました。<?php phpinfo(); ?> は
http://localhost/hajimete_php5/phpinfo.php で実行できています。
これから、http://localhost/hajimete_php5/07-03_01.php 
とするとOKでした。

なお、本には、「URLにlocalhostを含めましょう」とは一行も書いていません。
プンプン(怒
0618nobodyさん2009/07/10(金) 02:47:14ID:???
>>617
前提知識を書いてないのは確かに親切じゃないけど、
http と、http サーバーのメカニズムはWebプログラム
をするなら前提として知っておく必要があると思うぞ。
0619nobodyさん2009/07/10(金) 02:59:36ID:???
書いてないわけないだろ。なんていう書籍?
0620nobodyさん2009/07/10(金) 03:08:47ID:???
>>617
どの本?
0621nobodyさん2009/07/10(金) 03:19:19ID:???
>>619
はじめてのPHPプログラミング基本編 5.3対応 (TECHNICAL MASTER)
です。

localhostに関しては、スクリーンショット図内のURL欄に小さく印刷しているだけです。
0622nobodyさん2009/07/10(金) 03:24:53ID:???
amazonでも説明不足っていう評価だね
0623nobodyさん2009/07/10(金) 03:25:47ID:???
これなのね。
ttp://www.amazon.co.jp/dp/4798020826/

目次を覗いてみるとChapter07-01に
「ブラウザからプログラムを実行する」って項目があるけどダミーなんだろうか。
0624nobodyさん2009/07/10(金) 03:27:24ID:???
第一章に
 01-01 PHPの世界へようこそ [PHPって?]
 01-02 PHPが動作する環境を準備しよう [PHPのインストールと設定]
 01-03 PHPの動作確認 [PHPの動作確認]
とあるけど俺の幻覚なんだろうか。
0625nobodyさん2009/07/10(金) 03:32:21ID:???
>>624
Chapter07に来るまで apache が出て来ないから
そこからずーっとCLIで練習させる本なのかなと思い込んでみた。
0626nobodyさん2009/07/10(金) 03:34:39ID:???
ttp://www.amazon.co.jp/gp/reader/4798020826/ref=sib_dp_srch_bod?__mk_ja_JP=%83J%83%5E%83J%83i&v=search-inside&keywords=localhost&go.x=14&go.y=8
0627nobodyさん2009/07/10(金) 04:36:31ID:???
>>626
関係ないけど、最近の尼はすごいな!
感動した。
0628nobodyさん2009/07/10(金) 14:15:33ID:???
>>611
だめだぜ。
ちゃんとした本を買わないと。
今すぐそんな本を捨てて
新しい本とマニュアルを読みなさい。
後秀和さんの本はあんまりよくないから
0629nobodyさん2009/07/10(金) 14:18:57ID:???
>>628
Tim、乙
0630nobodyさん2009/07/15(水) 10:16:05ID:???
PHPの本読みまくってたら、
ついに読む本がなくなってきた。
25冊は読んだ。
0631nobodyさん2009/07/15(水) 10:19:59ID:???
自分で本を書け
0632nobodyさん2009/07/15(水) 10:28:57ID:???
自分で本を書くのってどうやるのかな?
はじめに出版社に話をするの?
0633nobodyさん2009/07/15(水) 13:12:38ID:???
PHPのプロの方ですか?
0634nobodyさん2009/07/15(水) 13:27:44ID:???
最近始めた初心者です。
ネットを頼りに独学でやってるのですが、行き詰ってしまいました。
2つ質問させて下さい。

1.formからの入力内容をtxtファイルに書き込む時、ファイルの先頭に追加書き込みする方法を教えて下さい。
2.for文の中で同一の名前の末尾に連番を加えた変数名を作る方法を教えて下さい。$hensu1、$hensu2みたいな感じです。

1に関しては、今はtxtファイルを開くときに、
$fp = fopen($data_file, "a");
としているので、ファイルの最後に追加書き込みされてしまいます。
ファイルを開いた後に
rewind($fp);
と記述してみましたが、意味は無かったみたいです。

2に関しては、
for($i=1; !feof($fp); $i++) {//ファイル最後まで読み込む
$fline = fgets($fp);//1行読み込む
//3パターンどれか当たれ!
 $hensu.$i = explode(",",$fline);
$hensu[i] = explode(",",$fline);
$hensu[$i] = explode(",",$fline);
}
上の3パターンを試してみましたがダメでした。
すいませんが、ご教授お願いします。
0635nobodyさん2009/07/15(水) 13:36:09ID:???
>>634
1)$data_fileの中身を別ファイルなりメモリ上なりに退避させて、
 新規でform内容を書き込んでから、退避しておいたデータを追記する。

2)$hensu1 = '1だよ';
 $i = '1';
 $hensumei = "hensu".$i;
 echo $$hensumei;
06366342009/07/15(水) 14:23:24ID:???
>>635さん
ありがとうございます。
なるほど!1の考え方は思いつきませんでした。
後で試してみます。

2なんですけど、すいません、私の説明がよくなかったですね。
ご教授頂いた方法をforに組み込むと、$hensumeiの中身が「1だよ」〜「5だよ」
と増やせそうですね。
ですが今回やりたいのは、「変数名」の番号を増やしたいんです。

例えば、ループ後に記述された
echo("変数1の中身=". $hensu1 ."<br />\n");
echo("変数2の中身=". $hensu2 ."<br />\n");
echo("変数3の中身=". $hensu3 ."<br />\n");
の結果が、
変数1の中身=犬
変数2の中身=猫
変数3の中身=鳥
といった答えになるようにしたいです。

せっかくご教授頂いたのに、申し訳ありません。
でもそのやり方は、何か別の機会に使わせてもらおうと思います。
06376352009/07/15(水) 14:37:09ID:???
>>634
よく見てご覧。
$iを増やすと、$$hensumeiが「$hensu1」「$hensu2」「$hensu3」に変わっていくんだよ。
0638nobodyさん2009/07/15(水) 15:57:46ID:???
なんで3行目ダブルクオーテーション?
06396352009/07/15(水) 18:45:54ID:???
>>638
ははは・・・

最初は
$hensumei = "hensu{$i}";
って書こうとしたんだけど、混乱させると思って書き直した。
その名残だわ。

小さいことは気にしない、それ♪
06406342009/07/16(木) 19:16:32ID:???
>>635さん
出来た!出来ましたよ!
すごい!ありがとうございます!
お礼が遅くなってしまい、申し訳ありません。
分かりやすい書き方も助かりました。
正直、639の書き方でしたら、まだ理解出来てなかったかもしれません。

まぁ実際には何回か実験→失敗を繰り返してしまいましたが、
仕組みもなんとなく理解して来ました。

それにしてもPHPは楽しいですね。
手品やパズルみたい。
解き方が分かれば、なるほど〜って納得するけど、解き方を見つけるのが難しい。
先週末もそうだったんですが、今週末も家にこもりっきりになりそうです。
0641nobodyさん2009/07/16(木) 22:39:32ID:???
>>640
なあなあ君、初心者だろ?
それ、「可変変数」っていうんだけど初心者が使うもんじゃないよ。
ある程度慣れた人がちょっと技巧的に書く時に使うの。
配列使っとくのがおすすめだよ。
0642nobodyさん2009/07/17(金) 01:15:50ID:???
解決したのでもう結構です
0643nobodyさん2009/07/17(金) 01:53:47ID:???
>>642 = >>640
こういう eval 系処理は初心者に絶対覚えさせたくないよな・・・

>>641 にあるように、配列を使え。java も c++ もできない糞プログラマになるぞ。
いや、PHP 以外、と言ったほうが正しいか。
専用のロジックを使え。たいていの場合、そっちのほうが高速だ。
0644nobodyさん2009/07/17(金) 14:21:40ID:???
行く末を心配する程の有望な新人でない限り、ほっとくのが吉。
0645nobodyさん2009/07/18(土) 03:03:04ID:???
初歩的なことだと思うのですが教えて下さい
変数iに<form method="POST" action="toiawase3.php">を
代入したいのですが
<?php
$i='<form method="POST" action="toiawase3.php">';
echo $i;
?>
とやると空白しか入ってくれません
どなたか入れ方を教えて下さい
0646nobodyさん2009/07/18(土) 03:31:41ID:???
var_dump($i);
06476342009/07/18(土) 20:33:15ID:???
642は私じゃないですよ。
そんな自己中じゃないですw

あれから、635さんに教わったやり方で、変数名を連番化する事は出来たのですが、今度はその変数を表示させる部分でつまづきました。
上手く言葉で表せないので、ソース載せます。

for($i=1; !feof($fp); $i++){//$$の実験
$fline = fgets($fp);//1行読み込む
$hensumei = "hensu".$i;
$$hensumei = explode(",",$fline);
}
echo "jjの実験=". $hensu2[0] ."<br />\n";

この書き方ですと、$hensu2[0] は期待通りに表示されますが、本当は最後のechoでの$hensu「2」の部分を変数化して、例えば
$hensu.$i[0]
みたいな感じにしたかったのです。
色々試しましたが、残念ながら上手くいきませんでした。
というより、$$の仕組みがよく理解出来てないみたい…。
06486342009/07/18(土) 20:34:10ID:???
(つづき)

そこで皆さんがおっしゃっている、配列でのやり方を考えました。
そしたら、そもそもの仕様が間違っていた事に気付いてしまいました。

今回やりたいのは、テキストの上から順に1行読みとった内容を「,」で区切り、
それをその順番のまま表示させるというものですので、以下のソースで対応出来ました。
for($i=1; !feof($fp); $i++){//配列での実験
$fline = fgets($fp);
list($naka1,$naka2,$naka3) = explode(",",$fline);
echo "配列での実験 中身1=". $naka1 ."<br />\n";
echo "配列での実験 中身2=". $naka2 ."<br />\n";
echo "配列での実験 中身3=". $naka3 ."<br />\n";
}

もちろん$$を使ったやり方でも出来るのでしょうが、私にはまだ早かったみたいです。
それにしても、解決方法にも、色々なやり方があるんですね。
配列を使った方法に気付けたのも、みなさんのおかげです。
ありがとうございました!
そして今日もPHPが楽しい!
0649nobodyさん2009/07/18(土) 21:35:33ID:???
>645
ブラウザに出力した時点で、それはタグと見なされます。
0650nobodyさん2009/07/19(日) 00:18:36ID:???
while (!feof($fp)) {
  $fline = fgets($fp);
  $naka = explode(",",$fline);
  foreach ($naka as $i => $value) {
    echo "配列での実験 中身{$i}={$value}<br />\n";
  }
}
0651nobodyさん2009/07/19(日) 00:34:44ID:???
while (!feof($fp)) {
foreach (explode(",",fgets($fp)) as $i => $value) {
echo "配列での実験 中身{$i}={$value}<br />\n";
}
}
0652nobodyさん2009/07/19(日) 02:32:15ID:???
switch文で1つのcaseに2つの条件としたいのですが、うまくいきません。
$tL $init $tLvとあり、if文の場合は

if(($tL == init->a) && ($tLv == 0)) {
・・・
}

これをswitch文で表すにはどうすればいいでしょうか?

switch($tL) {
case ($init->a && $tLv == 0) :
・・・
}
}

などとしましたが、うまくいきませんでした。お願いします。
0653nobodyさん2009/07/19(日) 03:36:46ID:???
またブラウザーゲーかw

switch(true)
とすればできるけどあまりお勧めはしない
0654nobodyさん2009/07/19(日) 09:49:52ID:???
>> switch文で1つのcaseに2つの条件としたい
ここがまちがいだときづけ。
できるできないのもんだいではない。
0655nobodyさん2009/07/19(日) 10:27:29ID:???
知らんやつがPHPコード送ってきた場合、
それを安全に見るにはどうしたらいいの?

エディターで見るのは多分安全だと思う。

いきなりアパッチ起動して、ブラウザで見るのは危険?
なぜなら、ファイルを削除されたりするから。
0656nobodyさん2009/07/19(日) 10:30:20ID:???
知らんやつがPHPコード送ってくる状況がないからわからん
スパムで送ってきたの?
0657nobodyさん2009/07/19(日) 10:36:28ID:???
いや、子分。
知らんヤツという言い方は悪かった。
ようは自分以外が書いたコードを
安全に見る方法が知りたいの。
0658nobodyさん2009/07/19(日) 10:39:42ID:???
なにかあっても損害賠償請求できる範囲の人間ならいきなりブラウザで見てもいいんじゃない?
ソースが読めるならその限りではないけど
0659nobodyさん2009/07/19(日) 10:39:48ID:???
子分から恨みを買ってるかどうかぐらいエディタで見ればいいじゃない。
0660nobodyさん2009/07/19(日) 10:52:45ID:???
エディタでみてみた。
実行するといきなりmailコマンドを実行
するようなソースだった。

ここをコメントアウトしてから実行しないと
そこのメールアドレスにメール飛んじゃう><
06616352009/07/19(日) 10:55:01ID:???
>>660
子分、フルボッコだね
0662nobodyさん2009/07/19(日) 12:26:28ID:???
いままで参考書とか解説サイトとかで
コードを発見した場合、
中味を見ずにいきなり
コピペで実行してたんですが、
(なぜなら安心だから)

こんどからは、まずエディターでじっくり
ソースを眺めて、安全かどうかを確認して、
もし安全でない部分があったらコメントアウトするなり
対処して、それからブラウザで実行、ってしないと
ヤバイ、ってことに気付きました。

他人のコードをさわるってこういうことなのね。
0663nobodyさん2009/07/19(日) 12:35:07ID:???
>662
普通、そうしないか・・・?
自分で書いたコードでさえ、ブラウザで実行する前には一応目を通すのに。
0664nobodyさん2009/07/19(日) 12:49:51ID:???
PHPの勉強なのにソース読まないでまず実行して何が勉強になるんだ・・・?
0665nobodyさん2009/07/19(日) 12:57:31ID:???
PEARのエラー制御ですが、
エラーレベルを最強にしてPEARを実行すると、エラーが
たくさん出まくるので、

(1)エラーレベル0にする
(2)PEAR読み込む
(3)エラーレベル最強にする
(4)本体のコード書く

こういう順番にすればいいんじゃないか?
っておもったのですが 、これであってますか?
0666nobodyさん2009/07/19(日) 13:03:16ID:???
オレ竜は、エラー警告レベル最強にしたぐらいで出まくるのは使わないことにしてる
■ このスレッドは過去ログ倉庫に格納されています