トップページ⇒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カテゴリ)の各スレで
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での受信方法が今ひとつわかりません

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

どなたか分かるかたいらっしゃるでしょうか??
0337nobodyさん2007/05/16(水) 12:21:08ID:???
なんで2回いったん?
0338nobodyさん2007/05/16(水) 12:24:48ID:???
3回だったりして
http://pc11.2ch.net/test/read.cgi/hp/1178272099/384
0339nobodyさん2007/05/16(水) 12:25:00ID:???
>>337
マルチだからちょっと文章を変えてみたんじゃね
0340nobodyさん2007/05/16(水) 12:30:22ID:???
FAXの受信なんてモデム経由でG3FAX形式の奴を受け取るだけだろ。
一体PHPとなんの関係があるのか問い質したい。
0341nobodyさん2007/05/16(水) 13:25:20ID:???
>>336
いっぱいあるのなら、どれでも良いじゃないか
フリーのやつだってあるんだから、試してみろ

GUIで文章を設定するようなやつは除外だぞ
0342nobodyさん2007/05/16(水) 13:42:54ID:???
>>333
嘘教えるなってば。SERVER_PROTOCOLなんかhttps/http判別と無関係。
0343nobodyさん2007/05/16(水) 15:25:20ID:qm+GGeYH
>>338-339
http://pc11.2ch.net/test/read.cgi/php/1169725490/417

制作板でも同じようなの見た希ガス
0344nobodyさん2007/05/16(水) 15:52:54ID:???
>>342
誰もそんな嘘教えてないってば。
0345nobodyさん2007/05/16(水) 16:13:23ID:???
>>344
ふーん。じゃあ$_SEVERから「プロトコル」抽出してごらん。
0346nobodyさん2007/05/16(水) 16:18:51ID:???
>>345
http://jp.php.net/manual/ja/reserved.variables.php#reserved.variables.server
マニュアル嫁。
あと質問したいならID出せ。
0347nobodyさん2007/05/16(水) 17:03:32ID:???
>>346
マニュアルも糞もないだろ。httpsは結局後付のport番号で判定するしかない。
_SERVER変数にわたる「プロトコール」は、HTTP over SSLでしかない。つまりはHTTPであって
httpsではないんだよ。わかるか?
0348nobodyさん2007/05/16(水) 17:06:12ID:???
>>347
> 'HTTPS'
> スクリプトが HTTPS プロトコルを通じて実行されている場合に 空でない値が設定されます。
>
> ISAPI を IIS で使用している場合は、HTTPS プロトコルを通さないでリクエストが行われたときの値は off となることに注意しましょう。
0349nobodyさん2007/05/16(水) 17:08:28ID:???
便乗質問する奴ってろくでもない初心者ばっかだな。
0350nobodyさん2007/05/16(水) 17:27:05ID:???
結局言いたい放題言っただけだったな。
これだからマニュアルは読んどかないと。
0351nobodyさん2007/05/16(水) 18:42:59ID:???
いやいやマニュアルは読むのがあたりまえです^^;
0352nobodyさん2007/05/16(水) 20:41:26ID:xTzSxSz1
「\nが入っていたら取り除く」という関数を作りたいんだが、
strstrとかで検索してやるほかになんかありますか?
03533522007/05/16(水) 20:42:48ID:xTzSxSz1
ごめん、「文末に」\nが入っていたら取り除く、関数です。
0354nobodyさん2007/05/16(水) 20:49:05ID:???
rtrim() とか [ep]reg_replace() とか
0355nobodyさん2007/05/16(水) 20:56:14ID:???
chopでいいじゃん
03563522007/05/16(水) 20:59:27ID:xTzSxSz1
>>354 rtrimやchopだとspaceも消えるので、そうしないためには
正規表現系で処理するしかない?
0357nobodyさん2007/05/16(水) 21:03:04ID:???
$と¥nつかったパターンで置換
03583522007/05/16(水) 21:06:25ID:xTzSxSz1
/\\n$/ これでおk?
0359nobodyさん2007/05/16(水) 21:12:20ID:???
動くか動かないか試してから質問してるんだろうな
03603522007/05/16(水) 21:16:13ID:xTzSxSz1
>>359
ごめん結局rtrimでいいような設計に作り直したので質問終了で。
0361nobodyさん2007/05/16(水) 21:30:59ID:???
rtrim($str, "\n");
03623522007/05/16(水) 21:33:13ID:xTzSxSz1
>>361 ありがとうございました。
0363nobodyさん2007/05/16(水) 21:55:32ID:c3gVMJYw
PHPでペッパーランチを追い込むにはどうしたらいいですか?
0364nobodyさん2007/05/16(水) 22:00:20ID:???
>>363
大阪の店長逮捕されて大変そうだからそっとしてやれ。
0365nobodyさん2007/05/16(水) 22:01:19ID:???
被害者への配慮が最優先だろが
ペッパーランチは全店臨時休業するべき
0366nobodyさん2007/05/16(水) 22:16:15ID:QKxTyLUD
すみません、質問させてください。 winXP apache2 php5で作業してます。
以下のスクリプトをshowList($cid)に適当な引数をつけて実行してるんですが、
DBに登録してあるデータが print_r($ctgAry)."<br><br>"; print "<br><br>".$ctgAry[0];
ともに帰ってきません。 $ctgAry は対応データ数分の要素を持つ連想配列には
なっているんですが、値が格納されてません。 なぜでしょう? どなたかお願いします。
<?php
class Category{
private $_cid; private $_cname; private $_img;
public function getCid(){return $this->_cid;}
public function getCname(){return $this->_cname;}
public function getImg(){return $this->_img;}
public function setCid($cid){$_cid = $cid;}
public function setCname($cname){$_cname = $cname;}
public function setImg($img){$_img = $img;}

//$cidをparentにもつ(子)カテゴリの一覧を表示
public static function showList($cid){
$ctgAry = array();
$db = new mysqli("localhost","root","pass","php5");
$rs = $db->query("select * from src_category where parent=".$cid);
while(($row = $rs->fetch_array(MYSQLI_ASSOC)) != FALSE){
$ctgObj = new Category;
$ctgObj -> setCid($row['cid']);
$ctgObj -> setCname($row['cname']);
$ctgObj -> setImg($row['img']);
$ctgAry[] = $ctgObj;
}
$db->close;
print_r($ctgAry)."<br><br>";//�@
print "<br><br>".$ctgAry[0];//�A
}
}
■ このスレッドは過去ログ倉庫に格納されています