【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カテゴリ)の各スレで
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0483nobodyさん
2006/10/30(月) 20:51:02ID:bBR787Fl$target_url = "ターゲットURL";
$client =& new HTTP_Client( $reqParams);
$updata=array( "filename.csv", "filename.csv");
$client->post( $login_url, '', '', $updata);
Warning: Missing argument 2 for addfile() in /インクルードパス/HTTP/Request.php on line 525
何卒お願い申し上げます・・・・・
0484nobodyさん
2006/10/30(月) 21:01:53ID:???$updata = array(array("filename.csv", "filename.csv"));
じゃないだろうか
後1つ目の値はフォームのエレメント名
ソースチラ見で書いてるんで外してたらすまん
0485nobodyさん
2006/10/30(月) 21:45:19ID:???日別ログや週別ログ、月別ログとして管理画面から閲覧できるものがありますが、
そういうのはログファイルを日、週、月で別々に記録しているのでしょうか?
0486nobody
2006/10/30(月) 21:51:21ID:LQ50Lk3U文章中に含まれるカタカナの語句を全て抜き出し、コンマ区切りで別の
テキストファイルに書き出すということをしたいのですが、ちょっと
手詰まりな状態です。どうか、ご教授願えませんか?
0487nobodyさん
2006/10/30(月) 21:57:41ID:???AサーバのPHPスクリプトでBサーバに接続し、
Bサーバ上でシェルコマンドを打って、その結果をAサーバに
返す事は可能でしょうか。
例えば、AサーバのPHPで、ls -laというコマンドを、
Bサーバで打って、その結果をAサーバのPHPスクリプトで
表示させたいと思っています。
どなたかご助言お願い致します<(_ _)>
0488nobodyさん
2006/10/30(月) 22:02:12ID:???fopen
正規表現でカナの抜き出し→配列に保管
配列をファイルに書き込む
これでコードかいて動かなかったら質問しろ。
0489nobodyさん
2006/10/30(月) 22:03:12ID:???そりゃ作成者に聞かないとわからんが
たぶんログを表示するときに生データから欲しいログだけ抽出してんじゃないの?
>>486
今どこまでできてんの?
0491nobodyさん
2006/10/30(月) 22:10:28ID:???日毎のログがあれば集計して週のデータも月のデータも出せるでしょ
>>486
何で手詰まりなのか
>>487
Bでシェルから結果を受け取るスクリプトを置いて
AからBのそのスクリプトのURLをリクエストして
レスポンスを取得するようにすればいい
0492486
2006/10/30(月) 23:41:30ID:LQ50Lk3Uいまのところ、
$text=fopen("bunsyou.txt","r");
$text2=fread($text,filesize("bunsyou.txt"));
//echo "$text2<br>\n";
for($i=1; i<=10; i++){
if(eregi("[ア-ン]",$text2));
}
fclose($text);
こんな感じです。正規表現にマッチした語句の抜き出し方が、よく
わからないのでして。。。お教えいただければ、ありがたいです。
0493nobodyさん
2006/10/30(月) 23:44:13ID:???0494487
2006/10/30(月) 23:45:47ID:???レスありがとうございます<(_ _)>
> Bでシェルから結果を受け取るスクリプトを置いて
重ね重ね申し訳ありませんが、↑ってどういう風に
書けばいいのでしょうか。
関数名だけでもヒントを頂けないでしょうか。
0495nobodyさん
2006/10/30(月) 23:46:18ID:???0496nobodyさん
2006/10/30(月) 23:47:57ID:???> Bでシェルから結果を受け取るスクリプトを置いて
B.phpの$text="hello"をA.phpにて受け取るスクリプトを書ければわかりやすいだろう。
0497nobodyさん
2006/10/31(火) 00:06:18ID:???echo "$text<br>";
if(mb_ereg("[ア-ン]+[アーン]+", $text,$str)) {
echo $str;
}
あとは自分で調べろ、
0498483
2006/10/31(火) 00:07:20ID:lBCw+Epvおおお!ありがとうございます!
明日試してみます。
PEARのドキュメントってどうもサンプルスクリプトがなくて
使い方がいまいち分からんと思っているのはオレだけか?
0499nobodyさん
2006/10/31(火) 00:22:07ID:???http://jp.php.net/manual/ja/ref.exec.php
ここらへん
>>498
PEARはtestやexampleが入ってるからそれを見る、
あとはソース嫁が基本
0500498
2006/10/31(火) 00:48:55ID:lBCw+Epv出直してきます。
0502nobodyさん
2006/10/31(火) 01:05:43ID:6V2Mcmc8if文でチェックする場合、
クライアントのIPを取得して、それを何と比較したらいいのでしょうか?
コードは自力で書きますので、どなたかヒントだけご教授お願いいたします。
0503nobodyさん
2006/10/31(火) 01:12:04ID:???0504nobodyさん
2006/10/31(火) 03:42:11ID:???0507nobodyさん
2006/10/31(火) 07:32:48ID:???それだと半角カナが先に来ないといけないし全角はア、ー、ンの3文字だけ
[ア-ンア-ン]にしても半角のァィゥェォとか全角のァヴヵヶとかがマッチしない
$text ="あいうえおアイウァィゥェォガギグパピプヴァヶさしすせそ";
echo "$text<br>";
mb_regex_encoding("sjis");
if(mb_ereg("[ヲ-゚ァ-ヶ]+", $text,$str)) {
var_dump($str);
}
0508nobodyさん
2006/10/31(火) 07:42:01ID:???0509nobodyさん
2006/10/31(火) 08:04:06ID:5uTR2Worで配列に読み込んでprint_r($file)で確認すると、
インデックス0($file[0])には一行目が、インデックス1には2行目が・・(省略)格納されてしまいます。
自分がやりたいのは
$file[0][0]で一行目の一つ目のデータを見たいのですがうまくいきません。
どなたかご教授お願いいたします。
list.txtの中身
green,yellow,blue,red
black,red,white,orange
0510nobodyさん
2006/10/31(火) 08:11:52ID:???カンマ区切りでデータを区切りたいならそう書かないと。
PHPは表計算ソフトじゃないんだからそんなの標準でやるわけないじゃん。
すでに読み込んだデータをカンマ区切りで分解する方法と、
読み込みをカンマ区切りで行う方法とがある。
・後から区切る方法
$file = file("list.txt");
$data = explode(",", rtrim($file[0]));
echo $data[0];
・読み込み時に区切る方法
$fp = fopen("lit.tst", "r");
$file = array();
while($line = fgetcsv($fp, 1024)) {
$file[] = $line;
}
fclose($fp);
echo $file[0][0];
0511nobodyさん
2006/10/31(火) 08:16:31ID:???$i = 0;
while (($line = fgetcsv($fp, 1000, ',')) !== FALSE) {
$lines[$i] = $line;
$i++;
}
fclose($fp);
$lines[0][0]みたいにね
時間ないから動作確認してないけど
んじゃ
0513486
2006/10/31(火) 09:34:28ID:F9LjnucEやってみます。ありがとうございました。
0514nobodyさん
2006/10/31(火) 09:56:56ID:???0515nobodyさん
2006/10/31(火) 10:08:09ID:???0516nobodyさん
2006/10/31(火) 10:22:39ID:???こっちの方が簡単そう。
$file = file_get_contents("ファイル名");
$file = mb_ereg_replace('[^ヲ-゚ァ-ヶ]+', ',', $file);
echo preg_replace('/^,|,$/', '', $file);
0517nobodyさん
2006/10/31(火) 10:25:28ID:kTefGQaT文字化けさせないようにするためには
phpの中身(echoとかで表示される日本語)もEUC-JPで書かなければならないんですよね?
0518nobodyさん
2006/10/31(火) 10:33:46ID:???0519nobodyさん
2006/10/31(火) 10:44:13ID:???echoの前にmb_convert_encodingで文字コード変換をかけるとか、
出力データの定義だけEUCにしとくとかでも文字化けはしないけど
そんな手間をかけるくらいならEUCでソース書いた方が早いかもね。
個人的には出力データがソース中にあること自体どうかと思うけど。
0520nobodyさん
2006/10/31(火) 11:07:31ID:bXmcDE+81)フレーム内にあるページでSSLにするとセッション変数が引き継げないのはどうしてなのでしょう?
2)actionでSSLのURIを指定し、methodにPOSTを指定しても、
GETを指定した時のように、アドレスに引数が表示されるのはどうでしてなのでしょうか?
ご存知の方尾根逢いいたします。
0521nobodyさん
2006/10/31(火) 11:32:07ID:F9LjnucE設定/取得とありますが、内部文字エンコーディングって
なんでしょうか?
あと、
mb_internal_encoding("UTF-8");
mb_regex_encoding("UTF-8");
このように用いられている例があるのですが、どんな意味があるん
でしょうか?
0522nobodyさん
2006/10/31(火) 11:43:17ID:???0523nobodyさん
2006/10/31(火) 13:15:10ID:???配列で出力してくれる関数はありませんか?
get_declared_classesを使ったら、
すごいたくさんクラスが出てきて困っています。
0524483
2006/10/31(火) 13:20:33ID:tsMd/rxyありがとう神。出来ました。
0525nobodyさん
2006/10/31(火) 13:21:46ID:KRBx0YqFclass hoge{
function foo($match){
return "123";
}
function bar($match){
return "abc";
}
}
$before = array(
"[a-z]+",
"[0-9]+"
);
echo preg_replace_callback($before, array(array("hoge", "foo"), array("hoge, bar")), "abc123");
0527nobodyさん
2006/10/31(火) 13:31:16ID:???行いたいのですが、パスワード入力の部分で対話になってしまい
これをどの様に処理していいのか解らず、どなたかご存知の方
おりましたらアドバイス頂けると助かります。(>_<;
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:???■ このスレッドは過去ログ倉庫に格納されています