【PHP】下らねぇ質問はここに書き込みやがれ 66
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/03/16(日) 17:23:27ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 65
http://pc11.2ch.net/test/read.cgi/php/1203854597/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0428nobodyさん
2008/03/29(土) 02:18:32ID:???0429nobodyさん
2008/03/29(土) 02:25:05ID:???XMLのencoding指定が正しくされていないとかいうオチ?
0431nobodyさん
2008/03/29(土) 02:40:02ID:???0432424
2008/03/29(土) 02:45:12ID:???抽象的な表現で誤解を与えてしまってすみません。
例えていいますと、私は流れてきた電波を映像に変換するテレビを作る立場の人間で、
テレビ局に、電波をハイビジョンで送ってくれとかノーマルで送ってくれとか、いう立場にないという意味です。
0433nobodyさん
2008/03/29(土) 02:47:09ID:???file_get_contents()とかで取り込んでから加工しろ
ここまで言わないと分からないなんてどんな馬鹿だよ…
0434nobodyさん
2008/03/29(土) 03:00:02ID:???きっとURLをそんままぶちこんでるんだと思うよ
変数で受け取ってからゴミをとってそれからパースする
そのままぶちこまなくてもイインダヨ
0435424
2008/03/29(土) 03:18:20ID:???アドバイスありがとうございます。そういうことだったんですね。
そういう発想がなかったのですが、それならなんとかなりそうです。
遅い時間に、どうもありがとうございました。
0436nobodyさん
2008/03/29(土) 05:10:26ID:???echo $a."-ghijklmn";
とする場合と
echo "abcdef-ghijklmn";
の場合ではどちらが表示が早い、もしくは負荷がかからないのでしょうか?
0437nobodyさん
2008/03/29(土) 05:12:27ID:???ミリ秒とかマイクロ秒とかとてつもなく小さい誤差なので気にしなくていい
0438nobodyさん
2008/03/29(土) 05:14:54ID:???ありがとうございます
プログラム文自体が短い方が早いのかと思いましたがストレートに書いた方がいいのですね
0439nobodyさん
2008/03/29(土) 06:13:04ID:???小学生乙
0440nobodyさん
2008/03/29(土) 12:22:06ID:siokcgs9すごい時間かかる処理
echo time();
なぜか数秒しか立ってないんだけど
ちゃんと処理時間を割り出すにはどうすればいいのかしら
0441nobodyさん
2008/03/29(土) 12:33:44ID:???0442nobodyさん
2008/03/29(土) 12:55:37ID:???for($i=0;$i<1000000000000000;$i++){echo time();}
echo time();
0444nobodyさん
2008/03/29(土) 13:08:41ID:???どっちで囲んだほうがいいとかありますか?
0445nobodyさん
2008/03/29(土) 13:18:51ID:???「 ''' 」はオバQ。
0447440
2008/03/29(土) 14:05:55ID:siokcgs9何百人分のデータを取得加工したり
レンダリングは数十分後なのに
5秒経過とか出る件について
0448nobodyさん
2008/03/29(土) 14:28:22ID:???0449nobodyさん
2008/03/29(土) 15:33:43ID:???0450nobodyさん
2008/03/29(土) 16:16:00ID:???まずマニュアルを探せ、そして読め
http://www.php.net/manual/ja/language.types.string.php
その上で質問すると自分のためになるよ
0451nobodyさん
2008/03/29(土) 17:14:52ID:7xNaxr2Gテキストデータがあります
1
3
7
12
‥
みたいな感じで入っています。
そこから、データを整数型で読み出して
最大値を取り出すにはどうすればよいでしょうか?
ぐぐってみたものの分からず。
よろしくお願いします
0453nobodyさん
2008/03/29(土) 17:34:33ID:7xNaxr2Gすんません、一度読んでみます。
あと、もしよろしければお願いが。
一応プログラム載せてみますので
その間にもしまずそうな所あればご指摘願えませんか?
下記プログラムだと結果が12でなく7になってしまって
よろしくお願いします。
$fp=fopen("test.txt","r");
$num=0;
$makusu=0;
for($num=0;$num<10;$num++){
$tdata[$num]=fgets($fp,1024);
if($makusu<$tdata[$num]){
$makusu=$tdata[$num];
}
}
fclose ($fp);
0454nobodyさん
2008/03/29(土) 17:43:23ID:???金が良かったこともあって、流される感じで時間を過ごしてしまった。
が、振り返ると、人から言われたことをそのまま翻訳するだけの流れ作業的仕事。
自由な発想で作りたかったけど、一度もそのような機会が恵まれず、昨日付けて会社を退職しました。
来月から、大学の先輩を頼って監査法人に入ります。
数年後には、公認会計士を目指して頑張ります。
このスレは、仕事で分からなかったときに何回がお世話になりました。
本当にどうもありがとうございました。
0455nobodyさん
2008/03/29(土) 18:13:18ID:???条件が書かれていないから考えられる中でのシンプル
$csvdata = file("./test.txt"); //textを配列に取り込む
sort($csvdata,SORT_NUMERIC); //配列の値を数値として並び替え
echo '最大値:'.end($csvdata); //数値として並び替えしているから配列の最後の値を表示
>>453
それは数字ではなく文字列で比較しているからだな
1 と 7 の文字の場合7の文字コードの方が大きい
if($makusu<((int)$tdata[$num]){
とでもして試してごらん
0456nobodyさん
2008/03/29(土) 18:25:10ID:???キャストでtypoしてるよ。
× if($makusu<((int)$tdata[$num]){
○ if($makusu<(int)$tdata[$num]){
>>453の微笑ましいロジックのまま対処してるとこに和んだ。
0457nobodyさん
2008/03/29(土) 18:38:41ID:???フォローサンクス
typoはよくやるんだよなぁ…この癖を直さないとなぁ
とりあえずなぜその結果が出たのか?の疑問だったからなぁその部分だけ解決する方法をね
あとは試行錯誤してコードを直していくのが自分のレベルアップの為だと思うし
0458nobodyさん
2008/03/29(土) 19:15:19ID:???0459440
2008/03/29(土) 20:52:41ID:siokcgs9そんなバカな
0460nobodyさん
2008/03/29(土) 21:54:44ID:???$aaa[1] = array( "AAA"=>"123","BB"=>"456");
こういう配列で$aaa[0]の一番最初のabcは$aaa[0][0]ではないのでしょうか?
うまくとりだせません
0461nobodyさん
2008/03/29(土) 22:08:51ID:???0463nobodyさん
2008/03/29(土) 22:40:12ID:TG/x4Siy$a == null
is_null($a)
の違いがわかりません
動作的には全部一緒の動作をするようですが
どう違うのでしょうか?
0465nobodyさん
2008/03/29(土) 23:35:26ID:???とりあえず試してみた。
!$a は$aが0や'0'や空文字列やfalseの時にも真になる。
$a==null も同様。
is_null($a);は$aがnullのときだけ真になる。
$a==nullも同様。
0466465
2008/03/29(土) 23:36:05ID:???$a===null ね。
0467nobodyさん
2008/03/29(土) 23:37:10ID:???0468nobodyさん
2008/03/29(土) 23:54:09ID:7xNaxr2Gすいません、お礼がすごく遅くなりまして。。
みなさんのおかげでなんとか解決できました。
本当にありがとうございます。
0469がぐゆき
2008/03/30(日) 00:36:27ID:OfxxBLHH変数に入っているtextを一行ずつ処理したいのですが
どうしたら宜しいでしょうか???
ファイルを読み込んで一行ずつ処理する方法は沢山ありますが
変数内のtextの処理は見つかりませんでした…
ご教授よろしくお願いいたします。
0470nobodyさん
2008/03/30(日) 00:38:19ID:???0471nobodyさん
2008/03/30(日) 01:17:19ID:???サンクス
でもその後も欲しい…
foreach($sub_text as $text){
処理
処理
処理
}
でいいのけ???
0472nobodyさん
2008/03/30(日) 01:19:11ID:???0473がぐゆき
2008/03/30(日) 01:21:01ID:OfxxBLHHぴょんじゃねーよwww
おしえてくだしあwww
0474nobodyさん
2008/03/30(日) 01:51:39ID:???0475がぐゆき
2008/03/30(日) 02:12:14ID:???foreach($sub_text as $text){
処理
処理
処理
}
今の所うまくいってるみたいだけど…?
もっとスマートというか…セオリーがあったら
nobody大先生に教えてもらいたいぽ…
0476nobodyさん
2008/03/30(日) 02:14:12ID:???次の質問よろ。
0477nobodyさん
2008/03/30(日) 02:57:50ID:xDq/YOeJ大量の関数をうまく扱うコツなんかはないでしょうか?
0478nobodyさん
2008/03/30(日) 03:19:53ID:???0479nobodyさん
2008/03/30(日) 04:18:46ID:???自作関数は必要でしょ。どの言語体系でも関数を自作で作られる機構は用意されているし、
世の中ビルトイン関数だけで片付くものじゃない。
素人かな?
0480nobodyさん
2008/03/30(日) 04:28:44ID:???1度しか使わないうえに数行で書き直せるようなコードがガッツリ関数化されてたなんてのは良くある話
同じような系統の処理をクラスに纏めるとか、命名規則とか、ちゃんとコメントを入れるとか
1年後に見ても何をする関数なのかすぐ理解できるような書き方をしておくと扱いやすいかも知らん
0482nobodyさん
2008/03/30(日) 04:50:10ID:???>>478は、見直してみろって言っているが、暗に自作関数は要らないと言っていると思うんだが。
後半は、同意。
>>481
3ヶ月どころか、3年を通り越して7年もやっているんだが。phpだけじゃないが。
0483nobodyさん
2008/03/30(日) 04:56:45ID:???とてもそうは見えないですよ。本当のところは3週間くらいかと思った。そもそも国語力が足りないんじゃないですか?
0484nobodyさん
2008/03/30(日) 05:04:06ID:???意味分からん。
phpはビルトイン関数が多いから、自作関数を作るのはビルトイン関数を
把握しきれていない証拠だといいたいのか?
ビルトイン関数はユーティリティー関係が充実しているのは確かだが、
それだけではシステムは組めない。
業務クラスを実装していけば、複数の業務で共通する処理を業務共通クラスとして外だしにすることもよくあること。
もっと、勉強してこい。
0486nobodyさん
2008/03/30(日) 06:34:28ID:???>>478は自作関数は要らない ではなく、関数化する必要が在る・無いを見極める事が必要って言っていると思う
関数化は作る時の作業効率だけではなく、他人が後からトレースする時の効率も考える必要があると思う
スパゲティコードもトレースに時間がかかるけど、関数だらけのもトレースに時間がかかる
自作関数の中にまた自作関数があって、その中に自作関数があって、やっている事は数行で1度しか呼び出しされない
とか…それが解るのはそのファイル内の処理を全てトレースして理解してからなんだよね
関数化やライブラリ化するのかそのバランスを見極める必要はあると思う
0487nobodyさん
2008/03/30(日) 09:29:29ID:oSilb2mWハッシュ文字列が長いので、ログのサイズカット目的で、
substrで7文字程度にカットしようと思うのですが、これで行った比較は正確なものと言えるでしょうか?
0488nobodyさん
2008/03/30(日) 09:41:35ID:???0489nobodyさん
2008/03/30(日) 10:15:54ID:???自分は単なる関数でもクラスのstaticメソッドにして整理してる。
>>487
正確はどうかは、ここで言う「正確」という言葉の定義による。
ログの目的にもよるけど、ログ出力するときだけカットするようにしたら?
0490nobodyさん
2008/03/30(日) 10:24:41ID:???0492487
2008/03/30(日) 11:00:37ID:???>>488
言われてみればそうですね。ほぼ正確という言葉が正しかったですね。
フォーラムを作っていてトピックや発言を消せるようにパスワードをつけています。
DBを用いずテキストにログを保存しているため、ログが蓄積するとDBに比べ速度が遅くなります。
少しでも読み込む文字列を少なくするために、保存する時にハッシュ化したパスワードをカットしようと思った次第です。
アルゴリズムはビット長の長いwhirlpoolを使っています。
妥協して安全性には少し難がありますが、ビット長の短いものに変更したいと思います。
0493nobodyさん
2008/03/30(日) 12:48:20ID:???はい、マニュアルどうぞ
http://www.php.net/manual/ja/types.comparisons.php
0494nobodyさん
2008/03/30(日) 18:18:33ID:???スパムを防ぐのにこれを入れておくと、どういう不都合が考えられますか?
0495nobodyさん
2008/03/30(日) 19:14:15ID:pBE7+GD1他のファイルで旧「db_get」を使用しているため、古いのは残したまま、別のPHPでは新しいdb_getを実行したいのです。
なお読み込みは全て共通ファイルで読み込んでいるので、新しいPHPでも古いdb_getは読み込まれています。
やはり新しいほうを別の名前にするしかないでしょうか?
0496nobodyさん
2008/03/30(日) 20:25:54ID:LU6QHGFg伸ばし棒のところで文字化けしてしまいます。
どうしたらいいでしょうか?
0497nobodyさん
2008/03/30(日) 20:30:28ID:???名前空間使えばできるけど現状では無理。
プレフィックスつけるかクラスに閉じ込めるのが現実的かと。
>>496
コード見せて。
0498nobodyさん
2008/03/30(日) 20:37:26ID:LU6QHGFgprivate $ini = "";
public function __construct(){
$this->ini = parse_ini_file("PHPdefine.ini");
}
public function vewheader(){
print $this->ini["bbs_title"];
}
}
↓PHPdefine.ini
bbs_title=アー
0500nobodyさん
2008/03/30(日) 21:46:48ID:???0501nobodyさん
2008/03/30(日) 22:07:04ID:???0502nobodyさん
2008/03/31(月) 00:21:19ID:???降順で読み込む。また、10件以上有る場合は次ページ以降を作ってそちらに読み込む。
こんな感じのことできますか?
0504nobodyさん
2008/03/31(月) 01:00:09ID:???「…ファイル数を確認し、」以降が全くわからん。
・あるディレクトリ内のファイル数を確認したい。
・ファイル名は "連番.inc" にしてある。ファイル名で降順ソートしたい。
・ソート後、ひとつずつファイルを読み込んで1件/1ファイルとして出力したい。
・最大10件/ページになるようにしたい(ので、ファイル数を確認した)。
自分のエスパーカではこれぐらいが限度だ。
0505nobodyさん
2008/03/31(月) 01:13:18ID:???そうですね。書いてても分かりませんでした。
>>504さんのおっしゃるとおりです!ビックリエスパーですorz
連番.incファイルを読み込みたいんです。
その内容はただのtableタグで書かれた表なんですが、データベースとか使えない
サーバーで、それ以前の問題の気もしますが。
・連番の数の大きいほうが、新しいファイルなので降順にしたい
・一つのページに表は10個読み込みたい。
・10個以上ある場合、次のページにいくようにしたい。
以上のことがしたいんだと思います。
0507nobodyさん
2008/03/31(月) 02:25:45ID:???0508nobodyさん
2008/03/31(月) 04:13:28ID:???対話形式、たとえば、ssh でパスワード入力したいんだけど、
良い方法ないでしょうか。
単純に
system("ssh -phogehoge localhost")
としちゃうとパスワードがローカルユーザーに漏れてしまう可能性があるので。
0509495
2008/03/31(月) 08:55:13ID:aabaHexlそうなんですか……
おとなしく接頭語をつけることにします。
ありがとうございました。
0510nobodyさん
2008/03/31(月) 09:47:51ID:???0511nobodyさん
2008/03/31(月) 09:52:46ID:???そういう場合、一般的には expect スクリプトを用意するんだけど、
sshだったらホストベースのRSA認証でログインするのがいいんじゃない?
とはいえ、信用できないユーザがいるホストからスクリプトでログインしたいとはなかなか豪快な話。
0512nobodyさん
2008/03/31(月) 11:20:40ID:zaGfhvtn方法は二つ
・各ファイルの情報を持つ親ファイルを作る。
・ファイル名を工夫する。ハイフォン等を用いてファイル番号と行数をファイル名とする。
0513nobodyさん
2008/03/31(月) 11:40:30ID:???0514nobodyさん
2008/03/31(月) 13:23:58ID:???http://jp.php.net/manual/ja/function.runkit-function-redefine.php
とか使えばできる
ただこれは標準関数じゃないので
peclからインスコが必要
0515nobodyさん
2008/03/31(月) 13:25:46ID:D840Cc+c0518nobodyさん
2008/03/31(月) 13:46:22ID:D840Cc+cparse_ini_fileの場合は連想配列で取得ですよね?
連想配列ではなくて、通常の配列で取得する方法を探しているのですけど
0519nobodyさん
2008/03/31(月) 13:59:27ID:???0521nobodyさん
2008/03/31(月) 14:40:30ID:???ある程度傲慢でもしょうがないんじゃないの。
そんなことに、いちいち突っ込む奴がどうかと・・・
0522nobodyさん
2008/03/31(月) 14:52:28ID:???0525nobodyさん
2008/03/31(月) 15:32:30ID:???■ このスレッドは過去ログ倉庫に格納されています