【PHP】下らねぇ質問はここに書き込みやがれ 67
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/04/11(金) 06:38:35ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは970が立ててください立たなかった場合は980よろ
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 66
http://pc11.2ch.net/test/read.cgi/php/1205655807/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0161157
2008/04/16(水) 13:56:24ID:KGnhrG4iいえ、ローカルのテストサーバ―として利用しているので、嫌とかではないんですが
毎回ディレクトリごとに.htaccessを設置するよりも、デフォルトで設定しておきたいのです。
AddType application/x-httpd-php .htm .html
これをhttpd.confに記述すればいいんでしょうか?
0162nobodyさん
2008/04/16(水) 14:05:29ID:???>ディレクトリごとに
ルートに1つ置いとけばいいだろ
>これをhttpd.confに記述すればいいんでしょうか?
YES
まぁスレ違いもいいところだぜ・・・
0163nobodyさん
2008/04/16(水) 14:06:46ID:???0164131
2008/04/16(水) 14:11:58ID:QC7Y4msPでフラグは立っていたみたいです。
imap_headerinfo()
で見ると、実際変わっていました。
しかし、imap_checkで変えるrecentの数や、
imap_searchでの検索でも、フラグが立っているとみなされません。
\\Flaggedをたてて、 UNFLAGGEDなんかでimap_searchしてみても
全権引っかかってしまいます。
From "hoge@hogehoge"
なんかで検索すると、うまく見つられてるようです。
常に1000件くらいメールがあるので、全部に対して処理をすると、読みこんで
メール解析したオブジェクト組み立てるだけで15秒〜30秒かかります。
DBに登録して・・・と考えると、ぜひ、新しいメールだけに処理をしたいのですが
なにか方法ありますでしょうか?
お願いいたします。
0165nobodyさん
2008/04/16(水) 14:32:44ID:KGnhrG4iありがとうございました
0166nobodyさん
2008/04/16(水) 14:36:42ID:pyqKRshm$_COOKIEはグローバル変数だよ?
0167nobodyさん
2008/04/16(水) 14:41:52ID:pyqKRshmあーわかった。それはクッキーに値が入ってない。
CやperlとかでCGI経験がないと、httpプロトコルが分らないから
クッキーはヘッダーで渡されているというのが分らないんだよね。
つまり、本文(html)を出力した後にクッキーは送出できないんだけど、
ここを理解しないと、今後同じデバッグに苦しむことになるよ。
解決策は、本文の前にsetcookieを呼ぶこと。
実装上のコツはノウハウだから、ケースバイケースでアドバイスが変わるよ。
0168nobodyさん
2008/04/16(水) 14:51:35ID:???配列にいくつ値があるかはそのつど変わります。
以下のようにはできるのですが、もっと簡単な方法がありましたらよろしくお願いいたします。
$data = array('hoge','foo','fuga'...'bumobumo');
$str = $data[count($data)-1];
0171nobodyさん
2008/04/16(水) 17:08:09ID:???AutoIndex PHP Script
ttp://www.moongift.jp/2007/05/autoindex_php_script/
どこで聞けばよいのか迷ったのですが、phpですのでこちらに書き込ませていただきました。
疑問点はこれを使う場合のディリクトリ構成です。
(AutoIndexフォルダ内に一覧表示したいものを入れるのか、その逆か)
また、必要があれば設定ファイルの変更箇所や、パーミッションの設定、アクセス制限の方法等も教えてください。
宜しくお願いします。
0172171
2008/04/16(水) 17:24:04ID:???0173nobodyさん
2008/04/16(水) 17:30:39ID:???0175nobodyさん
2008/04/16(水) 17:45:21ID:???http://www.php.net/xml
0176nobodyさん
2008/04/16(水) 19:01:43ID:???ttp://www.amazon.co.jp/gp/product/4861671000とかいいんじゃないの?
0178nobodyさん
2008/04/16(水) 19:30:51ID:???関数についてそこ以上に詳しく書かれたサイトは無いぞ.
メニューを上げれば他の関連モジュールもあるが。
http://jp.php.net/manual/ja/refs.xml.php
0179nobodyさん
2008/04/16(水) 19:35:05ID:???なので、完全には自己解決していませんが、>>174さんに教えていただいたフォーラムなどを参考に
ある程度進むことが出来ました。
一覧表示したいものがあるフォルダに、AutoIndexの内容物(index.phpなど)を入れたところ一覧表示されたのですが、
ユーザー名とパスワードによるアクセス規制がいまいちよく分りません。
初回動作で表示される設定画面で、「use_login_system」を「TRUE」にしたところまでは良いのですが、
どうやらそれに関係なく、誰でもファイルにアクセス出来る状態になってしまいます。
ユーザー名とパスワードを設定する.htpasswd.autoindexへの記述も、デフォルトで暗号化されているため
どうやってIDとパスを生成するのかもわかりません。
どなたかご教授願います。
0180154です。
2008/04/16(水) 19:35:21ID:DHAOt7zZよろしくお願いします
0182nobodyさん
2008/04/16(水) 20:04:44ID:???本当にDynamicに(実行時に)エクステンションをロードする必要があれば(って言うかその必要がある場面がわからんぞ)
dl関数使ってロードできる(けど使ったことない)。
実行時にロードする必要が無ければ
使いたいエクステンションを所定のフォルダに置いて
php.iniをいぢればOK(これは普通のやり方)
0184nobodyさん
2008/04/16(水) 22:33:34ID:???array_pop
>>154
dllの事だろ
extension=php_pgsql.dll
こんな感じでiniに追記
詳しい事は環境がわからないと何とも言えない
0185nobodyさん
2008/04/16(水) 22:38:20ID:JLMZOI/r関数メインで作っていたのを、今後の為に抽象化レイヤーに
書き換えようと思ってググリました。
$pdo = new PDO('hoge','huga','honya');な場合において
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
と
$pdo->setAttribute(ATTR_ERRMODE,ERRMODE_EXCEPTION);
という表記を見たのですが、これは同じと考えて良いんでしょうか。
::hogeは静的メソッドなので、PDOのオブジェクトのインスタンスである$pdoの中では
多分PDO::を省いても良いって事なんだろうなぁと思うんですが
書き方の習慣として、どちらの書き方が推奨されますでしょうか。
0186nobodyさん
2008/04/16(水) 22:46:10ID:???違う
PDO::ATTR_ERRMODE
これはクラス定数
ATTR_ERRMODE
これだと定数を参照する事になる
0187nobodyさん
2008/04/16(水) 22:48:55ID:???あ、因みにクラスメソッド内での参照の仕方は
self::ATTR_ERRMODE
って感じになる
詳しくはここらあたりかな・・・
http://jp.php.net/manual/ja/language.oop5.constants.php
0188nobodyさん
2008/04/16(水) 23:05:09ID:???おいおいおい・・・なぜ憶測でコードを書こうとする。他言語でOOPの経験があるわけでもないようだし。
ちゃんとマニュアルに書いてあることだから言語仕様で疑問に思うことがあったらこんなとこで聞く前に即参照しなされ。
0189nobodyさん
2008/04/16(水) 23:19:55ID:???理解できました。
ありがとうございます。
グローバル定数のPDO_ATTR_ERRMODEが5.1まで使用されていたけれど
今後はどんどんPHPを拡張していくから、グローバル定数増やすの嫌だから
PDO::ATTR_ERRMODEの様にクラスで定義されてる定数で呼び出してくれって事ですね。
0190nobodyさん
2008/04/16(水) 23:25:36ID:???php.netのクラスの部分は読んだんですけど
他言語でOOPの経験っていうか、特にJAVAの経験がないから
クラスの部分の説明が全然わかんないんですよ。
聞いても良いじゃないですか。
勉強してるだけで別に壊れて危険な物は作ったり公開してる訳じゃないんで
かっかしないでくださいよ。
0191nobodyさん
2008/04/17(木) 00:26:56ID:???0192nobodyさん
2008/04/17(木) 01:00:13ID:???だったらJavaやってこいよ
PHPがOOPに対応してるのはJavaからの移行者のため
PHPしかやらないような人間が無理してOOPする必要はない
PDOは確かに便利だが使い方わからないならネイティブ関数使うとか他に方法はある
そんなにクラスを理解したいなら先にJavaのサイトまわってこいよ
OOPのプログラム手法でわからないとこの質問ならまだしも
OOP教えてくれっていうのはお門違いだろ
手取り足取り教えてやる義理はない
0193nobodyさん
2008/04/17(木) 02:10:19ID:???l^l | | l ,/) | i| _/\/\/\/\/\/\_
', U ! レ' / / ̄ ̄ ヽ, \ /
/ 〈 / ', .n < こっこしないでくださいよ >
ヽっ{゚} /¨`ヽ {゚}, l^l.| | /) / \
/´ ̄ ̄ .l ヽ._.イl ', | U レ'//)  ̄|/\/\/\/\/\/\/\/ ̄
/ ィ-r--ノ ヘ_/ノ ', ノ /
,/ |! | ヽ rニ |
丿' W ヽ、 `ヽ l
. !/ ヽ、 | |
0194nobodyさん
2008/04/17(木) 02:12:07ID:???0195nobodyさん
2008/04/17(木) 02:57:25ID:???http://pc11.2ch.net/test/read.cgi/php/1158647441/
ほれこっち池
0196nobodyさん
2008/04/17(木) 08:49:20ID:YHuC7Xot例えばショップサイトで商品のデータをDBに入れます
それを呼び出すときは **.php?category=01&data=0000
とかで呼び出すわけですよね
それでこの商品の数が膨大になったりアクセスが増えると負荷がかかると思うのですが
どのような対処方があるのでしょうか?
鯖の性能を上げるといっても何がどうなってるのか概念みたいなものがわかりません
おおまかでいいのでご教授ください
0197nobodyさん
2008/04/17(木) 09:57:43ID:???0198nobodyさん
2008/04/17(木) 11:00:28ID:M2mwea+h終了するのを待ちたくない場合はどうすりゃいい?
一応execでC++で書いたプログラム(仮にaiueoという名前にする)を起動し、
aiueoの中でfork(), exec()してみた.親プロセス(aiueo)のほうはwaitを
しないで終了すればokかなと思ったら、aiueoがゾンビになって
結局起動した子プロセスが終了しないとwebページを操作できない・・
こーいう場合どうしたらええのん?
0199nobodyさん
2008/04/17(木) 11:11:15ID:???俺の経験則。反論もあるだろうし、信じなくて良い。
まずJOINを一つも無くす。その状態で並び替え条件にインデックスを張る。
そして一つのテーブルをシーケンシャルに検索する。
これはパフォーマンスをあげるための方法、
普通の設計ではJOINを無くすなんてことはしない。
むしろ逆。正規化をする。
検索条件にインデックスをはっても良い。
検索条件にインデックスをはることで遅くなることもある。注意。
like検索する所ははっても無意味。
10万件ぐらいならば、それが一番速い。
0200nobodyさん
2008/04/17(木) 11:53:39ID:???ドラゴンボール板向けのネタだよなとも思う。
0201nobodyさん
2008/04/17(木) 13:43:22ID:M2mwea+h解決.親プロセスと子プロセスの両方で、fclose(stdout)が必要だった.
おさわがせしました
0202nobodyさん
2008/04/17(木) 15:08:09ID:yQIY/UpaDBにバイナリ(画像等)を登録するメリットを教えてください。
0203nobodyさん
2008/04/17(木) 15:29:12ID:K4JzsNpfシンプルなものからはじめてコード読んで勉強したいと思ってます
0204nobodyさん
2008/04/17(木) 15:34:59ID:???いま、無料の掲示板(PHP)を使おうと思っているのですが
googleを入れたく思っています。
表示エリアには
// 表示
echo " <tr><th colspan=¥"2¥" $_class><p class=¥"header_menu¥">$res$edit$del</p>$title</th></tr>¥n";
echo " <tr>¥n";
echo " <td class=¥"t_row1¥">$name<br /><br />$id</td>¥n";
とあり、$IDの後に入れたいと思っています。
入れるgoogleは
<script type="text/javascript"><!--google_ad_client = "pub-11111111111";/* 125x125, 作成済み 08/04/16 */google_ad_slot = "11111111111";google_ad_width = 125;google_ad_height = 125;//-->
</script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
となっております。
その場合どのよう入れれば表示しますでしょうか?
上の行で$で指定する文章を入れるのが良いのでしょうか?
恐れ入りますが、ご教授下さい。
0205nobodyさん
2008/04/17(木) 16:00:22ID:???//表示 の直後に下記の5行
$google = <<<OMAEHAKUDARAN
<script type="text/javascript"><!--google_ad_client = "pub-11111111111";/* 125x125, 作成済み 08/04/16 */google_ad_slot = "11111111111";google_ad_width = 125;google_ad_height = 125;//-->
</script><script type="text/javascript"src="(p)http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
OMAEHAKUDARAN;
であとはecho文の入れたいところに$googleを入れる。たとえば
echo " <td class=¥"t_row1¥">$name<br /><br />$id $google</td>¥n";
0206nobodyさん
2008/04/17(木) 16:01:34ID:???そこは無視でよろ。
0207nobodyさん
2008/04/17(木) 16:09:21ID:???<<<OMAEHAKUDARAN
0208204
2008/04/17(木) 16:12:04ID:???0209nobodyさん
2008/04/17(木) 16:14:58ID:???ヒアドキュメントをより先にまず "は\でエスケープすること学ぼう
0210204
2008/04/17(木) 16:35:24ID:???$google = <<<GOOGLE
<script type=¥"text/javascript¥"><!--google_ad_client =¥"pub-1111111111¥";/* 125x125, 作成済み 08/04/16 */google_ad_slot =¥"pub-1111111111¥";google_ad_width = 125;google_ad_height = 125;//-->
</script><script type=¥"text/javascript¥"src=¥"http://pagead2.googlesyndication.com/pagead/show_ads.js¥">
</script>
GOOGLE;
として入れてるんですが、HTMLはき出した後ソースを見ると円マークが残ったままになっています。本来HTMLにはき出した後のソースは消えていますよね・・・。
やはり初心者にはむりですかね・・・・。
0212204
2008/04/17(木) 16:51:44ID:???ありがとうございます。
ヒアドキュメントという言葉を知らず、見落としました。
現状何となくエリアが出たのですが、表示はしていませんが
何となく出そうな感じまで行きました。
ちょっこり、色々いじってみます。ありがとうございました。
0213nobodyさん
2008/04/17(木) 17:03:04ID:???0214nobodyさん
2008/04/17(木) 17:50:59ID:???0215nobodyさん
2008/04/17(木) 18:01:14ID:???0220nobodyさん
2008/04/17(木) 19:45:53ID:???Apache2.63にPHP5.25をインストールしました。
PHPファイルをモジュールで動かしてたのですが、勉強のため一部のファイルのみCGIとして動かしたいんです。
動かしたいファイルのソースはこれです。これを実行させるとechoで出力はできるのですが、#!C:/php5/php-cgi -qが文字列として表示されてしまいます
ということはCGIとして動いてないからなんでしょうか・・・?
#!C:/php5/php-cgi -q
<?php
echo 1111111;
?>
0221nobodyさん
2008/04/17(木) 20:19:24ID:???0222nobodyさん
2008/04/17(木) 20:30:25ID:???一行目に#!〜おまじないをいれてみましたができません
httpd.confにcgiとして設定しないとできないのでしょうか?
0223nobodyさん
2008/04/17(木) 20:46:52ID:???0224nobodyさん
2008/04/17(木) 21:23:22ID:???0226nobodyさん
2008/04/17(木) 21:34:40ID:???どうもありがとうございました
0227nobodyさん
2008/04/17(木) 21:35:07ID:???0230nobodyさん
2008/04/17(木) 21:40:35ID:???答えられないならでてこなくていいからw
0231nobodyさん
2008/04/17(木) 22:08:12ID:???0232nobodyさん
2008/04/17(木) 22:12:02ID:???0233nobodyさん
2008/04/17(木) 22:46:48ID:???0234nobodyさん
2008/04/17(木) 22:47:05ID:???0235nobodyさん
2008/04/17(木) 22:56:16ID:???http://pc11.2ch.net/test/read.cgi/php/1158647441/
ほれこっち池
0236nobodyさん
2008/04/17(木) 22:57:36ID:???セッション管理が必要なサイトで、
セッションIDの情報をURLに埋め込んでいます。
ただ、ユーザーの中にセッションIDが入ったURLをブックマークとして
公開する人がいて、セッションハイジャックが毎日行われています。
これって、仕様として客に説明しているのですが、
客が納得してくれず、携帯であるが故に技術的に不可能なことを説明しているのですが堂々巡りです。
こういう場合、どのような資料を提示して納得してもらえるのでしょうか?
宜しくお願いします。
0237236
2008/04/17(木) 22:58:55ID:8cCEOmJ00238nobodyさん
2008/04/17(木) 23:00:47ID:???0240236
2008/04/17(木) 23:08:32ID:8cCEOmJ0アドバイスありがとうございます。
有効期間はつけているのですが、
短いと、すぐにセッションが切れると苦情が来るし、
長いと、2chやブログでURLが貼られた場合に、セッションハイジャックが多発してしまします。
結局、有効期間ですと根本的には解決されないのではというのが結論です。
>>239
いや、携帯のサイトですから・・・
0242nobodyさん
2008/04/18(金) 00:07:02ID:???0243nobodyさん
2008/04/18(金) 00:09:22ID:???0244nobodyさん
2008/04/18(金) 00:30:00ID:???セッションハイジャックの対策をしていない事が問題なだけ
0245nobodyさん
2008/04/18(金) 00:33:53ID:???「fscanfがおかしいです。」も好きだけど、これも気に入った。
0246nobodyさん
2008/04/18(金) 00:40:53ID:???うちの下請けが「これが仕様です」なんて言ってきたら二度と仕事回さないぞ
0248nobodyさん
2008/04/18(金) 01:40:20ID:???0249nobodyさん
2008/04/18(金) 01:46:33ID:???0250nobodyさん
2008/04/18(金) 06:04:41ID:???$a = "hoge";
や
isset($a) ? $a : "hoge"
をもっと簡潔に(短く)書く方法はありますか?
0251nobodyさん
2008/04/18(金) 06:40:54ID:???0252nobodyさん
2008/04/18(金) 13:48:09ID:VW/Du+vX【日付,名前,本文,削除pass,IP】とデータをログファイルに残してます。
出力はこのログを頭から順にだしてます。
ここから返信機能つき掲示板に組み替えたいのですが、
ログファイルにどのようにデータを残し、
どのように出力するように動作させたらよろしいのでしょうか?
流れだけでもどうかご教授お願いいたします。
0253nobodyさん
2008/04/18(金) 14:03:31ID:???とりあえず全てのスレッドにユニークなIDをつける。
↓
新しいテーブル(データベースの場合)、またはファイルを作成。
↓
【ユニークID,本文】でデータを取る。
↓
ユニークIDが新テーブルと一緒の物だけを表示。
(例) データベース使ってる場合のsql
>>252の作ってるテーブルのユニークID(55)を一覧する場合
select * from new_table where ユニークID = 55
こんな感じでいいのかな?
0254nobodyさん
2008/04/18(金) 14:04:08ID:???0255nobodyさん
2008/04/18(金) 14:14:18ID:VW/Du+vXさっそく取り掛かります。
ありがとうございました。
0256nobodyさん
2008/04/18(金) 14:48:16ID:???以下だったら3を返してほしいです。
$preg = "12HOGE.;asd123HOGE.;52HOGE";
/(\d+)HOGE/
0258nobodyさん
2008/04/18(金) 14:54:12ID:???0260nobodyさん
2008/04/18(金) 16:07:57ID:???■ このスレッドは過去ログ倉庫に格納されています