【PHP】下らねぇ質問はここに書き込みやがれpart11
■ このスレッドは過去ログ倉庫に格納されています
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【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/
0201nobodyさん
2005/10/20(木) 21:53:50ID:???チェックボックス配列?
呼び方がわからんが、こういうの name="check[]"
でやればいいんでないの?
0202nobodyさん
2005/10/20(木) 21:55:32ID:???つ$HTTP_RAW_POST_DATA
まあ漏れならこんな面倒な事せずに
配列使うなり、別の手段考えるけどね
0203nobodyさん
2005/10/20(木) 22:12:50ID:???ありがとうございまつ。
調べてみます。
>201
name="check[]"は
質問の内容と食い違いますが(>200はPOSTとGETの両方で使えるようにという質問で。)
URLの後ろにtype=はともかく、type[]=だとなんかプログラム過ぎてお客様に見せたくないとです。
0204nobodyさん
2005/10/20(木) 22:18:29ID:???わざわざそんな事やって、余計なお世話だって気がするのは私だけだろうか。そうしたいなら止めはしないけど。
0205軟式PHP
2005/10/20(木) 22:29:08ID:???0206nobodyさん
2005/10/20(木) 22:33:34ID:???いや、URLの後ろにつくわけじゃないんだが…
<form method="post" action="ほげほげ.php">
<?php for($i=0;$i<10;$i++){ ?>
<input type="checkbox" name="check[]" value="$i">
<?php } ?>
</form>
こんな感じじゃ駄目なのといいたかったわけだ
0207nobodyさん
2005/10/20(木) 22:39:49ID:???0209nobodyさん
2005/10/20(木) 22:52:03ID:F9y0WL9yC,C++,Javaの経験はあります。
この度スクリプト言語でWebアプリを作ってみようかと思ったので、
phpとperlの両方を調べつつ試している所です。
それで、いろいろなタイプのプログラムを参考にしたいと思っているので、
オープンソースのWebアプリを探しています。
現在、pukiwikiとp2を見ている所です。
他にもサンプルとしていいものがありましたら教えて頂きたく思います。
よろしくお願いします。
ブログ系のアプリも見たいです。
0210nobodyさん
2005/10/20(木) 22:53:41ID:???0211nobodyさん
2005/10/20(木) 23:01:39ID:???似てるよね?
俺の誤認?
他の言語出来んだったらマニュアル読めばいいじゃん。
0212nobodyさん
2005/10/20(木) 23:01:44ID:???Cの知識で書きながら判らない所はマニュアルを読めばそれなりに書けるのでは?
後はこのスレで聞きながら。なんだかんだ言ってもこのスレの住人は親切な椰子が多いと思う。
0213184
2005/10/20(木) 23:01:49ID:???$result = $this->db->Query("SELECT * from data_area");
$rows = pg_num_rows($result);
$columns = pg_num_fields($result);
print("<TR>");
$input_frame = array("<TD><INPUT size=20 type=text name=zip value =$str></TD>","<TD><INPUT size=20 type=text name=address value =$str></TD>);
for($i=0;$i<$columns;$i++){
for($j=0;$j<$rows;$j++){
$str = pg_fetch_result($result,$j,$i);
print("$input_frame[$i]");
}
}
print("</TR>");
このようにして、テキストボックスの中に最初からDBの値を表示させて、
必要ならば値を変更して、再度DBに書き込むようにしようと思いました。
一般的には、このようにする、など教えてもらえないでしょうか。
よろしくお願いします。
0215209
2005/10/20(木) 23:17:21ID:F9y0WL9yレスありがとうございます。
言葉不足失礼しました。
言語の勉強にではなく、phpでどういうことがどのようにできるのかというのを
知るためにオープンソースを読んでいます。
Webアプリの経験もあるのですが、サーバサイドJavaや.Netで
スクリプト系の経験がないので、印象としては全く違い良く分かりません。
効率のよい書き方とか共通化のしかたとか
MVCモデルで書けるのかが全く分からないので
その辺りを意識して読みたいと思っています。
>>214
ありがとうございます。
OScommerce自体を知りませんでしたがとても面白そうです。
0216nobodyさん
2005/10/20(木) 23:26:32ID:???PHPでMVC
http://www.stackasterisk.jp/tech/php/phpMvc01_01.jsp
こういう記事見たり,書籍(まるごとPHP)とか読むのもいいかもしれない.
0217nobodyさん
2005/10/20(木) 23:29:02ID:???$aaabbb = "naiyo"
$query = "select * from hoge_db where Hoge = '".$aaabbb."'";
$hoge = mysql_query($query) or die("ほげ");
こんな感じのでクエリーが送信された時に
エラーの場合FALSEが返るとあるのですが
if ($hoge == FALSE){
echo "ないらしい";
$nanika = "nairasii";
}
というのを下につけても"ないらしい"が表示されません
間違ったクエリーが投げられた時に
$nanika等をセットしたい時はどうすればいいのでしょうか?
0218209
2005/10/20(木) 23:38:19ID:F9y0WL9yおー。あるんですね。
ありがとうございます。
0219nobodyさん
2005/10/20(木) 23:41:49ID:???mysql_query()は、クエリーが成功したかどうかを 表すためにTRUE(非ゼロ)またはFALSEを返します。
と教科書にあるわけだが…
以下を50回くらい読み返してください
http://jp2.php.net/mysql_query
0220nobodyさん
2005/10/20(木) 23:44:08ID:???mysql_queryが失敗した時点で、or dieに制御が移ってスクリプトが終了するんじゃね?
つか「ほげ」って出力されてね?
0221nobodyさん
2005/10/20(木) 23:55:57ID:???いや表示されなかった(;´Д`)
>>219
そこに書いてある事だと成功したらTRUEが返ってくるんでしょ?
失敗したらFALSE何か違うの?@@
0222nobodyさん
2005/10/21(金) 00:01:59ID:???URLの先の12行目に
次のクエリーは、文法的には間違っており、 mysql_query()は失敗し、FALSEを返します。
とあるのは読めるよな?
ここで注目する部分は「文法的」の部分だ
>>221が書いたSQL文は間違っていると思うか?
文法的に間違っているというのは以下のようなことではないのか?
$query = "select * form hoge_db where Hoge = '".$aaabbb."'";
0223nobodyさん
2005/10/21(金) 00:13:09ID:???0224217
2005/10/21(金) 00:15:53ID:???確かに217のでは文法的には間違ってはいない筈・・・?
間違ったクエリー投げられた時
どうやってそのクエリーが
間違ったクエリーと判断してるんでしょう?@@
0225nobodyさん
2005/10/21(金) 00:20:42ID:???0227nobodyさん
2005/10/21(金) 00:29:20ID:???>確かに217のでは文法的には間違ってはいない筈・・・?
間違っていないからTRUEが返されている
よってif文に引っかからない
クエリーの判断はあくまでDBが行っている
mysql_query()はDBに対してSQL文を投げつける関数
やりたいことはの9割は出来ているんだから
あとはどうやればやりたいことが実現できるか自分で考えて
ヒントは行数だ
0228nobodyさん
2005/10/21(金) 00:37:31ID:???0231nobodyさん
2005/10/21(金) 01:18:01ID:???信じてしまいました。馬鹿でした。
http://www.google.com/search?hl=ja&q=is_nullpo&lr=lang_ja
0233nobodyさん
2005/10/21(金) 01:23:05ID:???0234nobodyさん
2005/10/21(金) 01:35:07ID:???で取り出したデータが例えば
ID key
1 100
2 130
3 200
4 50
5 95
であるとします。
このときID=2のkeyの値が何番目に大きいかを取得するのに
スマートな方法ってありませんか
いちいちソートしないと駄目でしょうか。
0236nobodyさん
2005/10/21(金) 05:28:36ID:???あるカラムにでかいデータが入っているとき
そのカラムをSELECTで取り出すと
そのコピーが与えられるんでしょうか
それともただの参照ですか?
後者ならいいんですが、前者だと効率悪いですよね
0237nobodyさん
2005/10/21(金) 06:51:30ID:???前者(値渡し)でも効率悪くないので安心しましょう。
PHPはあなたが想像しているより幾分賢いんです。
内部ではrefcountというもので管理されていて(本来はゴミ集め用だが)、まあわかりやすい説明としては、
「文字列・配列・オブジェクトは値を書き換えようとしたときに初めてコピーが作られる」
・・・散々ガイシュツなんだけどね
0238nobodyさん
2005/10/21(金) 06:55:43ID:???0239nobodyさん
2005/10/21(金) 09:11:00ID:???236は
>返って来たもの
の話をしているようだけど。
カーソルの話ってよくわからんな。
DBサーバからソケット伝ってくる分はもちろんそのデータの大きさに応じたコストがかかるけど。
それ以上の不必要なコピーは特にないと思われ。
0240nobodyさん
2005/10/21(金) 09:31:32ID:???238のいうリザルトセットのカーソルの話だとすると
それをDBMSが実装してるか、PHPのドライバが実装してるか
その辺に依存する。普通にやった場合は大抵
リザルトセットは実体をクライアント側(PHP管理下)のメモリーに持ってくるよ。
0241nobodyさん
2005/10/21(金) 10:09:01ID:???リザルトセットの実体の場所なんて>>236の質問と関係ねーべ。
まさかサーバ側のメモリに配置されたデータに対して「参照かどうか」聞いてるはずないし。
(もしそうだとしたらスレ違い)
0242nobodyさん
2005/10/21(金) 10:50:53ID:???その実体がPHPの管理下に作られた(DBから取得された)時点で
(DBからの)コピーか参照かの優劣は無くなってるな。
0243nobodyさん
2005/10/21(金) 11:13:59ID:+5Hvdb6fタイマーみたいな機能(一定時間毎に処理させる)を実現するにはどうしたらいいんでしょうか?
たとえば、あるファイルに日時がついていて、その日時が過ぎれば、違うフォルダに移動させる、みたいな
cgiにアクセスしたら、過ぎた日時のファイルを移動させる、という擬似的なものしか思い浮かばないんですが、
やっぱそんな感じでしか無理なんでしょうか?
わかりにくくてすいません。
0245nobodyさん
2005/10/21(金) 11:33:30ID:???pseudo-cron
http://www.bitfolge.de/pseudocron-en.html
これ思い出した.アクセスがほとんどないサイトだったら使い物にならない.
でも cron が使えないレンタルサーバとかだったらこういう方法しかない.
0246nobodyさん
2005/10/21(金) 11:45:43ID:???fromの値が途中で切れてしまいます。
実際のfromは下記の通りですが
common.gsc <faq@yokohama.riken.go.jp>
取得したfromはこうなってしまいます。""が付くのも謎です・・
"common.gsc"
$head = imap_fetch_overview($mbox,113);
foreach($head[0] as $key => $value)
{
print $key . ":" . $value . "<br>";
}
よろしくお願いいたしマフ
0247軟式PHP
2005/10/21(金) 12:09:32ID:???それさ、そのまま出力したんじゃ<>で囲まれた部分がタグとして
認識されて表示されないんじゃないのかな?
ソースを表示して見てミソ。
0250nobodyさん
2005/10/21(金) 13:36:08ID:???0252nobodyさん
2005/10/21(金) 13:52:07ID:???自鯖の状態を、別のサイトから見ようとしてます。
socketのbindですか…調べてみます。ありがとうございました。
0253nobodyさん
2005/10/21(金) 14:08:47ID:???UNIX系とWindows系でファイルパスの区切りが/と\のように違うので
OSを判別できれば個別にプログラムで対応できるかと思いまして。
0254nobodyさん
2005/10/21(金) 14:13:36ID:???その目的だとbindではなくてfopenやfile等で自鯖の適当なファイルを
読み込むスクリプトを書いてcronで回すような形になる。
でもワザワザPHPで書かなくてもwget等を使ってシェルスクリプトをcronで回した方が楽だと思う。
0255254
2005/10/21(金) 14:16:08ID:???自鯖のhttpの状態を監視したい場合の話。http以外の監視なら別の手段になるね。
0257nobodyさん
2005/10/21(金) 14:31:02ID:???まぁでも、あんまり必要じゃないような。
定義済みの定数
ttp://www.php.net/manual/ja/reserved.constants.php
0258253
2005/10/21(金) 14:32:17ID:???一般に公開するときはレンタルサーバー(UNIX)上なんでパスの区切りは
/(スラッシュ)というのはわかっているんですが、公開する間に自鯖で
表示テストなどをするときはWindows上で動くApache+PHPで表示させて
ます。このときはパスの区切りは\(円マーク)になるんでその違いを
吸収させるスクリプトを作りたかったのですが・・・
0260nobodyさん
2005/10/21(金) 14:41:12ID:???バックスラッシュって言うようにしといたほうがいいよ。
0261nobodyさん
2005/10/21(金) 14:44:03ID:???0262nobodyさん
2005/10/21(金) 14:49:40ID:???\
↑バックスラッシュに見えるか?
0263nobodyさん
2005/10/21(金) 14:53:19ID:???や、phpのお勉強がてら…。
80以外にも25と110を監視します。
$http = fsockopen($host, 80, $errmp, $errmsg, 1);
echo "http:";
if(!$http){
echo "NG" . "<br>";
}else{
echo "OK" . "<br>";
こんな感じの処理が思いついたんですが、
問題点があったらご指摘願います。
0264nobodyさん
2005/10/21(金) 14:54:44ID:???・DIRECTORY_SEPARATOR (string)
・PATH_SEPARATOR (string)
http://jp2.php.net/dir
そこに書いてあるとおり拡張(ext/standard/dir.c)での定義だから
使えない環境があると思うけど。
OSの種類、名前は隠してなければPHPINFO、種類だけなら定義済み定数PHP_OS。
他にはunameコマンドの実行結果から取れる可能性もある(Unix系)。
0266264
2005/10/21(金) 14:59:49ID:???http://jp2.php.net/manual/ja/function.php-uname.php
0267nobodyさん
2005/10/21(金) 15:00:00ID:???Listenしてるかどうかだけならtcpで叩けば万事OKじゃん
>>258
DIRECTORY_SEPARATOR
0268nobodyさん
2005/10/21(金) 15:05:18ID:???真面目にやるなら、そんな感じで各鯖のポートへアクセス。
んでも接続ブッタ切りになるので、きちんとプロトコルに従って接続終了した方がよいような。
httpならgetなりheadなり。
不真面目というか手抜きというか、psとかのプロセスのリストを取得して
確認したいプロセスが存在するかチェックするPHPスクリプトをwebサーバ経由で叩く。
0271nobodyさん
2005/10/21(金) 15:21:15ID:???0272nobodyさん
2005/10/21(金) 15:35:18ID:???0274nobodyさん
2005/10/21(金) 16:26:12ID:8sbI4mJRちなみに、配列は $_FILES[] です!
0275nobodyさん
2005/10/21(金) 16:28:14ID:???0277nobodyさん
2005/10/21(金) 16:32:30ID:8sbI4mJR処理
}
これでできますかー?
ループなのでミスったら怖いから試せません(><)
0278nobodyさん
2005/10/21(金) 16:41:13ID:8sbI4mJRお母さんに聞いたら、2ちゃんねるならすぐ答えてくれるよって言ってたのに(><)
0279nobodyさん
2005/10/21(金) 16:42:53ID:???確実に動作する事が確認できるまでは、間違っても共有鯖に上げてはいけません。
0280nobodyさん
2005/10/21(金) 16:43:03ID:???0281nobodyさん
2005/10/21(金) 16:46:14ID:???0282nobodyさん
2005/10/21(金) 16:48:17ID:???0283nobodyさん
2005/10/21(金) 16:52:46ID:???もしループが止まらなかったらときは
急いでPCの電源ケーブルを引っこ抜けばいい.
そうすれば熱暴走による爆発炎上は避けられる.
0284nobodyさん
2005/10/21(金) 16:53:08ID:???0285nobodyさん
2005/10/21(金) 16:57:41ID:8sbI4mJRif($_FILES["img1"]["tmp_name"]){
echo "ファイル1あるよ<br>";
$i++;
}
if($_FILES["img2"]["tmp_name"]){
echo "ファイル2あるよ<br>";
$i++;
}
if($_FILES["img3"]["tmp_name"]){
echo "ファイル3あるよ<br>";
$i++;
}
if($_FILES["img4"]["tmp_name"]){
echo "ファイル4あるよ<br>";
$i++;
}
0287nobodyさん
2005/10/21(金) 17:03:44ID:???0288nobodyさん
2005/10/21(金) 17:10:31ID:???foreach($_FILES as $value){
echo $value."<br>";
}
結果
Array
Array
Array
Array
こっちが「あれ〜ぃ?」と言いたいよ。
0289nobodyさん
2005/10/21(金) 17:13:28ID:???0290nobodyさん
2005/10/21(金) 17:15:50ID:???0291nobodyさん
2005/10/21(金) 17:18:53ID:???0292nobodyさん
2005/10/21(金) 17:23:53ID:???抽出した文字列は$ip_addressという変数に格納したいです。
テキストファイルの最後に改行マークがあっても無くても無視したいのですが
それを実現するもっとも簡単な方法といったらなにがあるでしょうか?
$ip_address = @readfile($log_file);
この方法で読み込むと、文字列以外に意味不明な数字が最後に
付与されてしまいました(おそらく読み込んだバイト数?)
0294nobodyさん
2005/10/21(金) 17:25:07ID:???for($i=1;$i<5;$i++){
$img = "img".$i;
if($_FILES[$img]["tmp_name"]){
echo "ファイル".$i."あるよ<br>";
}
}
0295nobodyさん
2005/10/21(金) 17:25:07ID:???foreach ($_FILES as $array) {
echo $array["tmp_name"]."<br>";
}
0297nobodyさん
2005/10/21(金) 17:31:32ID:???とりあえず
$ip_address = trim(fgets(fopen($log_file, "r")));
0298nobodyさん
2005/10/21(金) 17:34:54ID:tv2tmgT4×××△△△××××××
×××□□□××××××
×××☆☆☆××××××
・・・
(この先同じような形がずっと続く)
上の文字列を下のような形に書き換えるには
どういう正規表現を使ったらいいのでしょうか?
×××○○○××××××○○○
×××△△△××××××△△△
×××□□□××××××□□□
×××☆☆☆××××××☆☆☆
説明が下手ですみません
■ このスレッドは過去ログ倉庫に格納されています