- 1 名前:● mailto:sage [2009/10/11(日) 21:18:54 ID:???]
- 質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り 次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 ◆前スレ 【PHP】下らねぇ質問はID出して書き込みやがれ 88 pc11.2ch.net/test/read.cgi/php/1253061577/ ◆質問用テンプレ 【OS名】vine linux 【PHPのバージョン】php5.26 【連携ソフトウェア】mysql 【質問内容】 ◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す) ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 (PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。) ◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。 【その他諸注意】 ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
- 755 名前:751 mailto:sage [2009/11/02(月) 19:01:23 ID:???]
- >>253
ありがとう。
- 756 名前:nobodyさん [2009/11/03(火) 00:57:00 ID:OxH3Rb8V]
- 質問です、
PHPの言語仕様として確認したいのですが、 1リクエストごとにstaticメソッドであろうが毎回PHPのリソースをメモリに読み込んで、 レスポンスを返した時点でメモリ破棄する。 そのため、複数のリクエスト間での共有ができず、たとえばDBのコネクションプール などという考え方は基本ない。であっていますか?
- 757 名前:nobodyさん mailto:sage [2009/11/03(火) 02:25:30 ID:???]
- 言語仕様(標準ライブラリ)の範疇で言えば、そう。
たいていの言語は、別々に起動された、親子関係 でないプロセス間でソケットを共有する方法は、 言語仕様にはないと思う。
- 758 名前:nobodyさん mailto:sage [2009/11/03(火) 05:32:26 ID:???]
- 関係ない質問してごめん。
SpeedyCGIみたいな常駐プログラムを使ったらDBコネクション繋ぎっぱなしできるよね? それをphpから呼び出したら、プログラム呼び出しののオーバーヘッドとDB接続のオーバーヘッド天秤にしても常駐の方が早い希ガスだけどどうなの? あと、phpでSpeedyCGIみたいシステムないの?
- 759 名前:nobodyさん mailto:sage [2009/11/03(火) 10:19:58 ID:???]
- DBコネクションプールといえばpgpoolとかあるけど。
MySQLならSQLrelayとか。
- 760 名前:nobodyさん mailto:sage [2009/11/03(火) 10:39:36 ID:???]
- phpはモジュールで動かしてる場合が多いから・・・
- 761 名前:nobodyさん [2009/11/03(火) 21:21:41 ID:ppv8Lxeq]
- ちょっと質問。
wikipediaで携帯のIPアドレス一覧があって、それを元にアクセスした人のIPが携帯なら携帯用のページに飛ばすのをPHPで以前に作ったんだけど 知らない間に携帯用のIPアドレスが増えてるみたいで、修正しようかと思うんだけど、結局イタチごっこだから シンプルにユーザーエージェントで分別しようかと思うけどそれだとPCで偽装もできるので ちゃんと的確に分けられる方法教えて。
- 762 名前:nobodyさん mailto:sage [2009/11/03(火) 21:23:10 ID:???]
- 携帯依存文字でYES・NOでもやってろ
- 763 名前:nobodyさん mailto:sage [2009/11/03(火) 21:34:29 ID:???]
- わざわざUA偽装してアクセスするのは携帯用ページが見たいからでしょ
だから普通にUAで振り分ければいいとおもうが
- 764 名前:nobodyさん mailto:sage [2009/11/03(火) 21:38:57 ID:???]
- >>761
ケイタイ用のIPを常に更新して、IPでキャリアを判別するサイトのサービスを始めるのだ!
- 765 名前:nobodyさん [2009/11/03(火) 23:00:04 ID:Hf2P9qWB]
- phpのApacheの設定が全くできません!Vistaです。本に書いてある通りにしても、ブラウザに乗せるとダウンロードダイアログが出ます
助けてください
- 766 名前:nobodyさん [2009/11/03(火) 23:08:14 ID:ppv8Lxeq]
- 確かに携帯用のページが見たくて偽装するんだろうし、別に携帯用ページをPCで見られて困ることはないよ。
だけど、UAの文字列の一部で携帯かPCかを判断すると、今後携帯キャリアがUAの仕様を変えた時に、 携帯だかPCだか判断できずに、携帯なのにPC用ページを表示してサイズでかすぎて表示できないとかだと最悪でしょ。 妥協してユーザーエージェントでやるとするといくつあるの? ドコモ、au、ソフトバンク、ボーダフォン、J-PHONE、あと何? ウィルコムとかイーモバイルとかも固有のUAあるの?ディズニーモバイルは?あとiフォンもある?
- 767 名前:nobodyさん mailto:sage [2009/11/03(火) 23:42:05 ID:???]
- 俺はIPでやってるけど、ホスト名でもいいんじゃないの振り分け
- 768 名前:nobodyさん mailto:sage [2009/11/03(火) 23:44:16 ID:???]
- PEAR::Net_UserAgent_Mobileは?
- 769 名前:nobodyさん mailto:sage [2009/11/04(水) 04:13:04 ID:???]
- >>759
トンクス。 でも SQLRelay いれたら遅くなったって意見が多くてちょっとガッカリ
- 770 名前:679 mailto:sage [2009/11/04(水) 09:18:30 ID:???]
- 規制ががが
>>720 ・・・申し訳ない。 以前あったレスからJavascriptは使わないと決めて 元々記述したJsコードを全部削除してPHPに実装しなおしていましたが 報告忘れてました >>721 A1とかA2とかは、それぞれupdateでsetする内容が違うだけ。 むしろコレなら変数で勝手に変わる様にしたほうがいいのかもしれないですが・・。 >>722 一応削除はしてます。 >>723 諦めたらそこで終わりじゃないですか?? >>724 はい。実はJavaはやっていたのですが どうもHTMLやらJavascriptやらPHPやらとくると・・どうにも
- 771 名前:679 mailto:sage [2009/11/04(水) 09:19:55 ID:???]
- >>726
まだまだ若いですよ。上司には当然教えてくださる方もいないので独学になりますが。 いかんせん会社が大きく無いのでしょうがないです。 >>727 本・・ですねえ。 でも今月はCiscoの本やらいっぱい買ってしもたorz 経費で落ちそうなら考えてみます。 今のところ一応Formタグを追加し、typeをSubmitにして飛ばすようにしてます。 次のphpでname属性から拾ってきたものを取り上げ、PHP側のif分岐等でのマッチング査定をしつつ その先で上書き処理、という流れで、やっていくつもりです。
- 772 名前:nobodyさん mailto:sage [2009/11/04(水) 09:50:46 ID:???]
- >>765
それ、Apacheの問題であってPHPのじゃないじゃん。 <httpd.conf> AddType application/x-httpd-php .php PHPIniDir [PHP.iniのあるディレクトリ] LoadModule php5_module [php?apache*.dllへのフルパス] 書いたらApacheの再起動。
- 773 名前:nobodyさん [2009/11/04(水) 13:15:10 ID:+cyJ/kJv]
- あのさぁ、まずはちょっと聞いてくれ。
ドキュメントルート(サイトのルート)の中の一つのフォルダを完全にPHP使えないようにしたい。 そうしないとそこがアップロード用のファイル保存フォルダになっているので PHPのファイルをアップされブラウザでファイルをアクセスされると危険。unlink()とかされたら完全に終わる。 かと言ってアップ時に、拡張子が.phpのファイルをはじくとかだとそれも困るし、そのファイルの内容をチェックするのも大変。 .htaccessファイルに、拡張子.phpは.htmlとするように書いてもいいけど.php5とかPHPとして動く拡張子が他にもあるから対処しきれない。 で、特定のフォルダにだけPHPを使わせない機能ないの? もしくはアパッチでドキュメントルート以外のフォルダを作り、 C:/root_A(PHP可能) C:/root_B(PHP不可) として http://ドメイン/root_B以下にアクセスがあった時はC:/root_B/index.htmlを表示させるとかできないかな? バーチャルホストじゃなくドメイン同じで二つのルートを使い分けるって事。
- 774 名前:nobodyさん [2009/11/04(水) 13:18:32 ID:+cyJ/kJv]
- 今書いててふと疑問に思ったんだけど、レンタルサーバーって複数の人が使ってて
同じドライブに複数の人のルートがあると思うけど他人のファイルをunlink()したりできないのは何で?
- 775 名前:nobodyさん mailto:sage [2009/11/04(水) 13:22:13 ID:???]
- FOR($i=0;;$i++){
PRINT 'マンコ'; } 初めて作ったプログラムがこれ。
- 776 名前:nobodyさん mailto:sage [2009/11/04(水) 13:26:07 ID:???]
- >>773
apacheのDirectory設定でできるよ
- 777 名前:nobodyさん mailto:sage [2009/11/04(水) 13:31:39 ID:???]
- >>774
一つはパーミッション。 削除権限はそのファイルが含まれているディレクトリのパーミッションによるが 777とかしてたら消せる。 でもphpだと全ユーザーが同じ実行ユーザーになる場合もあるので phpのSafeModeを使う。 これは、実行ファイルのオーナー(実行時のユーザーではない)が 他のオーナーのファイルをいじれなくする仕組み。
- 778 名前:nobodyさん [2009/11/04(水) 16:27:43 ID:+cyJ/kJv]
- >>776-777
ありがとう。ちょっとググってみるよ。
- 779 名前:nobodyさん mailto:sage [2009/11/04(水) 17:03:15 ID:???]
- そういや、拡張子で制御は把握しきれないから・・・とか書いてるけど
基本的にhttpdは拡張子で実行するか決めてるんだから 拡張子で制限すればいいはずだよ。
- 780 名前:nobodyさん mailto:sage [2009/11/04(水) 17:37:09 ID:???]
- >>773
phpファイルはアップロード禁止にしたらいいんじゃない? どうしてもアップロードしたい場合はZIPって手もあるし
- 781 名前:nobodyさん mailto:sage [2009/11/04(水) 18:05:34 ID:???]
- >>773
Options -ExecCGI -Includes -MultiViews php_flag engine off こんな感じで.htaccessを設定したらCGIとPHPは動かなくなるはず
- 782 名前:nobodyさん [2009/11/05(木) 02:39:02 ID:bdU2dbgu]
- example.com/ref/abc
というURLでアクセスしたら example.com/ref/index.php?id=abc の結果を返すにはどうしたらいいですか?
- 783 名前:nobodyさん mailto:sage [2009/11/05(木) 02:43:08 ID:???]
- mod_rewrite
- 784 名前:nobodyさん [2009/11/05(木) 02:56:01 ID:bdU2dbgu]
- >>783
ありがとう
- 785 名前:nobodyさん mailto:sage [2009/11/05(木) 09:23:02 ID:???]
- FOR($i=0;;$i++){
PRINT 'パイズリ'; BREAK; } 二番目に作ったプログラムがこれ。
- 786 名前:nobodyさん mailto:sage [2009/11/05(木) 10:17:21 ID:???]
- for ($i = 0; i <= 10000; $i++) {
print "まんこ\n"; } print 'な? 9999の次でも1に戻るってことは無いだろ?';
- 787 名前:nobodyさん mailto:sage [2009/11/05(木) 10:31:55 ID:???]
- あたまおかしい
- 788 名前:nobodyさん mailto:sage [2009/11/05(木) 12:50:44 ID:???]
- やっぱり大量規制でいいや。
- 789 名前:nobodyさん mailto:sage [2009/11/05(木) 13:16:33 ID:???]
- てst
- 790 名前:nobodyさん [2009/11/05(木) 15:22:19 ID:17l6YWCO]
- ユーザー関数は、あちこちのページで使い回すから当然別のファイルにして、その都度インクルードとかするでしょ。
index1.php ↑インクルード user_func.txt ↓インクルード index2.php でもこうなるとindex1.phpにアクセスするということはuser_func.txtにもアクセスする事になるので、鯖に負担がかかる。呼び込むファイルが増えればなおさら。 負荷を無くすにはどうしたらいいでしょうか? 個人的にできたらいいなと思うのは、この様な自作関数もメモリ上に置けるようにしてほしい。 最初に鯖を立ち上げた時に読み込んで後は元々ある関数みたいに使いたい。
- 791 名前:nobodyさん mailto:sage [2009/11/05(木) 15:33:59 ID:???]
- >>790
実際、どの程度の負荷がかかってるのさ? 一度user_func.txtが読み込まれれば、2回目からはメモリを見に行くから気にしなくて良いレベルだと思うぞ。
- 792 名前:nobodyさん [2009/11/05(木) 16:22:18 ID:17l6YWCO]
- >>791
えっ?そうなの?って事はindex.phpとかも一回読まれたらメモリ見るの? 知らなかった。どの位の負荷がかかってるかはどうやって調べたらいい? 最近サイトを開くと重いんだよね。特に夜。LAN内のPCからでも遅いから回線が原因じゃないかと思うんだけど HDDがあれこれファイルを読んだりして追いついていけないのかもって思って。 CPU仕様率は結構低いんだけど。LANもギガビットLANだし、原因がHDDとしか思えないんです。
- 793 名前:nobodyさん mailto:sage [2009/11/05(木) 16:39:49 ID:???]
- >>792
気になるならdataスキーム形式にして埋め込めばいいよ
- 794 名前:nobodyさん mailto:sage [2009/11/05(木) 16:55:33 ID:???]
- >>792
普通は一度ファイルを読み込めば、次回はメモリを参照する。 readで毎回必ずHDDを読んでいたら大変な事になるよ。 CPU使用率がわかってて、DISK周りの負荷は調べてない? Linuxならiostatとかで見て見なよ、sarが入ってればそれでもいいし。
- 795 名前:nobodyさん mailto:sage [2009/11/05(木) 16:59:36 ID:???]
- >>792
ギガビットは過信しないほうがいい LANカードやHUBがしょぼかったら無意味 転送量が少なくても一度に大量の接続があれば捌ききれなくなる。
- 796 名前:nobodyさん mailto:sage [2009/11/05(木) 19:35:22 ID:???]
- >>792
世の中にはキャッシュと言うものがあってだな・・・ てか、HDDからの読み込みが気になるくらいでかいファイルなのか?そのスクリプト。
- 797 名前:nobodyさん [2009/11/05(木) 20:31:20 ID:17l6YWCO]
- >>793-795
OSはWindowsなんだけど、とりあえずHDDをSSDとか1万回転のHDDに変えたら速くなりそうな気がするんだよね。 ルータやLANケーブルはそれなりのやつを使ってるけど。 実際商用のサーバーってどうやって負荷計ってるの?そういうフリーソフトないかな? 何を改善すればいいか分からん。 >>796 スクリプトはでかくないよ。ただ動画のダウンロードが多い。これが遅延の原因かも。 あとデータベースとOSのドライブは別のドライブにした方が速い?パーティションじゃなくて完全に個別という意味で。
- 798 名前:nobodyさん mailto:sage [2009/11/05(木) 23:07:04 ID:???]
- >>797
流石にスレ違いだろ。 DISKは複数あったほうが速いにきまっとる 書いてるようにOSとDB分けたほうがいい。
- 799 名前:nobodyさん mailto:sage [2009/11/05(木) 23:39:13 ID:???]
- >790
PHPのファイルは、OSによってディスクから内容がメモリに読まれた上で、インタプリタによって機械語にコンパイルされ、実行される。 ここまでが基礎知識。 で、まず、今どきのOSはディスクからの読み込みをキャッシュする。 つまり、一度読んだファイルはメモリにそのまま持っておいて、更新がなければ次回以降はそいつを使う。 次に、APCやeアクセラレータといったPHP関連ライブラリを使うと、機械語にコンパイルされたコードを使いまわしてくれるようになる。
- 800 名前:nobodyさん mailto:sage [2009/11/05(木) 23:55:44 ID:???]
- >>797
NICかHubが壊れかけてるとか? とりあえず遅延がどの時点で発生しているのか調べないと。 なんかPHPが原因じゃないっぽい感じがする。
- 801 名前:nobodyさん [2009/11/06(金) 15:02:27 ID:uY82lX0B]
- Tomcat+Javaで、Javaのローカルページ開くと、コンソール画面に出力できるよね
System.out.printlnで あれ、デバッグですごく便利なんだけど、 EclipseでPHPでできないのかな
- 802 名前:nobodyさん [2009/11/06(金) 15:30:23 ID:+6dsWJpT]
- GoogleSafeBrowsingで質問です
www.madirish.net/?article=245 上記を参考にPostgreSQLで作ってみました。 BL取得→DBに保存→webから利用があったらmd5してdbにSELECT発行 という形で作ってみたのですが、BL取得→DBに保存 ここまで上手くいって294,830件のハッシュがDB内に存在する所までは確認できました ところが実際にwebから本家GoogleSBでBL入りしているようなドメインを送ってもBL判定されません。 どなたかMySQL環境がある方、このソースをまんまで試してみて頂けますでしょうか…。 例として下記 www.google.com/safebrowsing/diagnostic?site=4gameranking.com
- 803 名前:nobodyさん [2009/11/06(金) 21:29:10 ID:qkr//tmU]
- 変数に値が入っているか入ってないか調べる時
if(isset($val))かif(!empty($val)) と if($val != "") か if($val <> "") では、どちらの方が処理が速いのでしょうか?
- 804 名前:nobodyさん mailto:sage [2009/11/06(金) 22:11:01 ID:???]
- >>803
とりあえず、「empty isset」のキーワードでぐぐってみた方がいいな
- 805 名前:nobodyさん mailto:sage [2009/11/06(金) 23:17:02 ID:???]
- >803
Cのコードを読んでみないとなんとも言えないが、もっとも処理の少ないであろうisset()が最速だと思う。 だけど、そんな速度差を気にしないといけないような案件でPHPを使うほうが間違っているので、どうでもいい。
- 806 名前:nobodyさん [2009/11/06(金) 23:29:19 ID:vBz8RCVv]
- フレームワークを覚えるのに挫折しました
そこでクラスについて勉強したいと思うのですが フレームワークを覚える前にクラスの使い方を覚えると楽になりますか? OOP、デザインパターンを覚えてからフレームワークに入るのが王道でしょうか? プログラミングはPHPが初めてでクラスの基本的なものは分かるのですがクラスだけは敷居が高くて勉強してきませんでした
- 807 名前:nobodyさん mailto:sage [2009/11/06(金) 23:33:04 ID:???]
- フレームワークの製作者になるのが目標でなければ
フレームワークの使い方だけ学べばいいんじゃないかな。 どこにファイルを置いて、こういう名前にして、どういうAPIがあって・・・みたいな。
- 808 名前:nobodyさん mailto:sage [2009/11/06(金) 23:34:14 ID:???]
- クラスなんて書けなくても使えるなら別に困りません。
- 809 名前:nobodyさん [2009/11/06(金) 23:34:43 ID:vBz8RCVv]
- class hello_world
{ private $word = "こんにちは世界さん(^^)"; function view() { return htmlspecialchars($this->word, ENT_QUOTES); } } $obj = new hello_world(); echo $obj->view();
- 810 名前:nobodyさん [2009/11/06(金) 23:38:43 ID:vBz8RCVv]
- 借り物のPCなのでデータベースを入れられないのと使い方がわからないのでちいたんは挫折しました
cakePHPもなんかドキュメントの通りやりましたがこのファイルにこれを書けという意味が理解できなかったため挫折しました smartyはサンプルみて挫折しました
- 811 名前:nobodyさん mailto:sage [2009/11/06(金) 23:41:26 ID:???]
- phpでstaticとかprivateってつかえる?
- 812 名前:nobodyさん mailto:sage [2009/11/06(金) 23:44:53 ID:???]
- >>811
>>809見ろよ
- 813 名前:nobodyさん mailto:sage [2009/11/06(金) 23:53:40 ID:???]
- ちいたんは挫折しました
- 814 名前:nobodyさん [2009/11/06(金) 23:54:01 ID:vBz8RCVv]
- public
protected private が使えます
- 815 名前:nobodyさん mailto:sage [2009/11/06(金) 23:54:54 ID:???]
- ちいたんで挫折してたらこの世に使えるFWなくね?w
あとSmartyはFWでないしな
- 816 名前:nobodyさん mailto:sage [2009/11/06(金) 23:59:14 ID:???]
- symfonyはインストールできましたがドキュメント見ても分からないため挫折しました
ZendFrameworkはドキュメントがたくさんあってまだ読んでないです フレームワークって新しい言語を覚えるような感じですね 気合入れないとだめですね
- 817 名前:816 [2009/11/06(金) 23:59:56 ID:vBz8RCVv]
- id出し忘れました
- 818 名前:nobodyさん mailto:sage [2009/11/07(土) 01:02:50 ID:???]
- 順を追ってステップアップしていくのが一番だよ
がんばれ!
- 819 名前:nobodyさん mailto:sage [2009/11/07(土) 01:04:33 ID:???]
- ちいたんはコメントないから初心者向きではないよ
- 820 名前:nobodyさん [2009/11/07(土) 10:59:11 ID:HHoKTIgI]
- //検索対象
$array = array("inquiry","support"); //検索する文字 $val = "inquiry_form"; // 検索文字が対象に一致するか foreach($array as $item){ if(strstr($val,$item)){ //一致した場合の処理 } } 検索する文字が検索対象に一致するか調べたいと思います。 上のように対象をforeachで回して$valに対象の文字列と一致するか 調べる方法が一番簡単だと思いますが、 検索する文字が複数ある場合、何回も上記の事をしなければいけません。 もう少し効率の良い書き方はないでしょうか?
- 821 名前:nobodyさん mailto:sage [2009/11/07(土) 11:26:41 ID:???]
- >>820
array_map使うと楽です
- 822 名前:nobodyさん [2009/11/07(土) 11:32:59 ID:HHoKTIgI]
- ありがとうございます。ぜひ参考にします。
- 823 名前:nobodyさん mailto:sage [2009/11/07(土) 12:00:25 ID:???]
- function a($a) {
$txt = "aaazzzccc"; if (strstr($txt,$a)) echo "一致\n"; } $search = array("aaa","bbb","ccc"); $p = array_map("a",$search);
- 824 名前:nobodyさん mailto:sage [2009/11/07(土) 12:23:34 ID:???]
- > 検索する文字が複数ある場合、何回も上記の事をしなければいけません。
別にarray_mapなんか使わなくても単にforeachの二重ループにすればいいのでは?
- 825 名前:nobodyさん mailto:sage [2009/11/07(土) 12:35:53 ID:???]
- 質問者は既にforeach使ってるみたいだね
- 826 名前:nobodyさん mailto:sage [2009/11/07(土) 14:40:11 ID:???]
- 2重ループwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
- 827 名前:nobodyさん mailto:sage [2009/11/07(土) 14:42:27 ID:???]
- 単にin_arrayでいいのでは?
- 828 名前:nobodyさん mailto:sage [2009/11/07(土) 15:07:14 ID:???]
- in_array= 配列に値があるかチェックする
質問では配列に格納された文字列が、変数に格納された含まれているかチェックする おk?
- 829 名前:nobodyさん [2009/11/07(土) 15:09:30 ID:PiVKZwA7]
- HTML_QuickFormとSmartyの組み合わせだと、1ページに1つのフォームしか作れないんでしょうか?
検索しても複数ページの遷移の件などがヒットして、複数のQuickFormをSmartyに渡す方法が出て来ません
- 830 名前:nobodyさん mailto:sage [2009/11/07(土) 15:29:08 ID:???]
- >>828
日本語でおk
- 831 名前:nobodyさん mailto:sage [2009/11/07(土) 16:00:49 ID:???]
- >>830
in_arrayはお門違いってことが理解できなかったか 外人さん乙
- 832 名前:nobodyさん mailto:sage [2009/11/07(土) 16:58:49 ID:???]
- >>831
えっ・・・? >検索する文字が検索対象に一致するか調べたいと思います。
- 833 名前:nobodyさん mailto:sage [2009/11/07(土) 17:04:57 ID:???]
- >>820の質問理解してる?
>>832さんよおじゃあin_array使ってコード書いてみろよwww
- 834 名前:nobodyさん mailto:sage [2009/11/07(土) 17:06:46 ID:???]
- >>832
質問者が少々日本語でおkなんだよ。意訳すると 「検索文字列が検索対象に含まれていたら何らかの処理をする、と言うロジックを 検索対象が複数だった場合にスマートに書きたい」 って事だろうからな
- 835 名前:nobodyさん mailto:sage [2009/11/07(土) 17:09:04 ID:???]
- //検索対象
$array = array("inquiry","support"); //検索する文字 $val = "inquiry_form"; // 検索文字が対象に一致するか foreach($array as $item){ if(strstr($val,$item)){ //一致した場合の処理 } } ↑ これをin_arrayを使ってどう書くのか激しく興味あるんだけど
- 836 名前:nobodyさん mailto:sage [2009/11/07(土) 17:13:26 ID:???]
- $a=array(1,2,3);
foo($a, array(2,8,9)); てやったとき、両方に2が含まれてるからtrueが返って欲しいんだろうな。 if($a!=array_diff($a, array(2,8,9))) ってどうよ?
- 837 名前:836 mailto:sage [2009/11/07(土) 17:14:31 ID:???]
- strstrだったか、失礼しました。
- 838 名前:nobodyさん mailto:sage [2009/11/07(土) 17:19:55 ID:???]
- in_arrayでコードまだ??
- 839 名前:nobodyさん mailto:sage [2009/11/07(土) 17:22:59 ID:???]
- >>827=>>830=>>832逃亡乙
- 840 名前:nobodyさん [2009/11/07(土) 22:43:03 ID:CwxQOSeK]
- constってどういう状況で使うものでしょうか?
class test { const hiru_aisatu = "こんにちはっ!!"; const yoru_aisatu = "こんばんは・・・"; const hurarerutoki = "さようなら・・2度と会わないで"; } echo test::hiru_aisatu; こんなかんじで書くのと $hiru_aisatu = "こんにちはっ!!"; $yoru_aisatu = "こんばんは・・・"; $hurarerutoki = "さようなら・・2度と会わないで"; echo $hiru_aisatu; というふうに書くのはクラス使うほうがスピードは遅い?ような気がするのですが 複数人でコード書く場合はクラスでconst使ったほうがいいでしょうか?
- 841 名前:nobodyさん mailto:sage [2009/11/07(土) 23:45:33 ID:???]
- in_arrayで解決おじさんまだ????????????????
- 842 名前:nobodyさん mailto:sage [2009/11/07(土) 23:57:06 ID:???]
- 規制されたままの方が良かったな
- 843 名前:nobodyさん mailto:sage [2009/11/07(土) 23:57:15 ID:???]
- >>840
・定数は上書きされない ・クラス定数は局所化される
- 844 名前:nobodyさん [2009/11/08(日) 02:32:54 ID:35LWJ8zb]
- 関数にいくつでも値を渡すことって可能でしょうか?
hoge_func($a) でも hoge_func($a,$b,$c,$d,$e,$f) ただし function hoge_func($a=null,$b=null... とは違う方法で
- 845 名前:nobodyさん mailto:sage [2009/11/08(日) 02:56:24 ID:???]
- array
- 846 名前:nobodyさん mailto:sage [2009/11/08(日) 06:59:04 ID:???]
- >>844
php.net/manual/ja/functions.arguments.php
- 847 名前:nobodyさん [2009/11/08(日) 08:26:26 ID:H7unfEmK]
- PHPとMYSQLでお気に入りの本を紹介するアプリ(紹介者は複数)を作ってるんだけど、
これまでに紹介された本の一覧ページで、同じ紹介者の本が連続して出ないようにしたいです。 たとえば登録時に10冊まとめて登録できる場合、主キーのIDを表示時のソートのキーにしたら 同じ人の紹介した本ばかりが一画面に出ることになります。 これを防ぐにはどうしたら良いですか? 登録時にランダム数を入れるカラムを作って、それをキーにして表示するのか、 それともPHPだけで出来るでしょうか?
- 848 名前:nobodyさん mailto:sage [2009/11/08(日) 08:59:03 ID:???]
- >>847
全然適当な並びでよければ ORDER BY RAND()
- 849 名前:nobodyさん [2009/11/08(日) 09:04:36 ID:H7unfEmK]
- >>848
うおおお、凄い! そんなのがあるんだ? やっぱり聞いて良かったです。ありがとう!
- 850 名前:nobodyさん [2009/11/08(日) 10:30:15 ID:atd+IQXc]
- class test
{ public $v = "test"; public function display() { return $this->$v; } } $obj = new test; echo $obj->display(); testと表示させたいのですが表示できません PHP5.3です どなたかご指導お願い致します
- 851 名前:nobodyさん mailto:sage [2009/11/08(日) 10:39:14 ID:???]
- >840
class Greeting{ const AT_MORNING = 'おっはー☆'; const AT_DAYTIME = 'こんにちは'; const AT_NIGHT = 'こんばんわー'; const FIRST_MESSAGE = '初めまして'; } class Love{ const FIRST_MESSAGE = '好きです!'; const END_MESSAGE = 'さようなら…二度と会わないで'; } echo Greeting::AT_MORNING; 例えば定数の場合、そこまでに通ったコードを全部読んで、定義部を探さないといけない。 クラス定数ならば、格納先のクラスさえ分かれば、そこを探すだけで済む。 勿論、「定数はこのファイルに全部書くこと!」という規則で運用しても同じような効果になるが、「立ち入り禁止」というルールだけ設けるのと柵を作るの、どっちが安全かの差だな。 また、Greeting::AT_MORNINGを読むにはGreetingクラスの存在を知らなければ(requireしなければ)ならない。 つまり、この定数を使っている箇所がどこら辺にあるのか特定しやすい。 あとは、全体から見える位置にものを定義すると、変数名被りや定数名被りが発生しやすい。クラス定数なら、クラスさえ違えば同名になっても問題ない。
- 852 名前:nobodyさん mailto:sage [2009/11/08(日) 10:41:21 ID:???]
- >>850
エラー出力見ようよ。たぶんこの場合ずばりのエラーが出てる。 return $this->$v; の、vには$要らない。
- 853 名前:nobodyさん mailto:sage [2009/11/08(日) 10:41:44 ID:???]
- return $this->$v
だと そのクラス内($this)の変数$vが持ってる値の変数になっちゃう return $this->v がただしい
- 854 名前:nobodyさん mailto:sage [2009/11/08(日) 10:45:24 ID:???]
- ありがとうございます
か >>852-853
- 855 名前:nobodyさん [2009/11/08(日) 10:46:05 ID:atd+IQXc]
- ミス
ありがとうございます おかげ様で解決できました >>852-853どうもありがとうございました
|

|