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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/05/12(土) 16:43:57ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0237nobodyさん2007/05/15(火) 11:55:33ID:???
>>236
出来なかったと思う。
0238nobodyさん2007/05/15(火) 11:57:19ID:b/094Ijk
>>237
サンクス
0239nobodyさん2007/05/15(火) 11:57:29ID:???
>>236
行の幅が固定長ならできるんだがな。
あとはfseekとかで、書き換える行以降のみを変更するってことならできなくもなさそうだ。
0240nobodyさん2007/05/15(火) 12:30:07ID:???
fileでいいじゃん。
富豪プログラミングしようぜ。
0241nobodyさん2007/05/15(火) 12:33:44ID:???
データベースを覚えるともう手放せません
プログラムがすごく簡単になりました
>>236とかdelete一発です
0242nobodyさん2007/05/15(火) 12:36:05ID:i5vBSj25
むやみにDELETEするのはどうかとおもうがな
コスト的にもね
0243nobodyさん2007/05/15(火) 12:36:24ID:???
sage忘れた
0244nobodyさん2007/05/15(火) 12:37:47ID:???
消したい時にdeleteしないで何するんだよ
0245nobodyさん2007/05/15(火) 12:44:13ID:???
DELETE以前に、フラグで処理するかどうか考えるもんだ普通は
0246nobodyさん2007/05/15(火) 12:45:11ID:???
状態カラムでもつけて削除済みのフラグを立てておく。
0247nobodyさん2007/05/15(火) 13:00:36ID:???
>>244

>>245-246が言いたい事言ってくれてるよ。
DELETEをする事によって起こるコストとバグあった時の危険度を考えると
DELETEをむやみに流すってのはどうかと思うんだ
0248nobodyさん2007/05/15(火) 14:08:20ID:b/094Ijk
class&function管理したいのですが、
皆どんなソフトでやってます?

classとfunction増えすぎてファイルがわけわかんなくなってきたwww
0249nobodyさん2007/05/15(火) 14:23:21ID:???
普段はEclipseだけど、客観化するにはphpdocでdocument作るよ
0250nobodyさん2007/05/15(火) 14:25:33ID:b/094Ijk
>>249
サンクス

とりあえずPHPエディタをダウソしてみたところ、
クラスやfunctionが管理できそうなので、
これを使ってみようと思います。
(各クラス、functionにコメントをつけることができればベストなんですが・・・)
0251nobodyさん2007/05/15(火) 14:26:43ID:???
俺はIDEの類は使わずにとことんやってるぜい。
そうすると、わかんなくならないようにするために、設計に力が入るようになる。
0252nobodyさん2007/05/15(火) 14:55:09ID:???
>>248
クラス図でも描いておけば
0253nobodyさん2007/05/15(火) 14:58:04ID:b/094Ijk
>>252
とりあえず

class XXX {
/****************

説明

****************/

}

こんな感じでは書いてる

エディタの左にクラスとメソッドがツリー式に表示されてるんだが、
それにカーソル合わせると、その説明が出るとかだとうれしいなwwww
0254nobodyさん2007/05/15(火) 15:12:55ID:???
>>248
ctags使えばエディタによっては一発ジャンプしてくれる
0255虚弱PHP2007/05/15(火) 16:03:06ID:???
>>253
アウトラインの見出し定義を編集できるようなエディタなら、
似たようなことは出来るよ。
0256nobodyさん2007/05/15(火) 16:17:09ID:7hthTDm5
magic_quot_gpc以外で自動的にエスケープする設定ってありますか?
何もしてないのに、<や>がエスケープされる・・・。なぜ?
0257nobodyさん2007/05/15(火) 16:22:05ID:???
<>とマジック・クオートは全然関係ないだろ。勘違い
0258nobodyさん2007/05/15(火) 16:37:28ID:6TG+QTaB
eregi()を使ってフォームで入力された単語の中で半角記号がある場合
はじくスクリプトを書いてるのですが$をはじく
if(eregi("$",$keyword)){
return false;
}else{
return true;
}
と\をはじく
if(eregi("\\",$keyword)){
return false;
}else{
return true;
}
だけが正しく機能してくれません。

正規表現などでググったのですが、これらを認識させる方法を
明記されてるところが無くほとほと困ってます。

osはfreeBSD、phpのバージョンは4.4.6です(レンタルサーバ)
0259nobodyさん2007/05/15(火) 16:53:49ID:???
>>258
マルチすんじゃねえボケ。あっちで答えたから見ておけ
0260nobodyさん2007/05/15(火) 16:54:35ID:???
$はエスケープしろ。
エスケープ特殊文字であるバックスラッシュは、エスケープのエスケープしろ。
\\\\じゃないとなぜ駄目なのかを考えてみよう。

なお「半角文字」なんていう言葉は変だから使うの辞めようね。
0261nobodyさん2007/05/15(火) 16:58:51ID:???
>>259
別にマルチじゃねーだろが。ぼけ。こっちが本スレだから書き直しただけだろ。
0262nobodyさん2007/05/15(火) 17:01:05ID:???
>>261
向こうに書いてこっちに書き直すなら
向こうにそう言ってからこっちに書かないとマルチ
02632582007/05/15(火) 17:22:25ID:6TG+QTaB
すいません、一度このスレに書いた後でレスが反映されなかったので
落ちてるのかと思い、再度「php 質問」で2ch内検索しなおして出てきた
あちらのスレに書きなおしたつもりだったのですがマルチになってたようですね。

ちなみに>>261は赤の他人です、気分を悪くする流れにしてしまい申し訳ありませんでした。

>>260 \$で試してみたところ、やはりうまくいきませんでした。
ちなみに、$が入っていようが無かろうが
if(eregi("\$",$keyword)){
return false;
}
のところで必ず引っかかりfalseを返してしまうようです。
0264nobodyさん2007/05/15(火) 17:23:27ID:???
>>263
\\を\\\\にしないといけないってことは
\$なら\\$にしないといけないよね
0265nobodyさん2007/05/15(火) 17:26:27ID:???
if(eregi("\\$",$keyword)){
return false;
}

メタ文字エスケープする時に\$とか\\とかじゃだめだってばさ。
0266nobodyさん2007/05/15(火) 17:31:26ID:???
いろいろ試してみたり \\\\ について理解を深めるのは良いことだと思うんだけど
要件的に正規表現を使わなくてもよさそうな気がする。
0267nobodyさん2007/05/15(火) 17:31:34ID:6TG+QTaB
>>264
今試してみたところうまくいきました。

\\\\じゃ無いとダメなのかはもう少し詳しく調べてみようと思います。
くだらない質問を光の速さで回答していただきありがとうございました。

あと、半角文字という言葉の使用は以後注意して使わないようにもします。
ありがとうございました。
02682582007/05/15(火) 17:35:25ID:6TG+QTaB
>>267 の名前欄にレス番号記入するのを忘れていました。
色々ミスってスイマセンでした、訂正しておきます。

>>266 ほかにも色々ある正規表現のテストと
ゆくゆくは[a-z]なども使う事があるかと思い
試している途中で詰まった事なのです。
0269nobodyさん2007/05/15(火) 18:14:44ID:???
return strpos($keyword,'\\') === false ? true : false;
0270nobodyさん2007/05/15(火) 18:15:41ID:???
まあそれが美しいよね
02712582007/05/15(火) 18:32:31ID:AwqtLTCz
>>269 あまりにも美しすぎて、もう少し勉強しないと
なにがどう書かれているのか理解する事もできませんでした。

PHPも中々置くが深いんですね、>>269が理解できるよう
さらに深く学んで生きたいと思います。ありがとうございます。
0272nobodyさん2007/05/15(火) 18:42:17ID:???
何でもかんでも一行で書けばいいってもんじゃない。
0273nobodyさん2007/05/15(火) 18:56:42ID:???
なんで回答後ってこういう慇懃無礼とも思える気持ち悪い表現が多いんだろう
0274nobodyさん2007/05/15(火) 19:00:24ID:???
あんたなんでもかんでも肯定されないといやなんですか?
だったらやめたほうがいいよ
0275nobodyさん2007/05/15(火) 19:37:30ID:???
確かに現役PGの視点からいえば、
可読性がない自己満足な書き方をするのは誉められたものじゃない。
0276nobodyさん2007/05/15(火) 19:54:26ID:???
それは正論だが、論理値リテラルを返すだけの三項演算子で可読性云々言い出す奴はいわゆるキチガイ。
0277nobodyさん2007/05/15(火) 20:49:07ID:Fy2AtB8k
再利用可能にするために気をつけてることってありますか?
0278nobodyさん2007/05/15(火) 21:28:28ID:???
PHP以外の言語をたくさん学ぶこと。
0279nobodyさん2007/05/15(火) 21:52:35ID:???
>>276
だと俺も思う。
一行プログラムがポイントではなくて、
strposの返り値を理解して、三項演算子でFALSEチェックするというのは正統派じゃん。
0280nobodyさん2007/05/15(火) 22:04:24ID:???
三項演算子使う奴は趣味だろ、わるかったね仕事で使わないもので
0281nobodyさん2007/05/15(火) 22:06:33ID:FHaxfx0y
dbのコネクションや問い合わせ結果等のリソースは、
変数間でコピーしても必ず参照としてコピーされますか?
丸々コピーされてメモリ大量消費されたりしませんか?
0282nobodyさん2007/05/15(火) 22:10:02ID:???
>>280
まあお好みだけど、そのヒネクレ口調だけはやめたほうがいいな。
仕事で嫌われるよ。能力ないのに嫌われたら困るだろお前も
0283nobodyさん2007/05/15(火) 22:26:46ID:???
>>281
DBコネクションのリソースってそんなに多大な情報持ってんのか?
0284nobodyさん2007/05/15(火) 22:38:40ID:UJ71PYY7
>>281
ほとんどの場合は接続IDだからコピーされても
無視できるだろう

ただし、pear::DB とか PDO のインターフェースは
結構でかい
0285nobodyさん2007/05/15(火) 22:40:43ID:???
>>281
普通にやれば、丸々コピーだろ
sqlの実行結果なんかは、状況によってはボトルネックに
なるかもね
0286nobodyさん2007/05/15(火) 22:43:22ID:???
>>284と>>285で議論を戦わせてください。他の人は口出ししないで><
0287nobodyさん2007/05/15(火) 22:47:12ID:???
たんじぇんと、こさいん、氏ね>>286
0288nobodyさん2007/05/15(火) 22:52:10ID:GtGfJ8qN
DBから出勤時間と退勤時間を出して勤務時間をはじきたいですが、
さくっとかっこいいやり方ってありますか?
0289nobodyさん2007/05/15(火) 22:56:21ID:???
退勤時間 - 出勤時間
0290nobodyさん2007/05/15(火) 23:00:29ID:???
>>288
select name,phone from shain where shain_id = 'foo';
call phone;
get appointment;

if(define('appointment') && appointment == TRUE )
{
return 'SUCCESS';
} else {
return FALSE;
}
0291nobodyさん2007/05/16(水) 00:39:57ID:???
>>289
休み時間は?
仮に休み時間が1時間としても、
退出時間−出勤時間−1
としてはいけない。半休とか使う場合があるからだ。
だから単純な方法は無い。
0292nobodyさん2007/05/16(水) 00:53:26ID:???
退勤時間 - 出勤時間(if 休憩がXXだったら〜〜〜)

0293nobodyさん2007/05/16(水) 01:06:54ID:???
>>280
世界中の職場が三項演算子を禁止してるとでも?
うちで禁止するのは新人と糞派遣に投げる時ぐらいだな。
0294nobodyさん2007/05/16(水) 01:12:08ID:???
>>291
じゃその就業規則をルール化しろよ
0295nobodyさん2007/05/16(水) 01:16:31ID:???
プライド高いだけの奴が沸いてきた
0296nobodyさん2007/05/16(水) 01:17:33ID:???
プライド高い「だけ」の奴ね
          ^^^^^^^^
0297nobodyさん2007/05/16(水) 01:28:05ID:PGjb3KVb
すいません、登録制のサイトで登録者の情報を管理者と登録者本人だけに表示を許可したい場合はどうすれば良いんでしょうか?
(管理者以外の他の登録者からは見えないようにしたい)
ちなみに、管理者を$site_admin、 登録者本人を$user_owninfoとして、
管理者のみだと、
<{if $site_admin == true}>
中身
<{/if}>
で上手く行くんですが、そこに登録者本人をプラスして、
<{if $site_admin == true && $user_owninfo == true}>
中身 
<{/if}>
としてみると結局$site_admin == trueの部分しか機能していません。
どうかお知恵をお貸しください。
0298nobodyさん2007/05/16(水) 01:29:45ID:???
Smarty使う前にandとorくらい知っておいたほうがいいんじゃないかね
0299nobodyさん2007/05/16(水) 01:30:02ID:???
IDかPASS制だったらDBでIDとPASS検索して一致しなければLocationで飛ばせばいいんじゃね?
0300nobodyさん2007/05/16(水) 02:12:16ID:???
もうBasic認証でいいじゃん、pearの認証つかえばいいじゃん
0301nobodyさん2007/05/16(水) 02:33:19ID:ceM6XUKn
オリジナルのclassを集めたやつ「class.inc」を暗号化した場合、
読み込むときに複合化しなきゃダメなのかな?

知り合いに自分の作ったやつあげるときに、そのclass.incの中身見られたくないのよ
03022972007/05/16(水) 02:33:43ID:PGjb3KVb
&&じゃなくて||でしたね。
単純な間違いでした。
お騒がせしました。
0303nobodyさん2007/05/16(水) 02:34:46ID:QKxTyLUD
質問です。
mysqliの関数を実行する時に、
prepareステートメントとか bind_param()とか execute()を使う場合と
使わない場合で、どのような違いがあるんですか?
こんな場合は使ったほうがいい、ってのありますか?
参考にしている本を見ると、リストDBに「人名」「自己紹介」「HPのurl」を
追加するのに使っていますが、この程度なら普通にやっても同じでは?
という気がします
0304nobodyさん2007/05/16(水) 02:40:07ID:???
>>301
PHPスクリプトを暗号化するソフトなら安いので1万円出してお釣がきますので探してください。
あとは高いのでZendにもでてますよ
0305nobodyさん2007/05/16(水) 02:42:10ID:ceM6XUKn
>>304
サンクス
無料で何かあるかと思ってた俺哀れorz

PHPって実行時にコンパイルするけど、
あらかじめコンパイルしておけば実行するとき早くね?wwwww
0306nobodyさん2007/05/16(水) 02:47:49ID:???
何秒くらい?
0307nobodyさん2007/05/16(水) 02:49:27ID:ceM6XUKn
>>306
いや、そっちのほうが早いかなって思っただけ
0308nobodyさん2007/05/16(水) 02:51:22ID:???
>>303
端的に言えば異なるパラメータを用いて複数回実行するようなSQL文で使うとパフォーマンスがあがるってところかな。(キャッシュが働く
あとはパラメータの自動クォートでユーザー入力からのSQLインジェクション対策とか。
具体的にはID指定して何度もSELECTする様なのとか、ユーザー入力を条件に使うSELECTとか、INSERT全般とか。
0309nobodyさん2007/05/16(水) 03:04:26ID:???
>>305
コンパイラによる。おれデメリットの方がイヤだから使ってないけど
0310nobodyさん2007/05/16(水) 03:26:08ID:???
>>308
ありがとうございます
アドバイスを読んでると、かなりありがたい機能ですね
じゃ、もうprepareステートメントを使うやり方を徹底しても問題ないですかね。
普通のやり方のほうがかえって好都合ってのはないですよね?
0311nobodyさん2007/05/16(水) 03:33:40ID:???
そんなに使いたきゃ使えよ
0312nobodyさん2007/05/16(水) 03:41:22ID:???
>>310
使わなくてもいいとこでも使うと無駄にステートメントを保持することになる、かな…。
0313nobodyさん2007/05/16(水) 04:16:02ID:???
$calc = 1.23456789 * 9.87654321;
for ($i = 1; $i <= 100; $i++) {
echo $calc;
}

こうやった場合って、100回計算が実行されるのか、
すでに計算が終わったものを100回出力しているのか、
どちらなのでしょうか?
0314nobodyさん2007/05/16(水) 04:17:25ID:???
ほへ?
03153132007/05/16(水) 04:19:56ID:9TTx9/gy
すみません。age忘れました。
0316nobodyさん2007/05/16(水) 04:22:59ID:???
>>315
ふほ?
http://www.php.net/manual/ja/language.expressions.php
0317nobodyさん2007/05/16(水) 04:23:42ID:???
百回、変数に入った値が出力されるだけ
0318nobodyさん2007/05/16(水) 04:26:26ID:???
php4とphp5のクラスの参照渡しをあいまいに頭にいれてるからこんな質問したくなったんだろ
03193132007/05/16(水) 04:27:47ID:9TTx9/gy
>>314 >>316
すみません。日本語がおかしかったです・・・

>>317
どうもエスパーな質問にお答えいただきありがとうございます。
ということは100回計算してベンチをとるといったことをするには、
別の書き方をしないとならないわけですね。
0320nobodyさん2007/05/16(水) 04:32:04ID:???
>>319
forの中で計算させるだけじゃ?
つかリンク先読めよ。まずそこから必要だ。
0321nobodyさん2007/05/16(水) 04:55:24ID:???
大丈夫か?変数に入ってる値は計算されたあとの値だぞ
03223132007/05/16(水) 07:12:33ID:9TTx9/gy
>>320-321
レスありがとうございます。

>大丈夫か?変数に入ってる値は計算されたあとの値だぞ

常識といわれるかもしれませんが、
こういうことは今まであまり意識したことがなかったので、
基礎プログラム力に欠けてるのかもしれません。
サンプルいじりながら勉強したのがまずかったかなぁorz

いろいろ基礎から勉強しなおしたいと思います。
0323nobodyさん2007/05/16(水) 07:20:17ID:???
>>1-2,4氏ね
0324nobodyさん2007/05/16(水) 07:40:47ID:???
>>285
これ嘘だよね?
$result = mysql_query('select * from table');
$result1 = $result;
ってやってもid受け渡しされるだけでしょ
こんなので丸々コピーされてたらえらいことになる
0325nobodyさん2007/05/16(水) 08:02:38ID:???
※ここは初心者の憩いの場所です
※たまには質問者も回答者になりたいんです
※長い目で見てやってください

^ o^
0326nobodyさん2007/05/16(水) 08:53:56ID:ygtreCsO
if((!関数名)) { 〜処理内容〜 }

のように、関数名に!をつけてfalseを得たいのですが
この書き方が通用しない関数はありますか?
0327nobodyさん2007/05/16(水) 09:14:03ID:???
>>326
無いんじゃない?

>>322
誰だって初めは分からんよ。
プログラム力がある人って何だ。生まれたときからプログラムの仕組みについて把握してる人のことかよ。
皆本やらWebサイトで地道に学んできたんだよ。
ぐちぐち言ってないでいいからリンク先のPHPマニュアルでいいから読めよ。んで理解するよう努力しろ。
意味不明な言い訳してそれすら避けてる奴こそ軽蔑に値するわ。
0328nobodyさん2007/05/16(水) 09:20:33ID:???
javaの参考書5冊ぐらいまとめ買いして最初の一本の3ページであきて
Cの入門書かって1ページであきて

そんなおれだけどPHPの公式マニュアルの関数一覧以外のページは一通り通した。
おれにできたことは>>322にもできるよ
0329nobodyさん2007/05/16(水) 10:31:07ID:s+XLyY4I
スクリプト中で
自分自身のURLを取得するにはどうすればいいですか?
0330nobodyさん2007/05/16(水) 10:34:24ID:???
>>329
print_r($_SERVER);をして探してごらん。
0331nobodyさん2007/05/16(水) 10:34:43ID:???
$_SERVER["REQUEST_URI"]
0332nobodyさん2007/05/16(水) 10:42:41ID:???
>>330-331
ありがとうございます
情報がかなり細切れにされていますが
絶対URLは、これらの値を組み合わせて作るしかないですか?
あとhttpかhttpsかの情報が入ってないようですが
どうすれば分かるのでしょうか
0333nobodyさん2007/05/16(水) 10:55:35ID:???
組み合わせで作ります、プロトコルも_SERVERに入ってます
あとID消さないように
0334nobodyさん2007/05/16(水) 11:22:37ID:s+XLyY4I
>>333
SERVER_PROTOCOLというのがありました
ありがとうございました
0335nobodyさん2007/05/16(水) 11:22:39ID:wGr5bjeW
今ホームページを作成しているんですが、
完全に行き詰まってしまったので書き込みさせていただきます

フォームに入力した項目をメールとFAXで受信したいのですが
メールでの受信までは確認できたのですが
FAXでの受信方法が今ひとつわかりません

検索したのですが何やらソフトが必要みたく
それもいっぱいあってどれを使ったらできるのかが
わかりません。

どなたか分かるかたいらっしゃるでしょうか??

ちなにみOSはXPです。
0336nobodyさん2007/05/16(水) 12:12:14ID:wGr5bjeW
今ホームページを作成しているんですが、
完全に行き詰まってしまったので書き込みさせていただきます

フォームに入力した項目をメールとFAXで受信したいのですが
メールでの受信までは確認できたのですが
FAXでの受信方法が今ひとつわかりません

検索したのですが何やらソフトが必要みたく
それもいっぱいあってどれを使ったらできるのかが
わかりません。

どなたか分かるかたいらっしゃるでしょうか??
■ このスレッドは過去ログ倉庫に格納されています