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

【PHP】下らねぇ質問はここに書き込みやがれpart18

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/03/15(水) 19:18:21ID:yiOrS10N
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/

前スレ【PHP】下らねぇ質問はここに書き込みやがれpart17
http://pc8.2ch.net/test/read.cgi/php/1140786348/

過去スレは>>2-3あたり
0002nobodyさん2006/03/15(水) 19:19:19ID:yiOrS10N
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
0003nobodyさん2006/03/15(水) 19:19:50ID:yiOrS10N
・過去スレつづき
【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/
0004nobodyさん2006/03/15(水) 19:20:36ID:yiOrS10N
・part17よりテンプレ化

extractは極力使わないほうがいいと思います。
例えば、

hoge.php?_SESSION[user_pw]=hogehoge

って形で送られてきたとします。これを

extract($_GET)

しちゃうと、$_SESSION['user_pw']の値が、
"hogehoge"に変更されてしまいます。

もし事前にユーザのパスワードを、$_SESSION['user_pw']に
保持してたとしたら、勝手に書き換えられてしまうことになります。

それを避けるために

extract($_GET, EXTR_SKIP)

ってやって上書きを避けたとしても、
このままでは変数の初期化を忘れる危険性があります。

extract($_GET, EXTR_PREFIX_ALL, "get")

と、接頭辞をつけるのが一番安全な気はしますが、
それなら最初から
$hoge = $_GET['hoge'];
ってやるのと手間が変わらないと思いますし、可読性も増します。
確かにextractするのは楽だと思いますけど。
0005nobodyさん2006/03/15(水) 19:33:25ID:bA7xDyGS
前スレ
【PHP】下らねぇ質問はここに書き込みやがれpart17
http://pc8.2ch.net/test/read.cgi/php/1140786348/
0006nobodyさん2006/03/15(水) 19:33:57ID:???
前スレ>>1000
やってみましたが21行目(書き換えたところ)がエラーで、うまくいきまsん。
0007nobodyさん2006/03/15(水) 19:47:55ID:???
前スレからヲタがどうのこうの言ってるやつがいるが、
プログラミングなんかしてるやつぁ全員ヲタだろう。
一般人の持ってない知識をたくさん持ってるんだから。
0008nobodyさん2006/03/15(水) 20:20:30ID:???
イメージでいってるんだろ。

   彡川川川三三三ミ〜  プウゥ〜ン
   川|川/  \|〜 ポワ〜ン    ________
  ‖|‖ ◎---◎|〜        /
  川川‖    3  ヽ〜      <
  川川   ∴)д(∴)〜       \________
  川川      〜 /〜 カタカタカタ
  川川‖    〜 /‖ _____
 川川川川___/‖  |  | ̄ ̄\ \
   /       \__|  |    | ̄ ̄|
  /  \○○命_     |  |    |__|
  | \      |つ   |__|__/ /
  / ドキュソ氏ね | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕

こんなの。
まぁ厨全開だったし、正しい言葉を知らない春厨ってことでいいんじゃまいか?
0009nobodyさん2006/03/15(水) 20:42:43ID:???
PHPの勉強を始めるのにマンモス本が良いと
以前言われたのですが、それは
http://www.amazon.co.jp/exec/obidos/ASIN/4797313927/ref=pd_ecc_rvi_1/503-4727412-7642313
↑コレのことでしょうか?
0010nobodyさん2006/03/15(水) 20:44:47ID:???
>>9
その本はただでDLできます
http://www.sra.co.jp/people/t-ishii/php_new/php4_new.html
0011nobodyさん2006/03/15(水) 20:47:51ID:???
>>6
前1000じゃないけど

<?php
if ($_POST['mail'] != "") {
  echo $_POST['name'];
} else {
  echo "<A href=\"mailto:{$_POST['mail']}\">{$_POST['name']}</a>";
}
?>
エラーが出てそれを質問するなら該当行とエラー内容を書けよ
0012nobodyさん2006/03/15(水) 20:56:12ID:???
エスパーを召還しようとしてる人がいるのはこのスレですか?
0013nobodyさん2006/03/15(水) 21:02:43ID:???
>>11
それじゃ、アドレスがあったら名前だけで表示、になる
条件が逆でまいか?
0014nobodyさん2006/03/15(水) 21:33:57ID:???
アイドル達の乳って

すごく癒されるよね
http://www.h02.i-friends.st/index.php?in=idolga2
0015nobodyさん2006/03/15(水) 21:51:02ID:???
PHP4と5では基本的には相違ありませんか?
書籍を買うのですが、4と5両方あって迷っています。
個人的には4の方がベーシックなイメージなんですが…
0016nobodyさん2006/03/15(水) 22:17:26ID:???
>>15
相違ありまくりです。
0017nobodyさん2006/03/15(水) 22:21:07ID:+i4CweKd
クロスサイト・スクリプティングについて質問があります。

1. これは実際どんなことが危険なのでしょうか?
PHPを実行されてしまうのでしょうか。

2. POSTデータじゃなくても危険ですか(例えばクエリ情報でも)?
0018nobodyさん2006/03/15(水) 22:26:04ID:???
前スレ990はスルーかよw
0019152006/03/15(水) 22:32:11ID:???
>>16
4と5ではどちらが良いでしょうか?
4でも5でもサーバーは対応しいています。
0020nobodyさん2006/03/15(水) 23:05:23ID:???
>>17
http://www.google.com/search?num=50&hl=ja&ie=Shift_JIS&oe=Shift_JIS&q=%83N%83%8D%83X%83T%83C%83g%81E%83X%83N%83%8A%83v%83e%83B%83%93%83O
0021nobodyさん2006/03/15(水) 23:10:47ID:???
>>19
好み。

…と言いたいところだが、そんなの質問するレベルなら
おとなしく4使っとけ、って感じだ。
0022nobodyさん2006/03/15(水) 23:14:36ID:???
>>17
>1. これは実際どんなことが危険なのでしょうか?
そのリクエスト(本来なら正当な操作のため)を実施する権限のある人に、
悪意のあるリクエストを本人に気づかないようにさせてしまうこと。

>2. POSTデータじゃなくても危険ですか(例えばクエリ情報でも)?
POSTデータとクエリ情報を並べる意味が不明。

XSSでぐぐる。ついでにCSRFも調べる。
0023nobodyさん2006/03/15(水) 23:19:08ID:???
>>18
そんなタイミングで質問する方も悪い
0024nobodyさん2006/03/16(木) 00:00:30ID:???
1.記入画面でファイルを選択、各種入力をしてPOST

入力チェックをしてダメなら1に差し戻す。OKなら確認画面

2.確認画面、実際にここではファイルはまだアップしたくない。

ここでPOSTしてはじめて、入力内容をファイルorDBに書き込み。ファイルを保存

こんな処理をしたいんだけど、$_FILEって、POSTしちゃったらそれまでで値を保持出来ないんですね。
このあたり、どんな風に処理するのが普通なんでしょうか?
0025nobodyさん2006/03/16(木) 00:16:03ID:???
ミリ秒単位で計測したければ1000回以上の繰り返しでベンチすればいいじゃん。
php使ってる香具師ってスキル低いな。

$_FILEから値を取り出しておいて、$_FILE以外の変数で受け取れ(格納すれ)ばいいじゃん。
巨大ファイル除けと、ファイル名の文字コード処理も忘れずに。
0026nobodyさん2006/03/16(木) 00:21:39ID:???
>>24
別に何回アップさせても良いとはは思うけど、
なんだったら、
3(確認OK後)でアップさせれば良いんじゃねェの?
0027nobodyさん2006/03/16(木) 00:29:25ID:???
>>24
アップロード用HTML → PHPファイル(ここでアップされたファイルの内容をSESSIONにぶち込む&値のチェック) → 入力チェックエラーならunset。

これじゃ駄目?
0028nobodyさん2006/03/16(木) 02:35:01ID:???
検索すると分かるけど、type="file"フォームはJavaScriptやHTML内でファイルの指定ができないようになってる。
だから確認画面を表示させると、もう一度入力させなくちゃいけない。

自動で入力できると、system内の重要なファイルを勝手に盗まれる可能性を与えてしまうからね。
0029nobodyさん2006/03/16(木) 07:41:09ID:???
そういや type="file" に value属性しても無意味だな
0030nobodyさん2006/03/16(木) 08:26:36ID:???
>>24
2でアップして、キャンセルならunlink
でいいんじゃないかな。
0031nobodyさん2006/03/16(木) 10:26:58ID:???
>>26に一票
0032nobodyさん2006/03/16(木) 11:07:50ID:3GvLsZCl
PHP5でリファラーの日本語検索ワード解析に最適なものって
なにがあるかなー。
検索語にあわせたコンテンツを表示したいんだよね。
なるべく多くの検索エンジンに対応+追加もラクラクなやつがいいなー。
0033軟式PHP2006/03/16(木) 11:08:33ID:???
俺はtmpとfileディレクトリ作って、確認時はtmpにアップしてOKしたらfileにコピーしてるよ。
tmpの方はファイルアップ時間見てGCしてる。確認OKまでアップしたくないなら26が一番用途に適してると思うが。
0034nobodyさん2006/03/16(木) 11:46:23ID:???
定義済みのnull($var = null;)と未定義のnullを見分ける方法はありますか?
未定義のほうは、そのまま使おうとすると、noticeが出るんですけど。
0035nobodyさん2006/03/16(木) 12:04:36ID:???
>>34
if(isset($foo) and is_null($foo)){
null である場合の処理;
} else {
未定義である場合の処理;
}
0036352006/03/16(木) 12:07:37ID:???
書いてからこれじゃダメじゃんと気付いた
0037nobodyさん2006/03/16(木) 12:20:34ID:???
>>34
未定義の変数にNoticeが出るのはPHPの仕様だから
で何がしたい
エラー消したいならNotice表示しないように設定するか定義しとけばいいやん
0038nobodyさん2006/03/16(木) 12:32:57ID:???
トレンドマイクロのサポートメールで気付いたけど、
fileのあるフォームでJavaScriptで確認小窓をだして、それでOKを押したら小窓を閉じてPOST、てのもありだな。
0039nobodyさん2006/03/16(木) 12:38:13ID:???
>>37
エラーは関係なくて、純粋にこの違いを見分ける方法を知りたいんです。
0040nobodyさん2006/03/16(木) 12:48:21ID:???
>>39
get_define_vars()したのに、あるか否かとか。
0041nobodyさん2006/03/16(木) 12:51:59ID:???
>>38
確認小窓というのが、もしポップアップのことなら、ブラウザで無効にされてるかもよ
0042nobodyさん2006/03/16(木) 13:24:52ID:???
>>40
get_defined_vars() ですね。なるほど・・
0043nobodyさん2006/03/16(木) 13:57:03ID:???
はじめまして、php歴1日の者です。

test.php?mode=2
というURLにあるフォームで書き込んだとき
ログファイルには
「2,書き込んだ内容」
というように、modeの数字を頭に付けたいと思っています。

<?php
extract($_POST);
$cmtfile = "testcmt.txt";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$mode = $_POST["mode"];
} elseif ($_SERVER["REQUEST_METHOD"] == "GET") {
$mode = $_GET["mode"];
}
0044432006/03/16(木) 13:57:35ID:???
?>
<form method="post" action="<? echo $PHP_SELF; ?>">
<input name="cmt" type="text">
<input type="submit" value="submit">
</form>
<?php
if($cmt){
$cmt = htmlspecialchars ($cmt);
if(get_magic_quotes_gpc()){
$cmt = stripslashes($cmt);
}
$thisnum = $mode;
$dat = "$thisnum,$cmt\n";
$fp = fopen($cmtfile, "a");
fputs($fp,$dat);
0045432006/03/16(木) 13:58:53ID:???

fclose ($fp);
}
?>

これだと、testcmt.txtには
「,書き込んだ内容」
と、modeの数字が反映されません。

サンプルプログラムの貼り合せでお見苦しい点も多々ですが;
OSはWinXP,PHPVersionは5.1.2,AN HTTPD DAEMONです。
できるだけ小直しで解決できたらいいな><;
よろしくお願いします。
0046nobodyさん2006/03/16(木) 14:36:34ID:???
>>45
?以下は常に$_GET[ ]
0047nobodyさん2006/03/16(木) 14:41:42ID:???
>>45
レッツの古いスクリプトに影響された悪い見本そのものだな...

まずはextract()使わないで書き直してみ。あとGET/POSTメソッドを
それぞれの場合で流れを追って。
extract()使うなら使うでも構わないけど、それが何をやってるか理解した上で
駄目なところを直す。やってることが理解できれば、駄目なところも判るよ。
0048nobodyさん2006/03/16(木) 14:47:52ID:???
extractは絶対に禁止。バグとクラックの元。
$_REQUESTを使うと吉。
マジッククオートの\除去はスクリプトの先頭で。
"$thisnum,$cmt\n"は"${thisnum},${cmt}\n"とした方が見やすいしバグ防止になる。
fputsはLFを書き込むから、上の\nを消すかfwriteを使う。
$cmtが0だと書き込まれない。empty()を使う。

あと、error_reporting(E_ALL)
0049nobodyさん2006/03/16(木) 14:47:53ID:???
というか、
PHPにも問題はあるが、とりあえずhiddenでmodeを渡してやれば終わりだろ。
0050nobodyさん2006/03/16(木) 14:48:05ID:???
>>45
あと、$_POST["mode"]の値はどっから渡されるんだ?
0051432006/03/16(木) 14:49:37ID:???
>>46
キタ―――――(゜∀゜)―――――!!!
ありがとう
0052nobodyさん2006/03/16(木) 14:52:11ID:???
>>48
fputsはfwriteの単なるエイリアスじゃなかったけ?
http://jp.php.net/manual/ja/function.fputs.php
0053432006/03/16(木) 14:53:28ID:???
>>47-50
リロってなかった…ごめんなさい
もっと勉強して、皆様の仰ったことを理解できるようになります
ありがとう
0054nobodyさん2006/03/16(木) 17:46:32ID:???
>>41
完全にスレ違いなんだけど、便乗。
あれって、ポップアップ成功したか失敗したかの判定ってできるんだろうか?
0055nobodyさん2006/03/16(木) 18:04:59ID:???
>>41,54
ポップアップがダメならば
<div style="display:none;">だったものをdisplay:blockあたりにして確認するという手もある。

>>54
完全にスレ違い。
http://pc8.2ch.net/test/read.cgi/hp/1142242220/l50
0056nobodyさん2006/03/16(木) 20:11:33ID:???
tmpにうpさせてるのはtmpからのダウソを試みたり、勝手にtmpに送り込めば攻撃可能。
あとファイル名をチェックせずに、ファイル操作してると、/etc/passwdを含むファイル名でうpすればパスワード流失しないか?
0057nobodyさん2006/03/16(木) 20:45:31ID:???
最近のUNIXは/etc/passwdがないと聞いたのだが……
0058nobodyさん2006/03/16(木) 21:07:45ID:5JEd8fcS
index.php?id=0123 → ページAを表示
index.php?id=0123&amp;hoge=xxxx → ページBを表示

こんな感じでクエリ情報で違うページを出力しているのはどうやっているのだろう。
というか、何の意味があるんだろうか…(もう一つファイル作ればいいし、ナンセンスじゃないの?)

if (isset($_GET[?id?]) and $_GET[?id?] == "0123") {
      条件式がTRUEの場合の処理
} else {
・・・・・・・・・
}

この場合、include()しているのかな。
それとも単にprint()…?
何の意味があるのでしょうかねぇ。
0059nobodyさん2006/03/16(木) 21:23:46ID:???
echo implode (file ("ページA"), "");
0060軟式PHP2006/03/16(木) 21:49:08ID:???
>>56
俺へのレスかな?tmpは/tmpではないよ。
0061nobodyさん2006/03/16(木) 21:50:20ID:???
>>58
もし、一つのファイルに:

if(条件式){
   print <<<END
        …………………
   END;
}
って大量にかいてあったら処理とか重くなるんじゃ…
0062nobodyさん2006/03/16(木) 21:56:13ID:???
PHPでジャギーがでないよう画像を綺麗に縮小し、かつjpgなりgifなりで出力するにはどうしたら良いでしょうか。
普通にやると汚くなりますよね。
0063nobodyさん2006/03/16(木) 22:00:38ID:???
>>62
綺麗にできるかどうかはPHP関係なくてGDやImageMagickの問題だろ?
そっち方面で綺麗に変換するためのコツでも聞いてくるか、
それ以外の画像変換ライブラリやツールを漁ってくればいいんじゃね?
0064nobodyさん2006/03/16(木) 22:36:16ID:???
なるほど
0065242006/03/17(金) 01:29:23ID:???
>>24です。思いのほかたくさんのレスを頂き参考になりました。
今の自分のちからでは無理に確認画面を作るより、完了idをgetで渡すとかしてすぐに編集に戻れるようにしたほうが使い勝手がよさそうなので、ひとまずそういう形にしておきますた。

ところで、
ファイル選択&POSTで次の画面が出たところで
$_FILE配列にpostしたファイルの情報が入り、鯖のテンポラリに変なファイル名で一時的に選択した元ファイルがアップ(コピー)されるという解釈でよろしいでしょうか?
疑問なのはこのテンポラリのファイルがいつまで残ってるかという点です。
マニュアルには
>移動または名前の変更が行われていない場合、リクエストの終了時にその ファイルはテンポラリディレクトリから削除されます。
とありますから、この画面からリンクをクリックしたり、ほかのURLを叩いたり、POSTやGETで移動したりした時点で消えるということですか?
だとしたら、>>27さんの方式で$_FILESをセッションで持ち歩いても意味ないってことになっちゃいますよね?

また>>26さんの方法でも、やはり次の画面に逝ったところでテンポラリは消えてしまう訳で・・
やはりpostした次の画面でとにかく、ファイルの名前付けて移動するとこまでやっちゃわないとだめですね。
さらにここで確認OKでは無かった場合、この移動済みのファイルを消す処理、さらに痛いのは、入力に戻ったところで他の文字等の入力値はセッションで保たれますがファイルは再選択の必要があるってこと。
ファイル名にDBのレコードID番号(自動連番)と関連づけたファイル名にしたい場合はさらにめんどくさい処理にorz
ファイルが絡むとこんなにめんどくさいなんて思ってもみなかったす。
0066nobodyさん2006/03/17(金) 02:30:51ID:???
>>65
お前さん、フォームでファイルアップロードしてるんだよね?
そのアップロードされたファイルを何のファイルで参照したり使ったりするんだ?PHPファイルだろ?
>>27はスクリプトが終わる前にテンプファイルの中身を全部テキストと同じ扱いでセッションにぶち込む、
>>26は、入力チェックでOKの場合にファイルを選択させるって事じゃないのか?
0067nobodyさん2006/03/17(金) 09:56:23ID:fjaH3SIM
function hoge($a){
}

で、hoge($b); として、この $b の変数名('b')を、
hoge() 内で取得する方法はありますか?
0068nobodyさん2006/03/17(金) 10:00:25ID:???
ファイルにキャッシュを保存する時、
生PHPで保存するのと、シリアライズして保存するのでは、
速度差はどれくらいあるもんでしょうか?
0069nobodyさん2006/03/17(金) 10:31:56ID:???
phpどころかプログラムとかまったく知らないんですが、
phpの解説サイトのレッツphpっていいんですか?
グーグルでphpというキーワードで日本語のサイトを検索すると上位に来るんですが、
ソースとか参考になりますか?
ソースの書き方の体裁は参考になるけど内容はだめ、
とかそういうのがあれば教えてください。
ほかに、サンプルが豊富なためになる解説サイトがあればおしえてください。
phpってhtmlで言うところの不思議マークアップのようなものがあったりするんでしょうか?
0070nobodyさん2006/03/17(金) 10:33:41ID:???
PHPマニュアルが最強です。
PHPマニュアルを見ましょう。
0071nobodyさん2006/03/17(金) 11:17:23ID:???
>>69
公式マニュアルで必要十分。

>不思議マークアップ
何それ?
0072nobodyさん2006/03/17(金) 11:37:51ID:???
>>69
レッツphpのソースは参考にならない。時が止まったままだ。
読んでやってる処理をみるのは構わないけど、あれを基にしたり
同じようなコードを書くのは自分に悪い癖を付けるだけ。
(ちょっと宜しくないかなというレベルではない)

>不思議マークアップ
俺も判らん。正確で無い変な用語を使うのは、仲間内にとどめとけ。
0073nobodyさん2006/03/17(金) 11:41:52ID:???
マニュアルは当然見るとして、
マニュアル以外で参考になるサイトがないってこと?
0074nobodyさん2006/03/17(金) 12:43:01ID:???
後悔したくないなら素直にマニュアルを熟読
0075nobodyさん2006/03/17(金) 12:50:20ID:???
PHPからプログラムを始めるのはお勧めしない。
PHPしか扱えなくて、プログラムできます、なんて言ったら大恥。
C言語やJavaをお勧めする。入門書1冊やるだけでいいから。
0076692006/03/17(金) 13:24:51ID:???
>>70-75
レスどうもです。まったくの無知なのでマニュアルを見ても、
マニュアルにちょこっと載ってるサンプルらしきものをみてもよくわからないので
htmlのときのように他人のサンプルを触りながらのほうが理解できるかな、と思いまして。
やはりマニュアルの熟読から始めたほうがいいのでしょうか。

あとphpからプログラムをはじめるのはダメなんでしょうか。
phpはかんたんだと聞いたので。
かんたんというか、ある程度適当に作っても動くって意味なんでしょうか。
だからちゃんとした文法が身につきにくい・・・とか?
phpしか使えなくて恥をかく、とかは別に気にしません。
0077nobodyさん2006/03/17(金) 13:26:38ID:???
>>71-72
不思議マークアップってのは、見た目のみ最優先にして本来の仕様とは異なる目的で
使われているHTMLの書き方のこと。対義語はstrict。CSSが無かった時代の悪癖。
「悪い見本」[過去の遺物]って点でKENTやレッツPHPもそれに近いものであると言えるかもしれないな。
でもぐぐっても800件そこそこしか出てこないマイナーな単語なので、そういう単語で
物事を表現してる時点で>>69はすでに同レベルの人間に成り下がってるとオモ。

で>>69質問の、PHPで参考にできるサイトは唯一、本家マニュアルサイトのみです。
書籍だとマンモス本って言われている「PHP4 徹底攻略」とそのシリーズくらい。
それ以外ではまともに参考にできるものは大変少ないです。
大抵、ちゃんと全体を網羅できていない上に内容が間違ってる。
PHPは初心者を狙ったいいかげんな本やサイトが大量に氾濫してる上に、
ものすごく早いペースで機能拡張・仕様変更が行われているので、
これをちゃんとフォローできてるのは公式的なものしか無いと思っていいでしょう。
0078nobodyさん2006/03/17(金) 13:42:54ID:???
>>76
PHPは過保護なママタイプ
大抵の機能はファンクションとして揃ってるから、
レゴブロック感覚でもとりあえず動くものが作れる。
それが良い事なのか悪い事なのかはケースバイケースなので一概には言い切れないけど、
まずはプログラミングの世界に触れてみる第一歩としては間違っていないと思う。
大事なのは2歩目以降。
0079nobodyさん2006/03/17(金) 13:43:08ID:???
本一冊買うだけでもだいぶ使えるようには成るよ。
サイトは基本的に書きたい事しか書かれてないし、必要な事が書かれてるとは限らない。
明らかに図示した方が理解しやすくても、面倒だからという理由で省いてるサイトは多い。
サンプルベースの方が理解しやすければ、
1) 超入門的な本を読んでまず全体像を掴む。詳細は覚えなくてもいい。
2) チュートリアルとか用例付きの実践的な本を読んで手を付けながら覚えていく。
 分からない所は、ぐぐったり、1の本を見て復習しながら進む。
という学習がいいかも。
プログラムの習得の目標をどこに置くかだと思う。一生phpでよければphpで始めて問題ない。
日本語しか話さないなら、日本語だけ知ってればいいのと同じ。
他の言語も覚えたければ、英語とかフランス語習った方が理解が進むように、いろいろ学んでいけばいい。
ちゃんとした文法を身につけたければ、堅苦しい言語を選べばいいよ。
とはいえ、最近の言語は省略形を使えるようにして利便性を上げてる傾向が有るので、どれも汚く書ける(=その代わり速度は速い)から有る程度癖がつくのはしょうがないと思う。
あんまりどっぷり嵌らないうちにいろいろな言語を弄って自分の好みの言語や記述スタイルを確立していけばいいと思う。

Cとかだとあまりにも個人差が有りすぎて、保守性悪いので、書式統一にINDENT(1)を義務づけるとかやるよ。
phpの書式整形手段はエロイ人に任せる。
0080nobodyさん2006/03/17(金) 13:44:51ID:???
>>76
PHPは簡単だけど、目的から行くと「他の言語で基本を知ってる人が
Web目的で楽をするための言語」だと俺は思ってるので、
同種の文法を持ってるCやJavaの基礎を先にやった方がいい。

PHPの便利なところは「ものすごく大量のWeb専用機能を内蔵してる」とこなので、
PHPの解説サイトや解説本はそこを重点的に説明してて基礎解説は全然しないし。
そういった便利関数を調べるのに追われて基礎を学ぶ暇が無くなるのはナンセンス。

で、その便利関数は頻繁に増えていってるので、これを全て網羅できるのは
公式サイトのオンラインマニュアルだけ。その辺のリファレンス本では無理。
結論として、他言語で基礎を知ってから、公式サイトをリファレンスにして
PHPを使い込む、って順番でやるのが最も効率的で間違いが少ない。
0081692006/03/17(金) 14:16:47ID:???
>>77-80
たくさんのレスありがとうございます。
最初にCやJAVAで文法の基礎を学んでからPHPの利便性を享受するか、
敷居の低いPHPから入って他のプログラム言語へと幅を広げるか、
ということでしょうか。
CとかJAVAって難しそうなので、
上の場合は忍耐力、下の場合は向上心がいるっぽいですね。

どうもありがとうございました。
いろいろと触れてみたいと思います。
0082nobodyさん2006/03/17(金) 15:18:46ID:???
>>81
CやJavaで躓くようなら、PHPをやってても他人に迷惑かけるだけ。
0083nobodyさん2006/03/17(金) 15:23:09ID:???
趣味ならその理由でやめちゃえばいいけど、
授業だったらそうも行かないかもねー。
0084nobodyさん2006/03/17(金) 15:26:47ID:???
他の言語すっ飛ばして最初にPHPやらせるなんてアホな授業する学校があんのか…
BASICやらせるよりタチわりぃ
0085nobodyさん2006/03/17(金) 15:41:22ID:???
>>81
忍耐力と向上心逆かと思われw
0086nobodyさん2006/03/17(金) 15:52:15ID:???
VBから入って今はPHP、ってプログラマ(モドキ)も現場にはかなり多いよな。
レベル的にはPHPしかやったことないのとどっこいなくらいに微妙な連中なんだが、
それでもPHPしかやってないやつよりは綺麗なコードが書けるのがちょっと多い感じ。
なんでああ、PHPしかやってないやつってコードめちゃくちゃなのが多いんだろう?
HTMLにコード埋め込みorコードの中でHTMLをecho、が最初にあるせいなのか?
0087nobodyさん2006/03/17(金) 16:57:00ID:???
PHPで結果出力したページをHTMLとして保存する事は出来るのでしょうか?
ブラウザの「名前を付けて保存」ではなく、submitボタンなどを押して
そのphpページをダウンロードするような。
0088nobodyさん2006/03/17(金) 16:59:33ID:???
>>87
できるよ。PHPには出力制御関数ってのがあって、ブラウザに表示する内容を
丸ごと変数に格納したりできる。それ使えば丸ごとファイルに保存→DLも楽々。
0089nobodyさん2006/03/17(金) 19:30:52ID:???
>>67
本筋とは関係ないレスで流れたけどこれってどうやるんだろ?
投稿者ではないが気になるな
0090nobodyさん2006/03/17(金) 20:00:57ID:???
>>89
俺には何がしたいのかが分からない。
もしやりたい事がこれならマニュアルの「言語リファレンス」と「機能」だけでも全部読んでくれ。
ttp://php.s3.to/man/language.variables.variable.html
0091nobodyさん2006/03/17(金) 20:38:54ID:???
>>89
最初から名前そのものを引数として渡すんならともかく、それは無理でしょ。
あれば「変わった使い方」ができそうだけど、変わった使い方すぎて
どこで何が起きてるか不明な状態になる=グローバル変数病のもっとタチの悪いものになる
だけなので、意義は感じないな。
0092nobodyさん2006/03/17(金) 20:44:47ID:???
関数の結合度って言葉を知ってるか。低ければ低いほどいい >>89
0093nobodyさん2006/03/17(金) 21:09:57ID:???
function hoge($a){
// 何かの処理

}

0094nobodyさん2006/03/17(金) 21:11:10ID:???
引数で渡した変数の値を関数の名前として使いたいって事か。
0095892006/03/17(金) 21:12:46ID:???
俺大人気だな
http://kaiunix.cs.shinshu-u.ac.jp/Lesson/ProgLangT/2005/VariousProgramStructure.html
とかでいいのかな結合度って
関数の話で変数とのつながりがいまいち分かりませんでした。

思ったけど配列なら内容を検索してkeyを返すって出来るね
0096nobodyさん2006/03/17(金) 22:26:44ID:qt9OXvzz
foreach (file($hoge) as $line) { 〜 }

とした場合、ループ中に毎回ファイル読み込んでるわけではないですよね?
毎回読んでたらループしませんもんね?
いや、一応確認したかったので。
0097nobodyさん2006/03/17(金) 22:29:12ID:???
>>96
ループの初回だけ
0098nobodyさん2006/03/17(金) 22:39:48ID:???
>>96
それよりも、$fl = file($hoge);と一度やった方が綺麗な気がする。
0099nobodyさん2006/03/17(金) 22:41:23ID:???
echoがprintf代わりなのかなあ(w
0100nobodyさん2006/03/17(金) 22:42:49ID:???
レッツって評判悪いのか?
0101nobodyさん2006/03/17(金) 22:45:17ID:???
>>98
なんで?
■ このスレッドは過去ログ倉庫に格納されています