【PHP】下らねぇ質問はここに書き込みやがれ 31
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/10/25(水) 08:45:46ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
【前スレ】
【PHP】下らねぇ質問はここに書き込みやがれ 30
http://pc8.2ch.net/test/read.cgi/php/1159979905/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しない)
・ サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0528nobodyさん
2006/10/31(火) 14:32:33ID:???expect が使えるのならそれを使う
php 側は expect コマンドを使ったシェルスクリプトを実行するようにする
expect が使えないのなら、あきらめたほうがいいかも
0529nobodyさん
2006/10/31(火) 14:56:34ID:???有り難う御座います。調べててそこまでは辿り着きコンパイルし直して
有効にはなったんですが、peclでモジュールダウンロードしようとする
とlibexpectが無いと言われてしまい、libexpect探してるんですがどこ
に落ちてるか解らないス…orz
#PHPのインストール
version : php-4.4.4
./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-versioning \
--enable-mbstring \
--with-pgsql=/usr/local/pgsql \
--enable-zend-multibyte \
--with-expect=./ext
#pecl install expect-0.2.2
〜
checking for expect support... yes, shared
configure: error: expect extension requires libexpect version >= 5.43.0
ERROR: `/tmp/tmpUKzwZQ/expect-0.2.2/configure' failed
0531nobodyさん
2006/10/31(火) 15:17:53ID:???proc_open()ってのはそういうケースじゃ使えないの?
0532nobodyさん
2006/10/31(火) 15:35:48ID:???メッセージから察するにlibexpectがないんじゃなくて
libexpectのバージョンが古いんじゃないかな
aptとかrpmでexpectをアップグレードするとか
0533nobodyさん
2006/10/31(火) 15:47:57ID:???を str_replace で置換(削除)したいんですが、
^Mをどうやって指定すればいいでしょうか?
0534527
2006/10/31(火) 15:52:36ID:???>>531
ザッとマニュアル見てみたんですが、ちょっと後ほど試してみます。
>>532
ソースからインストールする癖がついててすっかりそうゆう便利な
物の存在を忘れていました。早速実行してみましたが、やっぱ駄目
ポでした。。。
yum install-expect
expect-5.42.1-1.i386.rpm 100% |=========================| 13 kb
アップデートのものが古いようです。orz...
>libexpect version >= 5.43.0
はぁ…よく解らない…
とりあえず引き続き調べて何かわかったら報告しまつ。(・ω・;
ちなみにOSはCentOS4.4です。
0536nobodyさん
2006/10/31(火) 16:40:10ID:???>>528
の方法は bash とかのシェルスクリプトを使って
それを shell_exec() で実行するという意味だと思うぞ
proc_open()でいけそうな気もする
0537nobodyさん
2006/10/31(火) 17:13:10ID:???expectの5.43.0が結構新しいから5.43.0用のrpmがまだstableじゃないんだろう
unstableな最新のrpm探して取ってくるかソースから自前でexpect入れるか
そういう作業に慣れてないなら
proc_open()でできるかどうかから調べた方がいいかも
0538nobodyさん
2006/10/31(火) 18:52:52ID:o5P7BR6pどうもありがとうございます
0539nobodyさん
2006/10/31(火) 21:20:22ID:???0540nobodyさん
2006/10/31(火) 21:44:23ID:???0541nobodyさん
2006/10/31(火) 21:57:29ID:aqfpYPvu秒まで記録することは精度に信頼できるものか疑問でございます。
どなたかアドバイスお願いいたします。
0543nobodyさん
2006/10/31(火) 22:08:01ID:???別に記録するだけ記録してもいいんじゃない?
データベースで時間管理するなら秒まで記録するはず
0544541
2006/10/31(火) 22:19:53ID:???UNIXタイムで記録するのとY/m/d H:i;s形式どちらが妥当でしょうか?
二つとも記録するのは無駄ですよね?
0545nobodyさん
2006/10/31(火) 22:27:26ID:???0547nobodyさん
2006/10/31(火) 22:37:34ID:???両方やっとけばいいがな(´・ω・`)
0548nobodyさん
2006/10/31(火) 22:41:36ID:???「妥当」というのは目的に合致しているかで判断される。
キミの質問にはその「目的」が書かれていないので判断のしようがない。
0549nobodyさん
2006/10/31(火) 22:54:25ID:Ch7IBLhaボタンID
1,2,3,4,5,6,7,8,9,10
テーブル2
使用許可されたボタンID
1,2,3,4,5,6,7
テーブル3
user ボタンID
1 1
1 2
1 3
1 9
2 1
2 2
3 1
この三つのテーブルから、テーブル1と2を比較し、1〜7までグループ的に使用許可
その後、ユーザーのレコードから使用を認めるようなものが作りたいのです。(ユーザー1なら、ボタン1、2、3。ユーザー3ならボタン1のみなど)
$search = strstr ($table1, $buttonID);
一生懸命考えてこんなんでましたが、もっとスマートに出来ないでしょうか?
MySQLでも上手い事出来る気がしないでもないのです…
どなたかエロイ人へるぷみ〜
0550nobodyさん
2006/10/31(火) 22:59:00ID:???0551541
2006/10/31(火) 22:59:30ID:???あるページのアクセスログを一日単位で集計して、
そのアクセス数のよって企業からお金を頂く仕組みでございます。
ですので、23:59から0:00の間がきっちりやりたいと思っております。
アクセス数を日別に集計したファイルと、アクセスログを提出するのですが、
秒までいれるべきか迷ってしまいました。
主な目的は、一日のアクセス数を集計することと、
1時間単位のアクセス数を調べるのが目的です。
0553549
2006/10/31(火) 23:02:08ID:???0554nobodyさん
2006/10/31(火) 23:02:55ID:???それよりも、サーバの時間を正確に保持するほうが大切じゃないの
0555nobodyさん
2006/10/31(火) 23:16:42ID:???普通、宿題というものは自力でやるもんだ(´・ω・)
>>551
何がそんなに問題なのかが分からない。
時刻を保存した場合、ログの保存にもたついたら31日のログファイルに
30日23時59分のデータが混じる事はあるかも知れんが、
曜日的なバイアスを考慮しないなら期待値は
30日のログファイルに29日のデータが混じるのとそう変わらん。
つまり厳密ではないかも知れないがそこまで深刻な違いも出ない。
1〜2件アクセス数が違ったくらいで動く金額にそんなに大きな違いが?
0557nobodyさん
2006/10/31(火) 23:21:30ID:???お前そんなレベルで金をとったら詐欺に近いよ。
っていうかそもそもアクセスログの件数で金額が決まる仕事って、なんだよそれ。ありえない。
0558541
2006/10/31(火) 23:23:03ID:???この部分のコードを参照していただきたいのですが、
1行目の処理が23:59:59で
3行目の処理が0:00の場合、
日付、データは23:59:59として書き込まれるのでしょうか?
それとも0:00として書き込まれるのでしょうか?
$string =.date("Y/m/d,G:i:s")
flock($file,LOCK_EX);
fputs($file,$string);
0559nobodyさん
2006/10/31(火) 23:29:58ID:???ただし$fileが23:59:59に正しく対応したものであるかどうかは別の問題だな。
0560nobodyさん
2006/10/31(火) 23:30:11ID:???Webでのアクセスの場合、通信経路によって2秒や3秒ずれることはあるわけで、
結局、取引先に通知すべきなのはログとしてカウントされた時刻でしかない。
どこで線引きをするかを指定しされているわけでなく、どうしても気になるなら先方に聞け。
>>558
前者。
0561nobodyさん
2006/10/31(火) 23:30:27ID:???またある時は片目の運転手またある時は品好きのキザな紳士になってたら困るっちゅーねん
0562nobodyさん
2006/10/31(火) 23:31:54ID:???サーバの時計あわせだけ出来てれば問題なしとするしかないだろ
そもそも最初に秒単位まで記録するかどうかを質問してるけど、分単位で記録しても仕様として通るような上司がシビアとかアフォか
適当に大丈夫ですって言いくるめとけばいいだろ
0563560
2006/10/31(火) 23:34:50ID:???$_SERVER["REQUEST_TIME"]
に格納されている。
0564541
2006/10/31(火) 23:40:17ID:???当方の環境では時間差でdate()の中身は変わりませんでした。
$time =date("Y/m/d G:i:s");
echo $time;
for($i=0;$i<10000000000;$i++){
echo "a";
}
echo "<hr>";
echo $time;
0565nobodyさん
2006/10/31(火) 23:42:51ID:Ch7IBLhaうはw なりすましかよw
まぁ、array_diff( )を発見したので、これで出来るかなぁ。
ちなみに宿題ちゃいますw
知り合いの会社用ですお
0566541
2006/10/31(火) 23:44:43ID:???php5.1から使えるのですね、勉強になりました。
現在php4.4.3をしておりますので、
近いうち5.1にバージョンアップする予定なので利用させていただきます。
0567nobodyさん
2006/10/31(火) 23:47:24ID:???×当方の環境では時間差でdate()の中身は変わりませんでした。
○当方の環境では時間差で$timeの中身は変わりませんでした。
あと、そのコードだとたとえ最適化が働くようなコンパイラであったとしても、
2行目で$timeを参照しているので、少なくとも2行目で$timeの中身は(通常なら)確定する。
もし、そうでなければ$timeの値が操作なしで変わってしまうことになる。
不確定性理論みたいなもんだ。
0568nobodyさん
2006/10/31(火) 23:53:18ID:???一日ズレたって、次の日のカウントに入るだけじゃないの?そんな深刻な問題かね?
一時間ごとにも集計するなら、その一時間ごとにもズレが出るってことだよねw
0569nobodyさん
2006/10/31(火) 23:56:51ID:???日付が変わった後で該当するデータをまとめて抜き出せばずれないよね(´・ω・)
手間がかかる割に無意味だけど。
0570nobodyさん
2006/10/31(火) 23:57:56ID:???0571nobodyさん
2006/10/31(火) 23:58:55ID:???ほとんど無いのはなんで?
0572nobodyさん
2006/11/01(水) 00:02:25ID:???時計の精度とか、どの時点でアクセスされたと見なすかってのはクライアントと話し合って決める内容だろ
まぁ、マイクロ秒単位の誤差まで問題にされたら困る
>>571
ぷろぐらむ組むのは初めてです。って人に教えるには少々メンドイしページ数が増えちゃうからじゃね?
使うにしてもPHPマニュアルよりRFCの方が役立つしねぇ
0573nobodyさん
2006/11/01(水) 00:08:59ID:???PHPがWeb用途に重きを置いていて使う人もそれを求めてるから
直接ソケットいじくらず用途に応じたラップしてあるライブラリ使えってこった
0574nobodyさん
2006/11/01(水) 00:47:13ID:???どっちにしろ、通常はプログラム先頭でdate()の値を変数に取得しとけば問題にならない。
それすら分からないド素人レベルで金取るなよ詐欺師。
0575nobodyさん
2006/11/01(水) 04:58:04ID:???ソケット通信プログラミングの専門書はC用の既存の本が
いっぱいあって関数は互換があるからそれ読めばいいし、
逆にそれ読まずに使いこなすのはかなり無謀だし、
PHPのマニュアルに混ぜると半分がソケットの話になるか
下手するとそっちの方が分量がでかくなるんで無理がある。
0577nobodyさん
2006/11/01(水) 08:09:51ID:???0578nobodyさん
2006/11/01(水) 08:44:37ID:???> $_SERVER["REQUEST_TIME"]
「アクセス」ってのが微妙だが、
リクエストがあった時間と客がレスポンスを見る時間は違うかもしれないと。
確かここら辺って、いろいろ複雑だったようなきがする。
Apacheがリクエストを受け取る時間とレスポンスを吐き出しはじめた時間、
レスポンスを送り終わった時間とか。どっかで読んだなあこの話。
> シビアなんです、上司が。
あなたが定義すればいいんですよね。
HTTPリクエストがあった時間を基準に課金することにするって。
0579nobodyさん
2006/11/01(水) 09:02:23ID:???プ
0580nobodyさん
2006/11/01(水) 09:25:57ID:???;'`;、、:、. >>579: :,.: ::`゙:.:゙:`''':,'.´ -‐i
'、;: ...: ,:. :.、.∩.. .:: _;.;;.∩‐'゙  ̄  ̄
`"゙' ''`゙ //゙`´´ | |
//Λ_Λ | |
| |( ´Д`)// <うるせぇ、エビフライぶつけんぞ
\ |
| /
/ /
__ | | __
\  ̄ ̄ ̄ ̄ ̄ \
||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
0581nobodyさん
2006/11/01(水) 10:05:10ID:???正規表現で文字を抜き出して、配列に格納して表示させたら、
Array ( [0] => タイトル [1] => ツール [2] => カメラ [3] => カメラ
[4] => カメラ [5] => カメラ [6] => データベース [7] => ユーザー)
といった感じで、ダブっているものも検出してしまいます。
これをダブりがないように表示するには、どうすればよいでしょうか?
0583nobodyさん
2006/11/01(水) 10:54:53ID:???0584nobodyさん
2006/11/01(水) 11:01:34ID:???ありがとうございました。ダブっているのをもう1回正規表現で抜き
出して、mb_ereg_replaceで置き換えるのかなぁと思って、ちょっと
困っていたところですが、実は配列の初歩的なことで解決できたん
ですね。マヌケでした。
0585nobodyさん
2006/11/01(水) 11:35:24ID:egQfb3lu0587581
2006/11/01(水) 11:49:18ID:???メアド欄に空白入るとIDが表示されなくなるんですか
0588nobodyさん
2006/11/01(水) 12:08:33ID:???0590nobodyさん
2006/11/01(水) 12:23:36ID:???おまえ出世しないタイプだなw
0591nobodyさん
2006/11/01(水) 12:38:00ID:???Windowsサーバなのですが、パッチはありませんか?
0592nobodyさん
2006/11/01(水) 12:43:18ID:???回答者はIDをだしてください。
回答者はIDをだしてください。
回答者はIDをだしてください。
回答者はIDをだしてください。
回答者はIDをだしてください。
回答者はIDをだしてください。
回答者はIDをだしてください。
0593nobodyさん
2006/11/01(水) 12:43:58ID:???0596nobodyさん
2006/11/01(水) 12:58:28ID:???0602nobodyさん
2006/11/01(水) 14:13:23ID:???0604nobodyさん
2006/11/01(水) 14:41:25ID:???value値を1や2と言った数値にしてます。
で、
if (is_numeric($_POST['aa'])) {
if ($_POST['aa'] == 1) {
echo "1です。";
} else if ($_POST['aa'] == 2) {
echo "2です。";
}
} else {
echo "数値以外はダメ。";
}
とするか、
if ($_POST['aa'] == 1) {
echo "1です。";
} else if ($_POST['aa'] == 2) {
echo "2です。";
} else {
echo "数値以外はダメ。";
}
とするか、どちらがいいでしょうか?同じですかね?
0607nobodyさん
2006/11/01(水) 15:22:36ID:???0609nobodyさん
2006/11/01(水) 15:56:40ID:???$data = array(1 => '1です。', 2 => '2です。');
みたいな配列用意しとけば、許容される数値かどうかの判定はif一発で済むし、後々DB導入したとしても変更が楽かも。
0610nobodyさん
2006/11/01(水) 16:09:45ID:???echo "表";
と表示させようとするとエラーが出てしまいます。
stripslashesを使用しても無理でした。
どのようにしたらちゃんと表示されるのでしょうか?
0612610
2006/11/01(水) 16:17:50ID:???<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
<meta http-equiv="Content-Style-Type" content="text/css">
<title>あいうえお</title>
</head>
<body>
あいうえお
</body>
</html>
EUC-JPを使おうと思い、このように記述したのですがなぜかIE6で文字化けしてしまいます。
Shift_JISなら大丈夫でした。カタカナで記述しても大丈夫みたいです。
文字化け→「あa・ム・」
なんでだろう。。。。
0616612
2006/11/01(水) 16:32:15ID:???ためしにEUC-JPのページをお気に入りに入れてブラウザの起動と同時に表示させたら、大丈夫でした。
やはりShift_JISを使うしかないのか。。。
0617nobodyさん
2006/11/01(水) 16:43:54ID:???ソースをSJISで書くにはマルチバイト対応でコンパイルしたPHPで
mbstring.script_encodingをSJISに設定しないといかんのでは。
>>616
ブラウザの文字エンコード設定は自動判別になってる状態?
PHPのmbstring.output_encoding辺りはどういう設定になってるの?
0618612
2006/11/01(水) 16:52:51ID:???お騒がせしました。ブラウザの文字コードは大丈夫でした。
html(php)ファイルを保存するときに保存形式がEUC-JPでなければいけない所がSJISになっていました。
ちゃんとEUC-JPで表示することができました。
0619nobodyさん
2006/11/01(水) 17:01:19ID:nyPZj6d6ファイルをアップロードするフォームを含むHTMLファイルがサーバAにあり、
それを使ってアップロードしたファイルをサーバBに保存することは可能ですか?
0622621
2006/11/01(水) 17:06:47ID:???0625nobodyさん
2006/11/01(水) 17:25:11ID:???name属性で指定した文字はPOST送信されないんでしょうか?
(_xと_yの座標は渡されますが)
0627nobodyさん
2006/11/01(水) 17:37:17ID:uM8NHcM0filesize("http://〜〜");だとエラーが返されます。
どうすればよいのでしょうか。
■ このスレッドは過去ログ倉庫に格納されています