【PHP】下らねぇ質問はここに書き込みやがれ 50
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2007/07/11(水) 17:50:01ID:fYd+34USPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 49
http://pc11.2ch.net/test/read.cgi/php/1182794620/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0002nobodyさん
2007/07/11(水) 17:56:45ID:fYd+34US【PHP】下らねぇ質問はここに書き込みやがれ 47
http://pc11.2ch.net/test/read.cgi/php/1180181033/
【PHP】下らねぇ質問はここに書き込みやがれ 46
http://pc11.2ch.net/test/read.cgi/php/1178955837/
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1178955768/
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/
【PHP】下らねぇ質問はここに書き込みやがれ 44
http://pc11.2ch.net/test/read.cgi/php/1176364487/
【PHP】下らねぇ質問はここに書き込みやがれ 43
http://pc11.2ch.net/test/read.cgi/php/1175368910/
【PHP】下らねぇ質問はここに書き込みやがれ 42
http://pc11.2ch.net/test/read.cgi/php/1174217841/
【PHP】下らねぇ質問はここに書き込みやがれ 41
http://pc11.2ch.net/test/read.cgi/php/1173163186/
0003nobodyさん
2007/07/11(水) 17:57:27ID:fYd+34US■本家マニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル http://pear.php.net/manual/ja/
■メーリングリスト http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル http://framework.zend.com/manual/ja/
(以下英語)
■Smarty http://smarty.php.net/
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん
2007/07/11(水) 17:58:11ID:fYd+34US1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→ http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
0005nobodyさん
2007/07/11(水) 17:58:52ID:fYd+34US→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
0006nobodyさん
2007/07/11(水) 18:09:09ID:???くイ/彡久ヽ*、\
/*ハ´ > <`fヽY その質問は下らなくねぇですぅ
ぐィてl "" △""儿、\ 下らねぇ質問は
r‐/ /‐ゝー,-ォイ_入_ > ここに書き込みやがれ
〈 久_,ィ| <_斉_>|_,ィ \| こんちくしょー
/∨:.:.:.:.:| 爻 | :.:.:゙┬┘
/.:.:.:.:.:.:.:.:.>イvトイ:.:.:.:.:.:ヽ
/.:.:.:.:.:.:.:/〃 ヾ\.:.:.:.:.ヽ_
rー' ̄.:.:.フ 《 》 弋.: ̄.:.:.7
ヽ.:.:._;..-/ ヾ、 〃 ヽ-.;_/
0007nobodyさん
2007/07/11(水) 20:08:51ID:TGVvUtvjprepared statement 実行。
$st->prepare(...)
$st->bind_param(...)
$st->execute();
$st->store_result;
の後で
fetch_assocが実行できない。
preparedじゃなくて
$st->query()
の後なら実行できる。
散々調べたので、
"fetch_assoc()はprepared statementの後では実行できない”
気がする。
それでいいのかな。
もしそうならソース教えて。みつからん。
0008nobodyさん
2007/07/11(水) 22:05:57ID:???0009nobodyさん
2007/07/12(木) 00:02:59ID:???来月、php6.0のβ版がリリースされるとのことですが、
この件について熱く語ってください。
995 :nobodyさん:2007/07/11(水) 13:42:35 ID:???
6は素数
0010nobodyさん
2007/07/12(木) 02:06:50ID:???0011nobodyさん
2007/07/12(木) 05:35:21ID:???α版ダウンロードしてテスト環境にいれて使ってみてるけど、
phpにデータ構造を定義してDBの種類を指定すると、
それに対応したSQL文が出力されたりする。
今まで、力技でやっていたことがほぼ自動化されている。
あらゆる高級言語で最高の開発効率じゃないかなぁ。
0012nobodyさん
2007/07/12(木) 10:41:33ID:uQiGe5BL自身のセッションと他にセッションを利用している
ユーザーのセッションも破棄されてしまうという事なのでしょうか?
マニュアルも読みましたが現在登録されている全ての
セッション変数を開放します。
としかなく全てというのが何処まで影響力を持つのかがわかりません
0013nobodyさん
2007/07/12(木) 10:43:28ID:???001412
2007/07/12(木) 10:52:27ID:uQiGe5BL実際に使っているがわからんから聞いているのだけど…
ユーザー認証でセッションを使っていてログウト時に
session_unsetをさせている
だけど最近よくセッションタイムアウトを起こすような
タイミングでもないのにセッションが切れる
複数人(50〜100)が出入りする環境なので試せない
自身ひとりで3〜4台程度のPCだと問題ない
0015nobodyさん
2007/07/12(木) 11:08:22ID:???session_unsetは、全てのセッションファイルを削除する。
そもそもセッションは、セッションファイルをサーバー側に作って、
ファイルによってセッションを管理しているが、session_unsetを実行すると、
セッションファイルを作るフォルダが全て消去される。
つまり、セッションが現在繋がっているユーザーのセッション情報が全て廃棄されるので
普通は使わない。
特定のユーザーだけのセッション情報を破棄したいのなら、
セッション名を指定して廃棄するしかない。
0016nobodyさん
2007/07/12(木) 11:12:54ID:???001712
2007/07/12(木) 11:26:30ID:uQiGe5BLクッキーからセッションID引っこ抜いて破棄するように
組み替えた
とりあえずこれで症状が出ないかしばらく様子をみます
ありがとう
0018nobodyさん
2007/07/12(木) 11:47:21ID:???0019nobodyさん
2007/07/12(木) 13:39:43ID:???ログアウトとかでセッションをリセットする場合って普通は
$_SESSION = array();
ってやんないか?
0020nobodyさん
2007/07/12(木) 13:54:07ID:???0021nobodyさん
2007/07/12(木) 14:10:32ID:???002312
2007/07/12(木) 14:15:25ID:???鵜呑みにはしていないので…
ちなみにマニュアルに載ってる以下の方法で組みなおしてある
15がヒントになったのは確かので感謝はしてる
// セッション変数を全て解除する
$_SESSION = array();
// セッションを切断するにはセッションクッキーも削除する。
// Note: セッション情報だけでなくセッションを破壊する。
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
}
// 最終的に、セッションを破壊する
session_destroy();
0024nobodyさん
2007/07/12(木) 14:19:30ID:???>マニュアルも読みましたが現在登録されている全ての
>セッション変数を開放します。
>としかなく全てというのが何処まで影響力を持つのかがわかりません
まあ、とりあえずマニュアルに付帯しているUser Contributed Notesぐらいは読もうね。
0025nobodyさん
2007/07/12(木) 14:24:40ID:???0028nobodyさん
2007/07/12(木) 14:28:41ID:???0029nobodyさん
2007/07/12(木) 14:52:58ID:cyViohryauの2GだったらCDMAとか・・・。
携帯のキャリア&2Gor3Gを取得したいのですが、何かお勧めの方法などがあれば教えてください。
0030nobodyさん
2007/07/12(木) 14:58:02ID:???キャリアはUAで解ると思う
通信方式はキツイ、別にサーバーまでその方式で通信してきている訳じゃないし、機種から判断するぐらいしか無いんじゃないかな
0031nobodyさん
2007/07/12(木) 15:00:53ID:cyViohryなるほど。ありがとうございます。
リモートホストでキャリアを判別して、
UAで機種を振り分けですね。
0032nobodyさん
2007/07/12(木) 15:02:00ID:???それってどこかに解説ある?
http://itpro.nikkeibp.co.jp/article/COLUMN/20050917/221333/?ST=oss&P=2
ここ見てもキャッシュ・フィルタ・名前空間くらいしか書かれてないんだけど
クエリ自動生成とか興味あるから使ってみたい
0033nobodyさん
2007/07/12(木) 15:50:00ID:???や、UAで機種がわかればそっからキャリアも解るでしょ?
確かにリモホでやった方が楽だけど、どの道UAで振り分けるんだからいっぺんにやっちゃった方がリモホ分の労力浮くと思うよ
0034nobodyさん
2007/07/12(木) 15:55:40ID:???0035nobodyさん
2007/07/12(木) 16:00:17ID:cyViohry>>34さんの仰るとおり、偽装PCを弾きたいのです。
携帯サイトは完全3Gのみ対応のサイトにしたいので、2Gも弾きたいです。
0036nobodyさん
2007/07/12(木) 16:03:54ID:???PCでケータイ用の画面見られることに不都合ってあるの?
IPの帯域でケータイUAを弾くと、Yahooやgoogleのケータイ用のrobotが偽装するUAも弾くことになるから、
検索エンジン経由でケータイサイトに来る人がいなくなるよ。
0037nobodyさん
2007/07/12(木) 16:34:10ID:???自作のプログラム配布している人は逆コンパイルされたら困るし、
クライアント様は検索エンジンなんて二の次だし、
そもそも検索の下位のサイトは検索エンジンの価値がないし
0039nobodyさん
2007/07/12(木) 17:51:32ID:???セッション使うより
会員制サイトならユニークIDにしたほうが効率よくない?
セッションだと
セッション→ID&PASS→DBより一致するデータを取得
ユニークIDだと
ユニークID→一致するデータを取得
GETにでも入れておけばいいんじゃね?
0040nobodyさん
2007/07/12(木) 17:59:35ID:???0042nobodyさん
2007/07/12(木) 18:03:50ID:???0043nobodyさん
2007/07/12(木) 18:10:11ID:???どこがじゃねーだろオマエ!!
GETにしたら、そこから他のホームページに跳んだときに、
リファラーで、セッションを簡単に盗まれるだろうww
オマエのHPはそんなアホな設計してんのか?
0044nobodyさん
2007/07/12(木) 18:16:24ID:???その設計だと某アホーの子会社のように
クレジット番号入りの書き込みをされたお問合せ内容
を全部みられてあせらなければならなくなるぞ
0047nobodyさん
2007/07/12(木) 18:25:38ID:???>リンク先とのページの間にime.muみたいにページ挟めばいいだけじゃね?
そんなめんどいサイト使いたくないな
0049nobodyさん
2007/07/12(木) 18:32:08ID:???各画面でログインしてる人のニックネームとか表示するときに毎回DBにアクセスするのか?
0052nobodyさん
2007/07/12(木) 18:53:00ID:???0054nobodyさん
2007/07/12(木) 19:10:00ID:???0055nobodyさん
2007/07/12(木) 19:26:00ID:???0056nobodyさん
2007/07/12(木) 19:42:13ID:lBVkotIg0057nobodyさん
2007/07/12(木) 19:46:51ID:???http://www.php.net/manual/ja/
0058nobodyさん
2007/07/12(木) 19:51:07ID:???0059nobodyさん
2007/07/12(木) 21:02:26ID:???0061nobodyさん
2007/07/12(木) 21:14:44ID:xgT4qcJehttp://news22.2ch.net/test/read.cgi/newsplus/1184227903/l50
0062nobodyさん
2007/07/12(木) 22:02:54ID:???プログラマのためのSQL ジョー セルコ
SQLポケットリファレンス 朝井 淳
自分の使うDBの中級者本
あとphpの環境ぐらい書いとけ
0063nobodyさん
2007/07/12(木) 22:25:02ID:???もっとマシな紹介しろよ。
0064nobodyさん
2007/07/12(木) 22:36:23ID:???文字数が多いだけで普通に初歩本だと思うけど
つかコレが読めないような方は値段見た時点で買わないと思う
つかそう思うならオススメあげとけよw
0065nobodyさん
2007/07/12(木) 23:04:18ID:v1n4UJF6あるサイトにアクセスして、一定時間表示されなければ、その処理は中断する。
fopenでURLを開くと同時に開始時間をスタートさせ、
一定時間経っても何らかの情報が取得出来ない場合は、次のURLを読み込む
というやり方で出来る気がしますが、まだ空想の段階です。
もし、出来そうならヒントとなる関数や組み立て方を教えて下さい。
0066nobodyさん
2007/07/12(木) 23:08:38ID:???stream_set_timeout
でできるよ。
メールサーバからの大量受信とかもこれでリトライとか、あきらめて次の処理とか出来る。
0069nobodyさん
2007/07/12(木) 23:58:27ID:2QVskV9M68 名前:nobodyさん[sage] 投稿日:2007/07/12(木) 23:12:54 ID:???
>>64
「w」頭悪そうだね。
ま、悪いんだろうけど。
0070nobodyさん
2007/07/13(金) 00:08:35ID:r6mqeqmj69 :nobodyさん:2007/07/12(木) 23:58:27 ID:2QVskV9M
バカ皿仕上げ
68 名前:nobodyさん[sage] 投稿日:2007/07/12(木) 23:12:54 ID:???
>>64
「w」頭悪そうだね。
ま、悪いんだろうけど。
0071nobodyさん
2007/07/13(金) 01:35:56ID:???出力する方法って無いですかね?print_rやvar_dumpでもなく。
0072nobodyさん
2007/07/13(金) 01:48:48ID:???0073nobodyさん
2007/07/13(金) 05:18:35ID:zCZ7I7UC書き込むときにクッキーが使えないと書けない仕様ですが、
クッキーを消しても時間規制にひっかかってしまいます。
そこでこのような2ちゃんの使用を勉強したいのですが、
クッキー以外にどこに記録がのこっているのでしょうか?
0074nobodyさん
2007/07/13(金) 05:30:10ID:???0076nobodyさん
2007/07/13(金) 06:57:24ID:zCZ7I7UCということは、サーバに記録をのこしておけばクッキーが消されても規制できるということですね。
セッションを使えば同じことできますか?
0077nobodyさん
2007/07/13(金) 07:03:19ID:???2chみたいな大規模な所は知らないけど、最近投稿したipを記録しておけば十分でしょう
0078nobodyさん
2007/07/13(金) 08:20:18ID:zCZ7I7UC0079nobodyさん
2007/07/13(金) 08:39:36ID:???ここに書いてもいいのかな
0080nobodyさん
2007/07/13(金) 08:44:40ID:???例えば、以下のようなテーブルを作成すればできる
TBL_POST_IP
POST_DATE TIME_STAMP
IP_ADDRESS VARCHAR(15)
PRIMARY KEY をIP_ADDRESSに付ける
接続されたら
SELECT MAX(POST_DATE) MAX_POST_DATE FROM TBL_POST_IP WHERER IP_ADDRESS = '$_SERVER['REMOTE_HOST']'
MAX_POST_DATEが現在日時よりも一定時間経過していなければ
header("Location: http://www.yahoo.co.jp/");
exit;
問題がなければ、
INSERT INTO TBL_POST_IP VALUES(NOW(), '$_SERVER['REMOTE_HOST']');
を実行すればよい。
008180
2007/07/13(金) 08:51:02ID:???cronなどで適時消す必要がある。
例えば、一日ごとに、
DELETE FROM TBL_POST_IP WHERE TO_DAYS(POST_DATE) < TO_DAYS(NOW())
を実行すれば、昨日分のデータを全て消えるし、
毎日のデータ量もそれほど行かないと思う。
又は、このデータは永続的に保存しておきたいのなら、
INSERT INTO BACK_UP_TABLE SELECT * FROM TBL_POST_IP
とすればいい。
0082nobodyさん
2007/07/13(金) 08:54:15ID:???しかもIPだと同じ会社で他のやつが書き込みしたら、いきなり書き込み制限されそう
008380
2007/07/13(金) 08:55:25ID:???最後に書いたBACK_UP_TABLEのデータ構造だけど、
TBL_POST_IPと一緒にしておくことを忘れずに。
あとは、一回毎のアクセスの旅にTABLEにアクセスして
パフォーマンス劣化が心配であれば、
TABLEを作る際に、MOMORYテーブルにすればかなり高速で検索できるよ。
MOMORYテーブルは簡単にいうと、メモリ上に情報を格納するテーブルを作成するオプション。
HDDアクセスと比べてかなり高速。
やり方は簡単で、テーブルをCREATEする際に
最後に
ENGINE = MEMORY;
をつければOK。
008480
2007/07/13(金) 08:59:49ID:???ごめん、確かにそうだ。
INSERT INTO TBL_POST_IP VALUES(NOW(), '$_SERVER['REMOTE_HOST']');
↓
REPLACE INTO TBL_POST_IP VALUES(NOW(), '$_SERVER['REMOTE_HOST']');
にすればOKだ。
あとは、IPがいやなら、IPアドレスの代わりにMACアドレスをキーにすれば、
PCそのものを特定できる。
0085nobodyさん
2007/07/13(金) 09:06:16ID:???0086nobodyさん
2007/07/13(金) 09:23:47ID:???http://pc11.2ch.net/test/read.cgi/php/1122899232/
0087nobodyさん
2007/07/13(金) 11:16:34ID:???0088nobodyさん
2007/07/13(金) 11:42:22ID:HPPLyHwMコンテンツが多くなる毎に、そのファイル無いの桁数も多くなります。
こういう場合、やっぱりコンテンツに応じて使用する関数ファイルを分けた方が
処理も早く、修正しやすいのでしょうか?
それとも、用途(フォーム入力時、確認時 など)によって分けた方がいいのでしょうか?
細かい点ですが、気になったので質問しました。
008980
2007/07/13(金) 11:51:59ID:???入力チェックは大きく分けて、
存在チェック、
必須チェック、
型チェック、
文字長さチェック、
範囲チェック、
関連性チェックに分けられる。
それぞれごとに関数を定義したら、あとのフォーム毎に変わる部分は引数として指定して、
汎用的な作りにすればいい。
それでもファイル内の関数が大きくなるのなら、
ファイルを分割して__autoを使って動的に呼び出せば、
パフォーマンスは良くなる。
009088
2007/07/13(金) 12:04:44ID:???>パフォーマンスは良くなる。
この部分がよくわからないのですが、
フォームを使う部分は、form_func.phpをincludeし、
表示・確認時は、disolay_func.phpをincludeする
という考え方ではないのでしょうか?
009280
2007/07/13(金) 12:16:46ID:???分かりにくくてすみません。
一つずつ説明すると、
存在チェックというのは、
例えば、名前が来るはずなのに$_POST["NAME"]がinnsetがFALSEで帰ってくるかどうかです。
本来フォームで定義しているのに、キーが来ないというのは偽装されている可能性があるため、
即アクセス拒否する必要があります。
次に、型チェックですが、
例えば、名前は全角、郵便番号は数値型、などです。
予め、型が決まっている場合に、入力チェックで弾く場合に使います。
型が違う場合には、通常入浴画面に戻して再入力させます。
次に、文字長さチェックは、
例えば、郵便番号は7桁、年齢は3桁、などのように文字の長さが決まっている場合に使います。
文字長さチェックに引っかかった場合には、型チェックエラーと同じ動作をさせます。
範囲チェックは、
例えば、年齢は0〜120歳とか、生年月日の年が1900年から2007年までというように、
数値の場合に範囲が決まっている場合です。
これも、エラー時の処理は型チェックエラーの場合と同様です。
関連性チェックは、住所で字が入力されいる時に町名が入力されていないなどのように
異なる項目が関連している場合に、その関連性の妥当性をチェックする方法です。
関連性チェックでエラーになった場合には、悪戯で有る可能性があるので、
警告画面を出す必要があります。
長文になりましたが、ざっくり言うとこんなところです。
分かりにくいところがあったら、また投稿して下さい。
009380
2007/07/13(金) 12:19:15ID:???必須チェックの説明を忘れていました。
必須チェックというのは、名前や住所など必ず入力しなければいけない項目が
未入力かいなかをチェックする方法です。
存在チェックとちがうのは、必須チェックはクエリーにキーがあるが、値がないかどうかをチェックするのに対して、
存在チェックは、クエリーにキーがあるかどうかをチェックする方法です。
009488
2007/07/13(金) 12:28:29ID:???せっかく書いていただいたのに申し訳ないのですが、
そういう記述を書いている関数のセットがあるわけです。
それを「フォーム処理用」としてまとめています。
それとは別に表示用の関するがありまして、
例えば、$sexが1なら「男」 $sexが2なら「女」という値を返す関数を作っているわけです。
ただそういう処理をひとつのファイル上でまとめていると、
後から確認した時にわかりづらいのではないか?っと思い、
「皆さんはどうしてますか?」っと質問した次第です。
0095nobodyさん
2007/07/13(金) 12:46:11ID:???class Constants{
static $sexArray = array( '1' => '男', '2' => '女' );
}
<td>性別</td><td><?=Constants::sexArray[$_POST['sex']]?></td>
0097nobodyさん
2007/07/13(金) 14:54:12ID:FLkffxf0以前に使っていたIDはどうなるのでしょうか?
もしサーバーに残るのでしたら、容量を抑えるために消したいのですが可能でしょうか?
0099nobodyさん
2007/07/13(金) 16:23:41ID:???0100sage
2007/07/13(金) 16:28:08ID:???0101nobodyさん
2007/07/13(金) 16:36:25ID:???0102nobodyさん
2007/07/13(金) 17:00:23ID:dloI7Add↑みたいに、受け取った文章の特定の文字(一定の規則性を持った文字)
を装飾する(タグを付加して表示する)のってどうやるんでしょうか?
「pregなんかの正規表現で切り取って、タグで囲んでもとの位置に戻す」
という作業だと思うんですが、
一番スマートな方法を教えてください。
できれば具体例を示してもらえるとありがたいです。
0103nobodyさん
2007/07/13(金) 17:01:32ID:???>>(\d{1,4})
<a href="">\1</a>
0104nobodyさん
2007/07/13(金) 17:05:51ID:7syhWac6現状ログインユーザーがページを読み込む毎に
クエリが5本走るようになってます。
まだ追加したい機能があるので将来的には7〜8本は
クエリが走るようになると思うのですが
これって公開した暁にはどの程度の負荷になるのでしょうか?
仮に負荷が大きすぎて実用でないとしたら
どうすればよいでしょうか?
ストアドプロシージャの使用で負荷軽減になりますか?
javascriptのonloadで別に呼ぶのはページ表示を速くする効果がありますか?
0105nobodyさん
2007/07/13(金) 17:10:07ID:???0106nobodyさん
2007/07/13(金) 17:21:08ID:???ページがあるけど、0.2秒から0.3秒程度で返却しているよ。
indexをうまく張れば、1000万件超えても余裕だよ。テストデータでのテスト済み。
0107nobodyさん
2007/07/13(金) 17:21:38ID:NLrIBmGt>>105に同意
あとで組み替えられるように粗な作りにしておけばOK、一発目で納得いくものはつくれんよ。
webサービスにやたらβが多いのも、あちこち試行錯誤、段階リリースやってるからだ。
あとは、本当にクエリが5本必要なのか?ってとこか。
0108104
2007/07/13(金) 17:26:34ID:7syhWac6レスありがとうございます。
とりあえず完成させて、テスト公開してみたいと思います。
0109nobodyさん
2007/07/13(金) 17:36:59ID:???余計時間かかって、苦労するな・・・
テーブルなんて細部に分けた方が扱いやすいんだけどな。
1画面1フォームの場合は、すべて1つのテーブルで済ませようと思ってしまう。
0110nobodyさん
2007/07/13(金) 17:38:56ID:???0111nobodyさん
2007/07/13(金) 17:40:37ID:???テーブルを増やすとソースが増える。確認がしづらい。
しかし、テーブルを減らすと汎用性に欠く。
どちらも一長一短だろうけど。
0112nobodyさん
2007/07/13(金) 17:41:27ID:???じゃあクエリ送信するときに一度テーブルくっつけちゃえばいいんじゃね?
0113nobodyさん
2007/07/13(金) 17:50:35ID:???そんなに気にするほどでもないと思うけど。
アクセス数が異常に多いとか、レコード件数が億を超えるような膨大な
金融機関系のシステムなら別だけど。
0114nobodyさん
2007/07/13(金) 18:03:19ID:???てか、phpMyAdminの場合、1000件程度でも重いが・・・
0115nobodyさん
2007/07/13(金) 18:07:41ID:3J3Mm2ci0116nobodyさん
2007/07/13(金) 18:16:12ID:???開いた途端に広告しか見えない状態になってから巡回先から外したよ
0117nobodyさん
2007/07/13(金) 18:26:09ID:???見ず知らずの相手に手間と労力掛けて作っても儲からなかったら意味ないしな。
0118nobodyさん
2007/07/13(金) 18:26:22ID:???PHPエディタが使えれば
0119nobodyさん
2007/07/13(金) 18:38:36ID:???mysqlとかpostgresqlつかうよりOracleだろうし、むしろCacheとか使ってみたい気もする。
0120nobodyさん
2007/07/13(金) 18:43:22ID:???○件超えたらoracleって意味不明ですが、それが何か?
0121nobodyさん
2007/07/13(金) 18:47:13ID:???知ってるよ、あくまでも、ソースいじくって独自拡張できるような専門家がいないレベルでの中小企業での話。
ポイントはココにいるレベルなら今は気に病む段間じゃないということ(当然俺も含めて)。
0122nobodyさん
2007/07/13(金) 20:51:11ID:LyxSzMMaID、Passwordはもちろん、名前、住所などもMD5で暗号化するなどして
DBに保存するんでしょうか?
また、DB専用サーバをwebサーバとは別に?作ったりするものなんですか?
0123nobodyさん
2007/07/13(金) 20:57:21ID:???DB別サーバーにするかは、規模に応じて。
あと、Web公開用とは別の用途でDBを使うかどうかも関わってくる。
0124nobodyさん
2007/07/13(金) 21:00:31ID:???0125nobodyさん
2007/07/13(金) 21:09:23ID:???0126nobodyさん
2007/07/13(金) 21:38:57ID:???0127nobodyさん
2007/07/13(金) 21:55:09ID:???これをファイルの種類順にソートさせたい。
どうすればいいんすかえろいひと。
0128nobodyさん
2007/07/13(金) 22:09:50ID:???拡張子順って事なら
$index = glob('*');
usort($index,create_function('$a,$b','return strcasecmp(pathinfo($a,PATHINFO_EXTENSION),pathinfo($b,PATHINFO_EXTENSION));'));
print_r($index);
こんな感じで。
0129nobodyさん
2007/07/13(金) 22:17:15ID:/IV1BAzj(中略)
$SRC=file(SRC_DIR.$delno.".log","r+b");
のソースで以下のようなWarningが出てまともに動作しなくなりました。
Warning: file() expects parameter 2 to be long, string given in
PHP4の時は問題なかったのですがPHP5になってエラーが出るように
なりました。何か内部変更があったのでしょうか?
0130129
2007/07/13(金) 22:22:57ID:/IV1BAzj0132nobodyさん
2007/07/13(金) 23:47:33ID:zCZ7I7UCいきなり「あ」からそれぞれの進数に変換することはできませんよね?
そもそも「あ」というのは何進数なんでしょうか?
0133nobodyさん
2007/07/14(土) 00:48:20ID:TLdn55kSSupport for PHP 4 will be discontinued at 2007-12-31. Please consider upgrading to PHP 5.2.
なんて書いてあるじゃない!!
バンザーイ!バンザーイ!
0134nobodyさん
2007/07/14(土) 01:52:33ID:YEDQCt26preg_match("/<meta name=\"description\" content=\"(.*)<\">/",$meta_desc,$desc);
echo $desc[1];
このように書いたのですが、文字列を抽出出来ません。
どうしたらいいのでしょうか?
0135134
2007/07/14(土) 02:52:15ID:???0136nobodyさん
2007/07/14(土) 03:09:34ID:UxZqEuHTpreg_match("/<meta name=\"description\" content=\"([^\"]*)\">/",$meta_desc,$desc);
0137nobodyさん
2007/07/14(土) 03:09:57ID:???0138nobodyさん
2007/07/14(土) 08:22:14ID:???そういうときはシングルクォートで囲めば? と思うわけだが
0141nobodyさん
2007/07/14(土) 09:47:41ID:???0142nobodyさん
2007/07/14(土) 10:11:10ID:???ホワイトリストでチェックするには変数が多すぎて面倒なのです
0143142
2007/07/14(土) 10:26:17ID:???0144nobodyさん
2007/07/14(土) 10:48:52ID:vAbjevhBx[1]
x[2]
・
・
・
x[15]
とx[〜]の中データが入るようにしました
それを変数に組み込むために↓のようにしたのですが
for($a = 1; $a <= 15; $a++)
{
$XXX[$a] = "".$_POST["x[$a]"]."";
}
$XXX[1]などの中にデータが入ってくれません
どのように記述したらうまく動くのでしょうか
何卒ご教授よろしくお願いします
0145nobodyさん
2007/07/14(土) 11:06:12ID:???普通に
$XXX = $_POST['x'];
でいいだろう…。
個別に入れる場合は
$XXX[1] = $_POST['x'][1];
0147nobodyさん
2007/07/14(土) 11:51:58ID:o7OpzzBdaaa
bbb
// ここまで
↑の改行を含むaaaからbbbまでの変数$stringsを、ファイルの中に一行で書き込みたいのですが
そのまま書き込むと、3行でファイルに保存されてしまいます。
そこで改行を<br />に変換するために
$strings = nl2br($strings)をして、ファイル書き込むようにしました。
今度は改行の前に<br />が追加されただけで、↓のようになりました
aaa
<br />
bbb
どうしたら$stringsの中身を一行分で書き込めるのでしょうか?
0148nobodyさん
2007/07/14(土) 12:05:31ID:???nl2br()は改行を<br>に変換じゃなくて改行の前に<br>を挿入。
$strings = str_replace(array("\r\n","\r","\n"),'<br>',$strings);
0149nobodyさん
2007/07/14(土) 12:29:17ID:o7OpzzBdただ、疑問がわくのですが、この書き込んだ文字をhtmlに出力するとき
htmlspecialcharsを使って無害化しようと考えているのですが、そうすると<br>もタグの効力が失いますよね。
無害化は書き込む前に行うのがいいのでしょうか?
出力するときに無害化する措置のほうが安全だとは思っているのですが・・・
0152nobodyさん
2007/07/14(土) 13:26:43ID:42mprax5のシステムはPHPでどうやって作るのでしょうか?
考えたけどさっぱりわかりません。
どなたか親切な方おしえてください。
0153nobodyさん
2007/07/14(土) 13:32:03ID:???多分、このスレの中の文字列を形態素解析して、
このスレのテーマと距離的に近いスレを表示しているのではないかと。
自然言語学と統計学的処理をしているので、phpの知識ではどうにもならないと思うけど。
0154nobodyさん
2007/07/14(土) 13:38:28ID:???\/ ● 、_ `ヽ ======
/ \( ● ● |つ
| X_入__ノ ミ そんなエサで俺様がクマ――!!
、 (_/ ノ /⌒l
/\___ノ゙_/ / =====
〈 __ノ ====
\ \_ \
\___) \ ====== (´⌒
\ ___ \__ (´⌒;;(´⌒;;
\___)___)(´;;⌒ (´⌒;; ズザザザ
(´⌒; (´⌒;;;
0155nobodyさん
2007/07/14(土) 13:50:04ID:???考え方としては、fopenなどで読み込んだ先のサイト(HTMLソース)を
保存するだけで良いんですかね?
0156nobodyさん
2007/07/14(土) 13:50:23ID:vP7abusR改行は改行コードでしまっておいて無害化した後に改行を<br>に置換じゃだめ?
0157nobodyさん
2007/07/14(土) 13:52:50ID:???テレビの視聴率調査と同じ。
調査用の機器にあたるソフトを配って
それを介して2chにアクセスしたデータを統計的に処理してる。
ただ2chの場合テレビと違ってチャンネル数(=スレ)が異常に多くて
サンプル数まだまだなので、現状では余り精度は良くないらしい。
0158nobodyさん
2007/07/14(土) 13:53:05ID:???実装方式としては問題ないけど、日本でそれをやると著作権法違反になる。
合法的にやるなら、googleのキャッシュに表示されているHTMLを
キャッシュする必要がある。
0159152
2007/07/14(土) 13:56:50ID:42mprax5すいません。ちょっとわかりにくいかも。
cookieを使ってやってると聞いたことがあるのですが。
具体的にgookieを使ってどうやってるのか、わかりますか?
0160nobodyさん
2007/07/14(土) 13:57:28ID:???>gookie
>gookie
>gookie
>gookie
0161nobodyさん
2007/07/14(土) 14:00:28ID:???だから視聴率調査機がフリーソフトであるからそれをインストールして
サーバに視聴情報を送るんだよ。そのソフトの名前がgookie。
0162nobodyさん
2007/07/14(土) 14:07:02ID:???cookieを使おうが使うまいが、それは情報を収集する一手段に過ぎないわけでしょ。
その情報をどう解析しどう集計するかは、自然言語学や統計学(多変量解析など)の知識が必要。
その知識がなけらば誤解析だらけの使い物にならないものが出来上がる。
例えば、phpという言葉だけではphp研究所のphpと言語としてphpの区別が付かない。
どういう文脈でphpが使われているかを調べるのが自然言語処理学であり、
それらの言葉の集合がどのスレの言葉のスレと近いのかを意味的距離を数量的に測るのが統計学。
だから、サーバー側のPG知識だけではどうにもならないよ。
0163152
2007/07/14(土) 14:37:22ID:42mprax5いや、cookieとPHPだけでできると思うんですけど?
0165nobodyさん
2007/07/14(土) 14:50:41ID:???0166nobodyさん
2007/07/14(土) 15:06:19ID:???最後までイメージしてから作り始めないと、
ある時点で壁にぶちあたるよ。
まぁ、とりあえず、作ってみて、
壁にぶつかったら、またこのスレにおいで。
0167152
2007/07/14(土) 15:09:42ID:42mprax5えらそうなこと言ってるけど
簡易版でいいからどうやって作るのか言ってみてよ
0168nobodyさん
2007/07/14(土) 15:27:19ID:???2chは直前に書き込んだときのホスト名をCookieに保存している。
2chの書き込みシステム(bbsdだっけ?これはPHPではなくC言語)で、書き込みをまとめて管理する。
書き込みをするとき、今のホスト名と、Cookieにあるホスト名が一致するとき(つまりIPアドレスが変更されていないとき)、
この人は前書き込んだスレも見ていたことになる。
あとはbbsdから前に書き込んだスレ名を取得すれば完成。
0169155
2007/07/14(土) 16:49:28ID:???そうなんですか!?
でも、別にサイト情報(URLやサイト名)は、取得しても問題ないですよね?
てか、googleも日本サイトの情報を保存している気が・・。
0170nobodyさん
2007/07/14(土) 17:17:06ID:???0171 ◆ykYUYrisZU
2007/07/14(土) 18:17:19ID:2KBXWsYs1. Number 2. Number 3. Number 4... という風に表示したいと考えています。
いろいろ試したのですが、配列操作が苦手で取り出し方がよくわからず困っています。
わかる方教えていただけると助かります。よろしくお願いします。<(_ _)>
こんな感じの配列がひとつの変数$dbに格納されています。Irekoの配列数は固定ではありません、Irekoの数が10や8と多いものもあります。NumberとTitleは必ず用意されています。
array(1) { ["Data"]=> array(3) { ["Number"]=> string(8) "AX14222411" ["Title"]=> string(21) "リンゴ"
["Ireko"]=> array(1) { ["Data"]=> array(3) { ["Number"]=> string(8) "AX2429561" ["Title"]=> string(15) "オレンジ"
["Ireko"]=> array(1) { ["Data"]=> array(2) { ["Number"]=> string(8) "AX221531" ["Title"]=> string(22) "レモン" } } } } } }
0173nobodyさん
2007/07/14(土) 19:52:55ID:IGNHoFx0適当に作ったから、見にくくてあんま綺麗じゃないけど勘弁な、
#!/usr/bin/php -q
<?php
$db = array(
"Data" => array("Number"=>"AX14222411","Title"=>"リンゴ","Ireko"=> array(
"Data" =>array("Number"=>"AX2429561","Title"=>"オレンジ","Ireko"=> array(
"Data" =>array("Number"=>"AX221531","Title"=>"レモン",),),),),),);
$ret = array();
get_hoge($db,$ret);
var_dump($ret);
function get_hoge($arr,&$ret){
if(!isset($arr["Data"])) return true;
foreach ($arr["Data"] as $k => $v){
if("Number"==$k){
$ret[]=$v;
}
if("Ireko"==$k){
get_hoge($v,$ret);
}
}
return true;
}
0174nobodyさん
2007/07/14(土) 20:05:14ID:o7OpzzBdお礼が遅くなってすみません。
ありがとうございます。
0175 ◆ykYUYrisZU
2007/07/14(土) 20:15:57ID:2KBXWsYs素晴らしいです!!!!
これでやりたかったことができます。
ありがとうございました。
0176nobodyさん
2007/07/14(土) 20:34:41ID:v9du19eYしかし、FLASHからPHPのページへgetURL()を使って飛び、更新すると何回も重複してランキングに追加されてしまいます。
原因が分かる方がいましたら、回避する方法をお願いします。
0178nobodyさん
2007/07/14(土) 21:14:22ID:???特定の規則に挟まれた文字列を変換することは出来ますか?
(挟まれた文字列は特定不可)
例えば
177 名前:nobodyさん :2007/07/14(土) 20:57:20 ID:???
~~~~~~~~~~
↑の名前部分は、
・数字、空白、既定文字列「名前」、コロン
と
・2007で始まる数字
の間にある、ということ以外は不規則ですが、
このようなものも変換できますか?
また可能ならば、具体的なコードを教えてもらえるとありがたいです。
宜しくお願いします。
0180nobodyさん
2007/07/14(土) 21:32:13ID:v9du19eY返答ありがとうございます。
それはランキングへ追加したあとheader("Location: http://");で飛ばすということでしょうか?
ですが、違うページへ飛しても再び前のページ(ランキングのPHPが記述された)へ戻り、更新を押すと再びランキングに重複してしまいます。
失礼ですが他の方法は無いでしょうか?
0181nobodyさん
2007/07/14(土) 21:33:17ID:???自分で答えかいてるじゃん、そのまんま正規表現つくってみ。
ついでに答えも書いとくが、文中にこのフォーマットの引用がある場合にも引っかかるだろうから、あとはうまく調整汁
#!/usr/bin/php -q
<?php
$str = '177 名前:nobodyさん :2007/07/14(土) 20:57:20 ID:???';
$nm="ななすさん";
$ret = preg_replace('/^(\d{1,3}\s名前:)(.+)(\s:\d{4}\/\d{2}\/.+)$/',"\\1$nm\\3",$str);
echo $ret;
0182nobodyさん
2007/07/14(土) 21:35:37ID:???最初に<?phpを書かずに、起動後すぐに
>phpのプロンプトを出すにはどう設定したらよいでしょうか。
0183nobodyさん
2007/07/14(土) 22:32:23ID:???リファラーみればいいだけじゃね?
実際正確かどうかなんて分からないし
直前+現在のスレにお互いカウントアップ。
もしくはセッションにスレUIDを追加していって
読み込んだ時に仮に5つくらいになっていた場合に
それらをカウントアップ&セッションクリア。
0184183
2007/07/14(土) 22:51:03ID:???0187nobodyさん
2007/07/14(土) 23:45:04ID:IGNHoFx0--with-readline つけてコンパイルした 5.1 以降をつかえばOK
最近のだと初めからなってる気もするが。
あと質問するときsageてると、釣りにみえて返答もらえないかも
0189nobodyさん
2007/07/15(日) 01:18:51ID:gHFsqArWちょっと、情報がアバウトなんで何とも言えないが、
IEって、swfファイルを一度既に読み込んでいる場合、リロードしたときにキャッシュのswfが優先される現象が確かあった気がする。
んで、リロードしたときに本来期待している初期化処理が走らない。
ちなみにFirefoxでは起こらない。
もし176の言っている現象がFirefoxで起こらないのならばたぶん原因は同じ。
面倒だから、phpでセッションつかって、投票完了時に
$_SESSION["is_vote"] = true; とかつっこんで、
投票処理始める前に
if(isset($_SESSION["is_vote"]) && $_SESSION["is_vote"]) return ;
みたいにして重複カウントアップしないとかやってみれば?
0191nobodyさん
2007/07/15(日) 03:41:41ID:???0192nobodyさん
2007/07/15(日) 03:53:24ID:X91+gITL返答ありがとうございます。
すみません、言い忘れていたのですが実はブラウザは携帯なんです。
ですが更新しても初期化されないことから、IEと変わらないと思いますが…
書いてくださったスクリプトを記述してみましたが、やはりランキングに追加されてしまい出来ませんでした。やはり記述が悪いのでしょうか?
0193nobodyさん
2007/07/15(日) 03:54:43ID:X91+gITL<?php
$name = htmlspecialchars($_GET['name']);
$meter = htmlspecialchars($_GET['meter']);
$rank = file("rank.txt");
if(isset($_SESSION["is_vote"]) && $_SESSION["is_vote"]) return ;
if ($meter) {
if (!$name) $name = "名無しさん";
for ($i = 0; $i < count($rank) + 1; $i++) {
if ($i < count($rank)) {
list($n, $m) = split("\t", $rank[$i]);
$m = rtrim($m);
} else $m = 0;
if ($meter > $m) {
array_splice($rank, $i, 0, "$name\t$meter\n");
break;
}}
if (count($rank) > 20) array_pop($rank);
$fp = fopen('rank.txt', 'r+');
flock($fp, LOCK_EX);
ftruncate($fp, 0);
for ($i = 0; $i < count($rank); $i++) fputs($fp, $rank[$i]);
fclose($fp);
$_SESSION["is_vote"] = true;}
for ($i = 0; $i < count($rank); $i++) {
list($n, $m) = split("\t", $rank[$i]);
$m = rtrim($m);
print "<tr><td>" . ($i + 1) . "</td><td>$n</td><td>{$m}m</td></tr>\n";
}
?>
</table>
分かる方がいましたら、お願いします。
0194nobodyさん
2007/07/15(日) 04:12:30ID:gHFsqArWとりあえずぱっと見session_start();が必要 →生成と破棄の詳細はsession周りのマニュアル参照
ただ、session(クッキー)が使えない機種もあるからなぁ。
(flash使える機種でクッキー使えない機種があるかとかは、ちょっと専門外なんでわからん。スマソ)
あと、ファイル書込よりpdo+sqliteとか使う方が良くない?とかおもった
0195194
2007/07/15(日) 04:33:34ID:???ごめ、見直してみたらこれって$_GETで画面遷移してるんだね。
actionscript側のgetURL();でGETで渡してきて、(sessionの部分取り除いておいて)
リロードしたらそりゃカウントアップされるわな。リロードする度に常にURLに?name=hoge&meter=100 とかついてるんだもん。
0196194
2007/07/15(日) 04:39:11ID:???んで、getURL()って第三引数に"POST"、ってやればPOSTで渡せるから、そっちで何とかすれば。
PHPっていうよりASの話だね
0197nobodyさん
2007/07/15(日) 10:30:18ID:X91+gITL返答ありがとうございます。
session_start();をif(isset($_SESSION〜の前に書いてみましたが、やはり無理でした。
実は先程記述したランキングのPHPスクリプトは、とあるサイトに書いてあったものなんです。
私は一から記述できるようなスキルがないので、調べてみましたがpdo+sqliteは分かりませんでした。
そして言われた、GETをPOST((phpも同様)にし、URLの末尾に付加しないようにしても、更新すると重複してしまいます。
以下はFlash側の記述です。
on(press) {
FSCommand2("Escape",name,"name");
getURL("http://〜.php","_blank",POST);
}
0198nobodyさん
2007/07/15(日) 10:50:03ID:???index.phpの中にFlashをインクルード、セッション発行
↓
カウント用のページにジャンプ
↓
チェック
↓
条件判断→重複ならカウントしない
↓
カウントする
セッションに含める情報「リファラ、ip、ユニークid、日付、2chでいうハナモゲラなどのキーワード」この情報吟味して考えろ
0199nobodyさん
2007/07/15(日) 12:45:45ID:70v71ZEEbgd_colorを不透明にしないと黒くなるから、何かしらリソースの背景に問題がありそうなんだが、どこをいじればいいのか見当がつかない。
ignore_transparentはphp4だから確認できない。
これがGDの限界ってやつですか/^0^\フッジッサーン
だれかおせーて
0200nobodyさん
2007/07/15(日) 12:47:01ID:RgVfRGye・
・
$on_array = explode(",", $string_line1);
$off_array = explode(",", $string_line2);
$op[$d]= $on_array;
$ed[$d]= $off_array;
このように配列を配列の一つの要素
つまり
1周目
$op[0]= $on_array;
$ed[0]= $off_array;
2周目
$op[1]= $on_array;
$ed[1]= $off_array;
と各$op[〜]の中に取り込みたいのですがうまくいきません
具体的にどのように記述したら動くのでしょうか
何卒ご教授宜しくお願いします。
0202nobodyさん
2007/07/15(日) 13:46:16ID:???各ループの$string_line1と$string_line2はどうやって取得するのよ
毎回同じ内容じゃないんだべ?
0203nobodyさん
2007/07/15(日) 14:00:02ID:RgVfRGye$fp = fopen("$op", 'r');
$string_line1 = fgets($fp);
$fp = fopen("$en", 'r');
$string_line2 = fgets($fp);
このようになっています
ちなみに今現在、多次元配列を試しています
0204nobodyさん
2007/07/15(日) 14:07:11ID:L0tNCdex一回起動をかけますと、終了するまで7時間程度かかります。
しかも、このプログラムが負荷が高いため、実行して20分程度経過しますと、
CPUの温度が75度を超えBIOSから異常を知らせるメッセージが表示されっぱなしになり、
焦げ臭い嫌な臭いが部屋中に立ち込めてしまいます。
仕方なく、1000件数処理するごとにsleepコマンドで60秒自動休止するような
やり方にしているのですが、他にいい方法はないでしょうか?
スクリプト言語なのでしょうがないかもしれませんが、いいアイデアを頂けると幸いです。
宜しくお願いします。
0205nobodyさん
2007/07/15(日) 14:15:01ID:???うーん。ループさせてる範囲を{ 囲んで }みて。
$fp = fopen("$op", 'r'); $string_line1 = fgets($fp);
$fp = fopen("$en", 'r'); $string_line2 = fgets($fp);
$on_array = explode(",", $string_line1); $off_array = explode(",", $string_line2);
$op[$d]= $on_array; $ed[$d]= $off_array;
0207nobodyさん
2007/07/15(日) 14:17:45ID:???0208nobodyさん
2007/07/15(日) 14:19:18ID:70v71ZEEダメだった。うーむ
>>204
無茶しすぎじゃね?
>>203
配列の名前を変えてみたら
パスと配列の変数名が同じだからじゃないの
0209205
2007/07/15(日) 14:20:30ID:???ていうか、毎回 fopen してたりもしない?」
というのが知りたくてループ範囲を示して欲しかっただけなんだけど、
頑張るのはいいことだと思います。
0211nobodyさん
2007/07/15(日) 14:25:20ID:???マジレスで、プログラムの組み方に問題が無いのなら
低発熱の速いCPUに換えて冷却をしっかりする。 会社なら空調を何とかする。
CPU使用率100%で20分連続稼働出来ないのは異常
それ原因ってphp側というより
DB側のインデックス不備とか 結合の仕方が悪いSQLとかに原因有るんじゃないか?
phpでぶん回して集計かけるんじゃなくて、ストアドプロシージャ使ったり出来ないの?
後は、
sleep(60) じゃなくて ループ内で usleep(5000) とか、
メモリ使い切ってswapアウトしてしまうのなら、適宜不要になったarrayを明示的にunsetするとか。
とりあえずsarで計測したりしながら何がボトルネックか探ったら?
0212nobodyさん
2007/07/15(日) 14:33:33ID:RgVfRGyeなんとか多次元配列で解決できましたお騒がせして申し訳ありません
それと、ありがとうございました。
0213nobodyさん
2007/07/15(日) 14:40:30ID:L0tNCdex詳しいレスありがとございました。
言われてみると、プログラムというよりハードかもしれませんね。
プログラムは、画像データから特定のパターンを識別するために、
膨大な計算量を必要とするプログラムを組んでいまして、
アルゴリズム的にこれ以上スマートにするのが難しいのが現状です。
CPUが2年前のものなので、買い替えを検討したいと思います。
あと、度々で恐縮なのですがsleepとusleepは引数の単位が違う以外に
内部的な処理で違うものなのでしょうか?マニュアルを見たのですが、
エイリアスでもないようなので、教えていただけたら幸いです。
あと、sarを検索で掛けたのですが、それらしいものが引っかからなかったのですが、
これはベンチマークの計測ソフトとかでしょうか?
0214nobodyさん
2007/07/15(日) 14:56:25ID:???PHPでやってるのかぁという感想は置いておいて、
usleepはsleepとは単位が違うだけ、(文字通りマイクロ秒単位でスリープ指定できる)
sarについてはとりあえず
ttp://www.atmarkit.co.jp/flinux/rensai/root07/root07b.html のsysstatの項とかを参照してみて。
0215nobodyさん
2007/07/15(日) 15:50:04ID:???0216nobodyさん
2007/07/15(日) 16:38:40ID:???class className{
function fnc(className $var){
$this->var = $var;
return $var;
}
}
上記のとき、fnc(className $var)の箇所の、className $varは何を
意味するのでしょうか?
良かったら教えてください。
0217nobodyさん
2007/07/15(日) 16:40:05ID:???http://www.php.net/manual/ja/language.oop5.typehinting.php
0218nobodyさん
2007/07/15(日) 17:25:13ID:???0219獅子王
2007/07/15(日) 17:37:04ID:EW+ZDItZperlをダウンロードしようと思うのですがそのダウンロードサイトでどのようにすれば
ダウンロードできるのかわかりません。どなたか教えてはくださいませんでしょうか?
0220nobodyさん
2007/07/15(日) 17:52:32ID:???0221nobodyさん
2007/07/15(日) 17:54:50ID:EKF0p7g8どのような計算式で書けばよいのでしょうか?
0222nobodyさん
2007/07/15(日) 17:56:09ID:???クレクレはスレ違い
0223獅子王
2007/07/15(日) 17:57:12ID:EW+ZDItZ0224nobodyさん
2007/07/15(日) 18:35:26ID:70v71ZEE回転させるリソース(a)と、回転させた後のリソース(a_dash)にも一応使ってる。
bgd_colorの透明度を最大にすると全体が黒くなって、不透明にすると回転縮小した部位の背景が黒くなる
みたかんじ余白はbgd_colorを黒に重ねた色になる。これだと透明にできない
けれど、もとの画像リソース(a)は出力すれば背景はちゃんと透明で黒くない
どうなっているんだろうか
>>221
imageellipse()かimagefilledellipse()あたりでいいんじゃない
0225nobodyさん
2007/07/15(日) 20:43:31ID:EKF0p7g8ありがとうございます
ですが、関数を使わずにドット打ちでやりたいのです
0226nobodyさん
2007/07/15(日) 23:35:24ID:y01L4ZmBセキュリティの向上を考えるとき、気をつけなきゃいけないこととかありますか?
0228nobodyさん
2007/07/16(月) 00:47:32ID:1gpeo49m課題じゃないんです_| ̄|○
0229nobodyさん
2007/07/16(月) 01:32:48ID:???課題じゃないのになんでそんな面倒な事しなきゃいかんのか分かんないけど
25,25を中心として
for($i =0;$i<2*_PAI;$i+=_PAI/50)
ドット描画(floor(25+20*cos($i)),floor(25+20*sin($i)));
なかんじでいいんじゃね?円周率が_PAIだったかどうか怪しいが。
ステップ数は間が空くようなら適当に変えて。
0230nobodyさん
2007/07/16(月) 02:00:43ID:???ラジアンはM_PIで得られたと思う
0231nobodyさん
2007/07/16(月) 02:15:31ID:AMhU9hfC2週目に入った時に$code[0]のデータがクリアされてしまいます。
配列の使い方が間違っているのでしょうか?
サーバはFreeBSDでPHPは4.4.6です。
for($code=0;$code<3;$code++){
$dat=array($code=>array($d[0],$d[1],$d[2]);
}
0232nobodyさん
2007/07/16(月) 02:31:56ID:???配列じゃんえんだもん
つ$dat[]
0233nobodyさん
2007/07/16(月) 04:53:48ID:???$array = array("みかん"=>"3","なし"=>"2","さくらんぼ"="5");
だとして、
さくらんぼ:5
みかん:3
なし:2
という表示にしたいと思います。keyの数字を降順にして上の表な表示に
することって出来るのでしょうか?出来る場合は、関数などを教えて下さい。
0234nobodyさん
2007/07/16(月) 05:17:53ID:???0235nobodyさん
2007/07/16(月) 05:21:30ID:???0236nobodyさん
2007/07/16(月) 06:28:23ID:eChNNpaq0237nobodyさん
2007/07/16(月) 07:31:59ID:OjCJuTb6php_mbstring.dll が見つからないというエラーが発生して困っています。
php.iniで extension_dir = "C:/php/ext" も確認して、実際のファイル構造と
一致してるようなんですが、、 なにが原因でしょう
教えてください、よろしくおねがいします
0238nobodyさん
2007/07/16(月) 07:33:35ID:???0239nobodyさん
2007/07/16(月) 07:39:04ID:???>>231
もうすこしヒントをやる。
あとは書き換えてつかってみれ
for($i=0;$i<3;$i++){
$dat[] = array($i=>array(1,2,3));
}
echo "<pre>";
print_r($dat);
echo "</pre>";
0240nobodyさん
2007/07/16(月) 08:14:01ID:OjCJuTb6ありがとうございます
extension=php_mbstring.dll
の部分ですよね コメントアウトも解除してると思うんですが、、なにがおかしいのかなぁ…
いろんなサイトを見るとextension_dir = "C:/php/ext" の"を書いてないのもあったり、
ext/ としてるのもありで、全部試してるんですが、、
0241nobodyさん
2007/07/16(月) 08:21:48ID:???0243nobodyさん
2007/07/16(月) 08:22:39ID:???0244240
2007/07/16(月) 08:34:08ID:OjCJuTb6phpinfoによれば以下のようになっています
extension_dir C:\php\ext\
mbstring
Multibyte Support enabled
Multibyte string engine libmbfl
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 4.4.4
Multibyte regex (oniguruma) backtrack check On
今、pearのインストールをしてるんですが、cmd でgo-pearを
実行すると「php_mbstring.dll が見つからない」とアラートがでています
また、cmd内でも「ext\php_exif.dllがない」とでます。→ちゃんと存在してます
0246240
2007/07/16(月) 09:18:30ID:OjCJuTb6度々すみません エラーは
「PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_exif.d
ll' - 指定されたモジュールが見つかりません。
in Unknown on line 0」
といった感じです(これのファイル違いがいくつもでてくる)
go-pear.pharの最新版も入手済みです
失礼ですが、確認のため質問させてください go-pear.bat自体を新しくするんですか?
0247nobodyさん
2007/07/16(月) 09:27:04ID:???windowsの環境変数でパスを通せ。それでも解決しなかったらまた考えてやる
0248240
2007/07/16(月) 09:52:26ID:???すでに C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe が
指定されてるんですが(ユーザ変数)
C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe;C:\php\go-pear.bat
でいいのでしょうか?
これで試してみてもうまくいかないですが…
設定後、cmd の set で確認すると、
PATH=;c:\mysql\bin;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\MySQL\M
ySQL Server 5.0\bin\mysql.exe;C:\php\go-pear.bat
となってました
0249nobodyさん
2007/07/16(月) 10:02:25ID:???0250240
2007/07/16(月) 10:33:49ID:???ありがとうございます。言われたとおりにしたところ、相変わらずうまくいかないですが
アラートダイアログのメッセージが変わりました!
(mb_string.dllが見つからない というのが出なくなりました
isqlt09a.dll OCI.dll libcs.dll が見つからない というアラートはでます)
問題が発生したため、CLIを終了します というメッセージが出ました
以下のcmdのエラーメッセージは相変わらず出ます。
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_filepro.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_ifx.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_oci8.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_oracle.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_sybase_ct.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
続行するには何かキーを押してください . . .
------
なんなのかなこりゃ、、もうPHPの新バージョンを再インストールした方がいいんでしょうか?
0252nobodyさん
2007/07/16(月) 10:43:17ID:???全部削除してphp.iniをいじらないで動作チェックしてみな
0253231
2007/07/16(月) 11:21:51ID:5Cp5+wVzうまくいきました。
ありがとうございました。
0254240
2007/07/16(月) 11:26:39ID:???ありがとうございます、プラグインの追加はしてません
今、php5.2.3をダウンロードして、php.iniを現行のものに上書きして、
;extension_ のコメントアウト解除 + extension_dir = "C:\php\ext\" だけ
やってgo-pear実行したんですが、変わらないです
やっぱりphp_mbstring.dllがない というアラートと、例のエラーが出ます
ちなみに>>251で書いた.dllのうち、php_filepro.dll以外は"php/ext"に入っています
この構成はDLしたphp5.2.3も変わらないです
まいりました…
0255nobodyさん
2007/07/16(月) 11:42:36ID:???0256nobodyさん
2007/07/16(月) 11:43:18ID:qpslan6h$url = "http://example.com/?下らねぇ質問";
echo rawurlencode($url);
UTF-8で保存し実行すると、
http%3A%2F%2Fexample.com%2F%3F%E4%B8%8B%E3%82%89%E3%81%AD%E3%81%87%E8%B3%AA%E5%95%8F
と出てきます。
これをdecodeすると、
$url = "http%3A%2F%2Fexample.com%2F%3F%E4%B8%8B%E3%82%89%E3%81%AD%E3%81%87%E8%B3%AA%E5%95%8F";
echo rawurldecode($url);
http://example.com/?荳九i縺ュ縺・ウェ蝠
といった感じに文字化けするのですがどうしてですか?
0257256
2007/07/16(月) 11:45:37ID:qpslan6h文字コード指定してなくてブラウザ側でShift_JISで表示されてました。
0258240
2007/07/16(月) 11:45:55ID:???わかりました
もうphpを入れなおすことにしました
それでもうまくいかなかったらまた質問するかもしれないですが
しつこい質問に付き合ってもらってありがとうございました
0259nobodyさん
2007/07/16(月) 12:31:25ID:FZx8tOaQWarning: mb_ereg() [function.mb-ereg]: mbregex compile err: premature end of char-class in /home/htdocs/test/pc/index.php on line 209
0261259
2007/07/16(月) 12:47:49ID:FZx8tOaQif( MB_ereg("あいうえ",$name) ){略}
0262nobodyさん
2007/07/16(月) 13:02:14ID:???http://d.hatena.ne.jp/harupu/20060328#p1
0263nobodyさん
2007/07/16(月) 13:02:27ID:???それ実際のソース?違うよね。
文字クラスが可笑しくてパターンコンパイル出来ないってエラーだから、
マッチパターンをちゃんと書いてくれないとどうしようもないよ。
0265262
2007/07/16(月) 13:16:01ID:???IEのみで確認。operaとfirefoxでは無効。
UTF-8でファイルを作っとくとIEでも無効
EUCとSJISで造ってる人はは対策すべし
0266262
2007/07/16(月) 13:19:00ID:???10サイト中、7個はXSSが可能。
認知度が低すぎ
0269nobodyさん
2007/07/16(月) 15:38:06ID:eChNNpaqナンバーの若い順にソートしたいのですがうまくいきません。
ID、ナンバー、好きな食べ物、好きな音楽
1,330,apple,pank
2,1024,orange,laten
3,22,budou,heeling
4,35,banana,rock
5,1,kyuui,classic
コードはこちらです。
$ary[0] = array("1","330","apple","pank");
$ary[1] = array("2","1024","orange","laten");
$ary[2] = array("3","22","budou","heeling");
$ary[3] = array("4","35","banana","rock");
$ary[4] = array("5","1","kyuui","classic");
array_multisort($ary, SORT_NUMERIC);
お手つきでしたらご指摘よろしくお願いいたします。
0270nobodyさん
2007/07/16(月) 15:44:09ID:???0271nobodyさん
2007/07/16(月) 15:49:34ID:???array_multisort()は列方向の配列が必要で面倒だから
usort($ary,create_function('$a,$b','return $a[1] - $b[1];'));
とかでいいんじゃね。
0272nobodyさん
2007/07/16(月) 15:55:48ID:eChNNpaqありがとうございます。思ったとおりの結果になりました。
私にはこのコードがなにをしているのか理解できないのでマニュアル見て勉強してみます。
0273nobodyさん
2007/07/16(月) 15:59:58ID:eChNNpaq2つも勉強させていただきました。ありがとうございます。
0274259
2007/07/16(月) 16:10:36ID:FZx8tOaQ入ります。それ以外はソースそのままです。
if( MB_ereg("あいうえ",$name) ){略}
0275nobodyさん
2007/07/16(月) 16:22:55ID:f3MIb3UOダウンロードツールでjpegファイルを連続でダウンロードされてるみたいです。
回避できる方法はありますか?
ご存知でしたらお教えください。
m(__)m
0276275
2007/07/16(月) 16:24:54ID:f3MIb3UOずるぽんあぷろだを使っています。
0277nobodyさん
2007/07/16(月) 16:52:19ID:???だからなんでそれを書かないのかと。
SJISでゼとか入ってて[とバイナリが被ってるんじゃない?
mb_regex_encoding()でちゃんと文字コードを指定すること。
0278nobodyさん
2007/07/16(月) 16:59:57ID:eChNNpaq0.5秒おきに手動でリロードしているのですが、
CPUの負荷が50%を超えてしまいます。
fileの読み込みはあまりしないようなプログラミングを心がけるべきでしょうか?
何度も恐縮ですがお手つきでしたらアドバイスお願いいたします。
0279nobodyさん
2007/07/16(月) 17:34:37ID:???fileの読み込みに限って言えば、それだけでCPU負荷が高まるようなものではない。
CPU負荷は他の処理が影響していると思う。
0280nobodyさん
2007/07/16(月) 18:33:35ID:???0281nobodyさん
2007/07/16(月) 19:12:08ID:???1)
UAとリファラを見るようにして、ツールのライトユーザーを弾く。
→ 弾いた場合はどこかにheader()で飛ばす
2)
閾値以上の連続リクエストにはウェイト(待ち時間)をわざと入れて、リクエストの負荷を減らす。
→
閾値を連続リクエストにはペナルティで 1秒 × 連続リクエスト回数累計の2乗 * 0.2 とか わざとsleep (待ち時間は適当)
とか、
閾値を超えた連続リクエストにはheader('HTTP/1.0 403 Forbidden');とか返すとか
UAもリファラも偽装できるから、スクリプトかかれたら弾けないけどね。
ダウンロードする側も、自作で上手にスクリプト組んだら実質防御出来ない。
0282nobodyさん
2007/07/16(月) 19:17:34ID:???後は、nec.co.jpやSOMY.CO.JPなどの大手ホストだけ特別に扱うなどの処理をするとか。
0283nobodyさん
2007/07/16(月) 19:19:23ID:I4aE+UQmしかしGZIP圧縮した容量が20MB超えたら、PHPでメモリーリミットエラーがおきてしまいました。
現在PHPのメモリーリミットは256MBに設定してあります。
これ以上増やす事も出来ないのですが、何か代替策はないでしょうか?
FTP関数は許可していないので使えません。
同じサーバーにバックアップデータを置いておくとクラッシュしたときにバックアップごとふっとんでしまうので、別のサーバーもしくは手元に毎日置いておきたいです。
手動で毎日ダウンロードするって言うのはなしでおねがいします。
0285nobodyさん
2007/07/16(月) 19:28:10ID:???そもそも256に設定しているのに20で落ちるのがおかしいと思うけど。
あとは、毎日ではなく毎時でやるとか。
0286282
2007/07/16(月) 19:29:03ID:???PHPからCを呼び出して、Cで取得するしかない。
0290nobodyさん
2007/07/16(月) 19:33:01ID:???まずハードから見直すことを考えましょう。
サーバーで重要なデータを扱う場合には、RAIDを組むのが普通です。
後は、DBのバックアップツールで別のHDDに定期的にコピーするとか
0291nobodyさん
2007/07/16(月) 19:56:02ID:???とりあえず案としてはテーブル単位でやってみたら
問題解決の手順として
本当にメモリーエラーなの? ってのが気になる。
本当なら、まずはどこでメモリーエラーになっているか調べなさいな
とりあえずそっからでしょ
>>288
差分でとるにしても
バックアップのスケジュールのどこかでフルバックアップしないと破綻するから
結局根本解決にはならんのでは ※今回のケースの場合な
0293nobodyさん
2007/07/16(月) 20:12:30ID:???0294nobodyさん
2007/07/16(月) 20:17:26ID:???MACアドレスが主流になってくるよ。
0295283
2007/07/16(月) 21:03:22ID:uy8jxOc+PHPのMemory_limitは間違いなく256MBです。
出来るなら毎時の方がいいのですが……とりあえず今は毎日でやっています。
>>287
scp、rsyncについて調べてみます。
>>288
差分バックアップは復元の時に、めんどそうですね。 案に考えて見ます。
>>289
HTTP関数だけで別サーバーに転送できるんですか?
別サーバーからfile_get_contentsやfopenでそのデータを開いて、そのサーバーに保存するとかではないですよね?
>>290
現在うごいているサーバーに新しく物を入れるのは……ちょっとためらってしまいます。
最初からRAID組んでおけばよかったですね…
>>291
テーブル単位だと……一番大きなデータベースで120個くらいのテーブルがあって、新機能と同時にテーブルも追加されているので、難しそうです。
telnetからCRONのシェル実行してやると、メモリーエラーのPHPが帰ってくるので、間違いはないと思いますが…
>>292
シェルスクリプトでsendmailまで通してしまえばいいんですね、そこは盲点でした。
簡単に組もうと思ってPHPでやってました。
とりあえず、いただいたアドバイスでやってみて、また報告します。
0296nobodyさん
2007/07/16(月) 21:53:18ID:???HTTP関数だけで別サーバーに転送できるんですか?
別サーバーからfile_get_contentsやfopenでそのデータを開いて、そのサーバーに保存するとかではないですよね?
クライアントからPOSTしてサーバーにデータを送るのと一緒で、
サーバーから別サーバーへPOSTすればいいだけ。
0297nobodyさん
2007/07/16(月) 22:14:19ID:???0298nobodyさん
2007/07/16(月) 22:15:44ID:???実際に変更することはかなりの難関だけど
0299283
2007/07/16(月) 22:17:16ID:cqqgBieafsock関数を使うって事ですね。
だけど、これ受け取り側のPOST_MAX_SIZEとかMEMORY_LIMIT、UPLOAD_MAX_FILESIZEを相当大きくしないといけないですよね…
20MBのGZIPをPOSTするのに、どれくらいの設定にすればいいのだろう……
0300nobodyさん
2007/07/16(月) 22:26:19ID:???メールで送ったりPOSTするのかよ。
バックアップを保管しておく側のマシンが
SFTPクライアントで自動で一日一回取りに行けばいい。
クライアントマシンのCRONかタスクスケジューラ使えよ。
0301nobodyさん
2007/07/17(火) 00:31:18ID:???NICの故障交換ごときでMACアドレスが
コロコロ変わると管理が面倒くさいので
NICのツールで大抵変更できるようになっている。
ベンダーコードの部分まで変更できちゃったりするけど。
ipconfigにはそういった機能はないんではないかね。
ありそうなのはデバイスドライバの設定メニューのところとか。
0302275
2007/07/17(火) 10:12:03ID:7P0i756Lありがとうございます。
難しそうですが試行錯誤してみます。(実はチンプンカンプンです・・・orz)
0303nobodyさん
2007/07/17(火) 10:27:38ID:???0305nobodyさん
2007/07/17(火) 10:57:54ID:???ifconfigじゃたぶんムリ
たぶんLinuxの場合ioctl(2)とかを叩く必要があるはず。
その手のユーティリティがあるかもしれないけど。
それと、TCP/IPのソケットから相手先のMACアドレスを知る方法ってあるの?
つか、MACアドレスってイーサネットのルーティングでしか使わん情報で、
PPPとか、IPを経由した時点で消えると思っていたけど...
IPv6ならサフィックスとしてMACアドレスを使う場合もあるはずだから取れるかも。
0306nobodyさん
2007/07/17(火) 11:04:17ID:uhiZpK63そういう関数ってありますか?
0307nobodyさん
2007/07/17(火) 11:15:28ID:???0309nobodyさん
2007/07/17(火) 13:38:28ID:uhiZpK63Bページを開いたときに「音楽ファイル」を開いて
で、AページとBページを行き来すると、
ページを開くたびにファイルを読み込むのも負荷が気になるんです。
別ページに移動してまた同じページにもどってもinclude_onceはまたファイルを読み込みますよね?
Cookieだとさすがに量が多いので別の方法ってないでしょうか?
0310nobodyさん
2007/07/17(火) 13:47:26ID:???サーバーサイドなPHPでクライアントのメモリはどうこう出来ないだろ。
クライアント側に置きたいならクッキー以外無いでしょ。
いまいちやりたい事が分からないから、やりたい事と想定しているファイルの容量と種類を晒せば何か助言があるかもね。
0311nobodyさん
2007/07/17(火) 13:52:53ID:???それはクライアント側が決めることだから無理。
0312nobodyさん
2007/07/17(火) 13:59:28ID:???ただし更新させるのが難しくなるがな
0313nobodyさん
2007/07/17(火) 14:04:09ID:???そんなに気になるなら、PHP無関係なように静的なhtmlを吐き出しておけばいいやん。
それ以前に、サーバ側でキャッシュ使って改善できんのかとも思う。
0315nobodyさん
2007/07/17(火) 14:11:52ID:uhiZpK63ファイルの更新日時をクッキーに記録して、クッキーに保存されている記録と照らし合わせて
新しかったら読み込ませず、古かったらinclude_onceをかませようと思います。
いろいろと助言くださって助かりました。ありがとうございます
0317nobodyさん
2007/07/17(火) 14:26:43ID:???目的が不明瞭だが もし使って良いのなら、
ajax + レスポンスでhtmlを返して、<div id="hoge"></div> の間をinnerhtml書き換えすることでうまくいく。
(部分更新するデータのみ読み込み出来る。)
0318nobodyさん
2007/07/17(火) 15:14:48ID:???0319nobodyさん
2007/07/17(火) 15:58:21ID:R00cIuyl絵文字を表示するときは、Unicodeでの表示が良いのでしょうか?
3キャリア対応でキャリア別に絵文字を表示させたいのですが、
何かアドバイスがあればよろしくお願いします。
0320nobodyさん
2007/07/17(火) 16:37:38ID:???うちも似たようなことやってる。include(require)は結構応用がきいて便利。
メソッド内部でよみこめば$this参照ができてメソッドを使えるし、部品ごとにわけれてソースが綺麗になる。
なにより分解していくとかなり使い回しを意識してコードを書けてる気がする。
>>319
なんでもいい気がする。Unicodeにすれば
?(SJIS)と?xE63E;(Unicode)で同じ文字になってたらそれでいいんじゃない
0321nobodyさん
2007/07/17(火) 19:04:22ID:k2OQL4pVforの繰り返し処理で値を参照し、数字が出た場合
その要素を、その数字のキーを持つ配列の直後に並べ変えたいのですが、
可能ですが?
(例)
rei[1]="いぬ"
rei[2]="ねこ"
rei[3]="こねこ"
rei[4]="1"
rei[5]="ぬこ"
を
rei[1]="いぬ"
rei[2]="1"
rei[3]="ねこ"
rei[4]="こねこ"
rei[5]="ぬこ"
こんな感じです。
宜しくお願いします。
0322nobodyさん
2007/07/17(火) 19:09:18ID:???0323nobodyさん
2007/07/17(火) 19:12:15ID:???・配列のキーを取得
・キーに1を足す
・配列の値に↑の値があるかチェック
あとは自分で考えろ
0324nobodyさん
2007/07/17(火) 19:14:54ID:???phpからプロクシ的に操作したいのですが、
どのようにすればよいでしょうか?
readfile( 'http://example.com/hoge.cgi?m=test' );
としてみましたが
script not found or unable to stat: /home/taro/public_html/hoge.cgi
となぜかphpを設置したサーバーのパスで、「ファイルが存在しない」というエラーが出ます
0325nobodyさん
2007/07/17(火) 19:21:19ID:???0326nobodyさん
2007/07/17(火) 19:56:28ID:???0327nobodyさん
2007/07/17(火) 20:37:42ID:???今、php5.2.3をインストールしてphp.iniの編集をしてたんですが、
mbstring.script_encoding の指定がありません
(以前使ってた5.2.0ではあって、euc-jpを指定しています)
これは気にしなくていいものなんですか?
0328nobodyさん
2007/07/17(火) 20:45:29ID:???0329nobodyさん
2007/07/17(火) 21:49:25ID:iq9KHvpN基本は理解できているのですが、
classを利用したプログラミング、また、
オブジェクト指向の概念が理解できません。
本を買ってclassの基本構造などは理解しましたが、
自分で書くとなるとどのような場面で
どういったclassを書けば良いのか
さっぱり検討がつかない状態です。
このような段階(レベル)から一段ステップアップする為には
どうしたらよいでしょうか?
習得にあたって参考になった書籍や、
経験に基づく習得方法などを教えてください。
購入した書籍
■はじめてのPHP5プログラミング エキスパート編 (単行本)
■いちばんやさしい オブジェクト指向の本 (新書)
0330nobodyさん
2007/07/17(火) 21:56:16ID:???に対する内容をテンプレに入れたらどうだ
0331nobodyさん
2007/07/17(火) 22:06:09ID:???オブジェクト指向分析・設計関連の本でも探してみては
あとは経験かなぁ
補助本としてなら
デザインパターン入門 結城浩
リファクタリング入門 結城浩
UMLモデリングのエッセンス マーチン・ファウラー
0332nobodyさん
2007/07/17(火) 22:09:59ID:???自分の経験と記述を比較してみるってこともしないとね。
オブジェクト指向って、実践知の最たるものだから。
ごちゃ混ぜの中から自分の経験をパターンの合わせてトレースしてみること。
0333329
2007/07/17(火) 22:24:46ID:iq9KHvpN早速のレスありがとうございます。
経験が重要ということですね。
仕事で書いているわけではないので、参考書籍を紐解く以外に
なかなか経験値を積めないのが悩みです。
各種ライブラリやフレームワーク(MVC)などの
次のステップに早く進みたいので、
classを利用したプログラミングをなんとかマスターしたいです。
また、Rubyでオブジェクト指向を理解したという人や、
Objective-Cなどでweb以外ものを作るとわかるかもという意見もあるようですが、その他にも分かり易い方法などがあればアドバイスをお願いします!
0334nobodyさん
2007/07/17(火) 22:32:46ID:???意識しすぎて無闇に不必要な物まで小分けして可読性が低くなったら本末転倒だしね。
>>332の言ってるように実際に概念的な事柄だけ頭の隅に置いておいて
幾つか自分で作ってから本を読んで当てはまりそうな部分を掘り下げて
リファクタリングしていったほうがいいんじゃないかと
オブジェクト指向を理解していない俺様が講釈たれにきましたよ。
0337nobodyさん
2007/07/17(火) 22:37:12ID:???ライブラリやフレームワークなんてオブジェクト指向の最たるものだから
順番やステップとかきにしないでやりたいことを
とりあえずやってみた方が飛び越えてから理解できるってこともあるし
やってみてもいいんじゃまいか?
0338nobodyさん
2007/07/17(火) 22:37:38ID:???だからウダウダ言ってないで
PEARみたいなライブラリなりFWなりのソースひたすら読んで
自分でとにかく書いて気づいていくしかねーんだよこのタコ
「OOPを理解した!」なんてもんはそんな気がするだけだ
OOPに近道なんざねーよ
0340nobodyさん
2007/07/17(火) 22:50:15ID:???OOPは自分が必要に思えるようになるまで必要ない。(仕事の場合は除く)
0345nobodyさん
2007/07/18(水) 00:50:01ID:???俺たちは殺生していないと詭弁を弄するアホな坊主とオマエら一緒だな。
恥を知れよ。
0346nobodyさん
2007/07/18(水) 00:53:21ID:???0347nobodyさん
2007/07/18(水) 00:58:57ID:???オマエモナー
0350nobodyさん
2007/07/18(水) 01:29:22ID:???指定することで、mbstring.script_encodingディレクティブが有効になる。
これはソースをSJISで書いているときに必要になるぐらいのもの。
0351nobodyさん
2007/07/18(水) 02:02:13ID:PiKxEDAI以下の様にpreg_replaceで$srchtmlに格納されてますタグの置換を行っています。
$styleには
color="#FF0000" size="4"
がちゃんと取り出されてるのですが、サブルーティンでexplodeしようとすると
検索されません。
Array[0]=' color="#FF0000" size="4"'
となってしまいます。試しに、ほかのキー「FF」で試しても同じでした。
試しにfunction fontcss内で
$myarray = explode(" ","hoge hoge huga huga");
としますと、こちらは問題なく、検索されて配列になります。
ど、どなたかお知恵を。。。
$search = array ('/<font(.[^>]*)>/','!<div id="([0-9][0-9])">!');
$replace = array ($this->fontcss("$1"),$this->divconv("$1"));
preg_replace($search, $replace, $srchtml);
function fontcss($style){
$myarray = explode(" ",$style);
....
}
0352nobodyさん
2007/07/18(水) 02:08:55ID:???0353nobodyさん
2007/07/18(水) 02:10:46ID:???0354nobodyさん
2007/07/18(水) 02:42:34ID:???それだと$replaceにはその時点での関数の返り値が入るだけになってしまうから、
おそらくあなたがしたいのはこちらではないかな?
http://jp.php.net/preg_replace_callback
0357nobodyさん
2007/07/18(水) 12:58:43ID:FfDpKpOgmixiでは「c:\hoge\123.jpg」と確認ページに出てるのですが。
print_r($_FILES);
print_r($_REQUEST);
print_r($_POST);
ファイル名しか見当たりません…
0358nobodyさん
2007/07/18(水) 13:02:33ID:???0359nobodyさん
2007/07/18(水) 13:05:23ID:EIaU60X90360nobodyさん
2007/07/18(水) 13:15:56ID:???どこにも格納されていない
なのでJS使って自前でPOST
>>359
何のボタンなのかわからんので答えられない
0361nobodyさん
2007/07/18(水) 13:23:47ID:EIaU60X9追加ボタンを押したらSQL文を使ってデータベースに追加したいんです
0363nobodyさん
2007/07/18(水) 13:48:29ID:EIaU60X9そのSQL文がよくわからないんです
一応参考書どおりに書いたんですけど反映されません
0364nobodyさん
2007/07/18(水) 13:53:31ID:???0365nobodyさん
2007/07/18(水) 14:01:56ID:2QFnxZCZ0366nobodyさん
2007/07/18(水) 14:01:59ID:???0367nobodyさん
2007/07/18(水) 14:02:56ID:???肝の「正規表現で改行部分を修正」というのが自信がありません。
$text_data = preg_replace("/\r\n$/m", "\n", $text_data);
↑これでモウマンタイでしょうか?
0369nobodyさん
2007/07/18(水) 14:09:50ID:???hoge_tblという名前のテーブルにhogei(int型)とhoget(text型)というカラムに入れる場合は
INSERT INTO hoge_tbl(hogei,hoget)values(1,'ああああああ')
を実行する
テーブル名とカラム名は時分の設計したDBにあわせて変更すること
あとは試行錯誤するか他の暇なやつが現れるのまて
0370nobodyさん
2007/07/18(水) 14:15:01ID:FfDpKpOg>>なのでJS使って自前でPOST
onclickで複合技なのですね、ありがとうございます。
0371nobodyさん
2007/07/18(水) 14:20:39ID:???暇じゃないが、一言いっておくと、そのSQLだとvaluesが小文字になっているから動かないよ。
あと、テーブル名も大文字にしておかないと、Windowsでは動くけどLinux上では動かなくて慌てる。
どうしてかは、もう分かったよね?
0372nobodyさん
2007/07/18(水) 14:24:50ID:EIaU60X9ありがとうございます
SQL文はできたと思うんですが
ほかに足りないステートメントがあるんでしょうか
0373nobodyさん
2007/07/18(水) 14:26:26ID:???0374nobodyさん
2007/07/18(水) 14:27:50ID:bXBOiS7Y<?xml version="1.0" encoding="Shift_JIS"?>
header('Content-Type: application/xhtml+xml');
を記述すると、どうしてもファイルのダウンロードになってしまうんですが、
どうすればちゃんと表示できるのでしょうか?
0376374
2007/07/18(水) 14:36:13ID:bXBOiS7Y自分でも何がしたいのかわかんね
0377nobodyさん
2007/07/18(水) 14:41:07ID:???ソースくれ
少なくとも今俺の手元にあった5.0.38では
INSERT INTO (〜) values (〜) でも動作している
0380nobodyさん
2007/07/18(水) 14:48:16ID:???371がいったことも考慮して
まだ入らないなら
1、DB接続チェック
2、カラム名のスペルチェック
3、インサートのVALUESのチェック
intは未入力はデフォルトが設定されていないとエラーになる0かNULLを入れること
textとdateはシングルクォートが必要
4、文字コードのチェック
>>375
へぇ〜MySQLってそうなんだ
0381nobodyさん
2007/07/18(水) 14:48:34ID:???INSERT INTO T_SAMPLE values(1, '半井は、最近調子に乗りすぎ');
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'values' at line 1
0382nobodyさん
2007/07/18(水) 14:51:54ID:???PHPだと逆だけどね・・・
0383nobodyさん
2007/07/18(水) 14:59:51ID:???予約語のとこにも載ってない
てかSQLでそんなケースセンシティブなことってあるか?
予約語で使われてる同名の識別子を
バッククォートしてないとかならともかく
>>381
integerとtextカラムのtableで試したけどそれでINSERTできるよ
そっちのバージョンは?
0384nobodyさん
2007/07/18(水) 15:01:21ID:???0385nobodyさん
2007/07/18(水) 15:29:03ID:EIaU60X9入りました
でも1行目に入ってしまうんですがどうすればいいのでしょうか
入れたいのは4行目なんです
0387nobodyさん
2007/07/18(水) 15:32:53ID:???知る方法があれば教えてください
0388nobodyさん
2007/07/18(水) 15:34:50ID:???auto_incrementのこといっているのか?
一回、内部インデックスをクリアーしないと駄目じゃないか?
0389nobodyさん
2007/07/18(水) 15:40:19ID:EIaU60X9入ってませんでした;;
何がいけないんでしょうか
0390nobodyさん
2007/07/18(水) 15:40:57ID:???__FILE__とか使えばイモっぽい方法で分かりますが
もっとクールに知りたいです
0391nobodyさん
2007/07/18(水) 15:44:56ID:???DB内の並び順は当てにしない
386の言う通り取り出し時にソートする
並び替えが必要ならユニークなシーケンスをふって取り出すときに
order by(ソート) すれば入れた順に並び替えができる
任意番号をふってもOKでその場合も取り出し時にソートをすればいい
SQLの方が早いが最悪PHPでソートするという手もあるにはある…
ちなみに内容が板違いになっていっているのでDB板で聞いたほうが
良いと思う
0392nobodyさん
2007/07/18(水) 15:45:16ID:???php パス 区切り
で google 検索したら 4番目に出てきませんか?
0395nobodyさん
2007/07/18(水) 15:56:53ID:???0396nobodyさん
2007/07/18(水) 16:02:49ID:bXBOiS7YDoCoMoでCSSを使いたいのですが、XHTML形式じゃないとダメみたいなんです。
これは、形式をxhtmlにしなくてもheaderでxhtmlを宣言していれば大丈夫ということなのでしょうか?
metaでxhtml+xmlで試してみたのですが、DoCoMoではうまくCSSが使えません。
headerでxhtml+xmlを宣言した場合、なぜかPCで見るとファイルのダウンロードになります。
どなたかアドバイスお願いします。
0397nobodyさん
2007/07/18(水) 16:02:57ID:???0398nobodyさん
2007/07/18(水) 16:07:17ID:???「docomo css」で検索したらそれらしいのがゴロゴロ出てきたけど。
ヘッダーがそもそも違うみたいだからUAとかで判別してヘッダー出せばいいんじゃないの?
とちょろっと検索しただけで適当に言ってみる。
0399nobodyさん
2007/07/18(水) 16:11:30ID:bXBOiS7Y有難うございます。
UAで判別して携帯のみheaderでxhtml宣言することにします。
当方auなので確認する術がありませんので、知人にテストしてもらいます・・・。
0400nobodyさん
2007/07/18(水) 16:28:12ID:sSp2i6sO負荷はあんまり気にしないほうがいいでしょうか?
0401nobodyさん
2007/07/18(水) 16:31:06ID:???0402nobodyさん
2007/07/18(水) 16:32:44ID:???そんなのよくある処理じゃね
0403nobodyさん
2007/07/18(水) 16:34:52ID:sSp2i6sOいちおう、セッションつかって一回しか読み込まないようにしてみたんですけど
数字的にみて、毎回ファイルを読み込むのと↓のコードはどちらが効率がいいですか?
session_start();
if ($_SESSION['a'] != 1) {
echo $_SESSION['a'] = 1;
echo "ファイルを読み込みました";
$filename = "../data/schedule/schedule.dat";
$_SESSION['str'] = file($filename);
}
echo "出力";
print_r($_SESSION);
0404nobodyさん
2007/07/18(水) 16:35:11ID:EIaU60X9関数は何を使えばいいんですか?ODBCです
0407nobodyさん
2007/07/18(水) 16:40:22ID:???お前は馬鹿かw
>>403
負荷を減らしたいなら
一般的にはそのdatファイルの更新がかかった際に静的なHTMLページを更新するってのが一般的かな
SESSIONの場合更新がかかったとしても古いデータを読むことになるからね。
0408nobodyさん
2007/07/18(水) 16:44:02ID:sSp2i6sO静的にHTMLページを作成することにします。
0410nobodyさん
2007/07/18(水) 17:35:13ID:???0411nobodyさん
2007/07/18(水) 18:55:58ID:???_ト. ̄|○
0412nobodyさん
2007/07/18(水) 19:05:33ID:???0413nobodyさん
2007/07/18(水) 19:22:32ID:sSp2i6sOecho aaa()[1]では以下のエラーが返ってきました。
Parse error: syntax error, unexpected '[', expecting ',' or ';' in C:\www\test.php on line 2
echo aaa()[1]をどのように直せばテストと表示できるのでしょうか?
<?php
echo aaa()[1];
function aaa(){
$abc = array(1, "テスト");
return $abc;
?>}
0414nobodyさん
2007/07/18(水) 19:28:45ID:???配列アクセスする事はPHPではできない
一旦変数に入れるか、array_slice(aaa(), 1, 1)か
0415nobodyさん
2007/07/18(水) 19:39:20ID:???PHPでは返り値がオブジェクトなら出来るけど配列だと出来ないんだよねぇ
その場合ならend()を使うという手もある。
0417nobodyさん
2007/07/18(水) 19:40:37ID:???関数の引数になんか付けて「テスト」だけ返すようにするとか・・。
用途が分からないからなんとも助言しにくい。
0420nobodyさん
2007/07/18(水) 19:49:09ID:sSp2i6sO0421nobodyさん
2007/07/18(水) 19:51:35ID:27CSX6XY0422nobodyさん
2007/07/18(水) 19:55:42ID:???>PHPでは返り値がオブジェクトなら出来るけど配列だと出来ないんだよねぇ
頭大丈夫?
この1行の意味だけを読めよ馬鹿がw
0423nobodyさん
2007/07/18(水) 19:59:21ID:sSp2i6sOXSS脆弱性チェックをしているのですが、
$str = "<br><b>てすと";←タグなどを含んだ値を格納
<input type="text" name="text" value="<?php echo $str;?>">
これからXSSの実験をしているのですが確認できませんでした。
たまたま実験数が少ないだけかもしれませんが、
inputないに文字列をテキスト表示したからといって信頼できるのでしょうか?
0425nobodyさん
2007/07/18(水) 20:06:11ID:???0426nobodyさん
2007/07/18(水) 20:06:59ID:???「己は次第に世と離れ、人と遠ざかり、憤悶と慙恚とによって益々己の内なる臆病な自尊心を飼いふとらせる結果になった。」
と言ったが、君達は正にそれだな。
0427nobodyさん
2007/07/18(水) 20:10:51ID:???>>413の質問内容とそれに返答する>>415の内容から何を言わんとしているか判断出来ないのは
やはりゆとり脳のせいでしょうか?
0428nobodyさん
2007/07/18(水) 20:34:54ID:???信頼出来ない。"や">で要素やタグを終了出来るし、
そもそもHTMLでは要素内であっても特殊文字はHTMLエンティティにすることが推奨されている。
0430nobodyさん
2007/07/18(水) 21:53:25ID:sSp2i6sO以下のサンプルで試してみましたがXSSは確認できませんでした。
どのようなケースのときにXSSがおこりえるのでしょうか?
$str = "あああ>";
value="<?php echo $str;?>
0431nobodyさん
2007/07/18(水) 21:54:54ID:sSp2i6sO0432nobodyさん
2007/07/18(水) 22:33:35ID:???「他人より出来る」と思い込みたいんだから仕方ない。
ずっと前からそうだ。今になってわざわざ言う必要はない。
0433nobodyさん
2007/07/18(水) 23:00:43ID:7tC2FFCS何を言っているのか何を言いたいのかさっぱり分からないが
酒鬼薔薇事件で子供ほど難しい漢字や言葉を使いたがるというのを思い出した俺ガイル
0434nobodyさん
2007/07/18(水) 23:12:54ID:???自ら回答はせず、他者の回答に対し「おまいらは馬鹿かと反射的にレスしている」(+俺の勝ちとか思いこんでしまっている節もある)人が
自分の間違いと理解力不足に気づいていない事を皮肉っている。
0435nobodyさん
2007/07/18(水) 23:21:25ID:7tC2FFCSお前よくわかるな。俺は「慙恚」この漢字すら読めないZE
だからといってGoo辞書ひく気はまったくないけどな
そもそも聞いたことのないやつの自叙伝かなんかから
そんな崇高(だと思われる)な文章を引用されても
皮肉かどうかすらさっぱり分からん
大人って言うのは万人に分かりやすく説明する能力に長けているもんだっていう皮肉が>>433だ
0436nobodyさん
2007/07/18(水) 23:29:23ID:???保留っていえや!!
0438nobodyさん
2007/07/19(木) 01:04:59ID:???0439nobodyさん
2007/07/19(木) 01:32:28ID:???0440nobodyさん
2007/07/19(木) 01:48:35ID:???意外とものわかり悪いな
自明なことをわざわざ言う必要はないってことよ
まあ上で言われたし、エクスタシー感じながら寝るか
0441nobodyさん
2007/07/19(木) 04:29:36ID:???0442nobodyさん
2007/07/19(木) 08:59:15ID:IPLKMfOVtest/test.php の中で、
require_once("Auth/HTTP.php");
というコードを実行した時、Auth/HTTP.php は test/Auth/HTTP.php という
階層構造でなければならないんでしょうか?
php.iniでのinclude_pathは .;C:\PHP\pear となっており、
実際の階層は C:\PHP\pear\Auth\HTTP.php となっています
ちなみに、test/test.phpで
if(require_once("Auth/http.php")){ echo" OK"; }
を実行したら OK が表示されました。 お暇な方回答おねがいします
0444nobodyさん
2007/07/19(木) 09:01:40ID:H7YXRZIlよさげなので使ってみようと思ったのですが、ドキュメントがどこにもなくて
プラグインの使い方が良くわかりません。
テンプレート側で
{htmlspecialchars($hoge,ENT_QUOTES)}
みたいにPHPの関数をそのままかけるところまではわかったのですが
ここに独自関数を使えるって言う事じゃないのでしょうか?
メンバー変数に$_pluginっていうのがあるので使えそうなのですが、
どんな感じで使うのでしょうか?
ソースがPHPじゃないので、読むことも出来ないしOTZ
ご存知の方いらっしゃいましたらお願いします
0445nobodyさん
2007/07/19(木) 09:10:39ID:IPLKMfOVありがとうございます 確認したいんですが
require という関数は、
・そのファイルのある階層からの相対パス
・rootからの絶対パス
・include_path で指定したディレクトリ以下のパス
の3種類を取れるってことなんでしょうか?
0448nobodyさん
2007/07/19(木) 09:19:53ID:???マニュアル引用
> 読み込むファイルはまずカレントのワーキングディレクトリからの相対パスとしてinclude_path で探され、それから、カレントのスクリプトのディレクトリからの相対パスとしてinclude_path で探されます。
0450nobodyさん
2007/07/19(木) 09:33:46ID:IPLKMfOV申し訳ないです 書いてありました
ありがとうございました
0451nobodyさん
2007/07/19(木) 09:49:41ID:0PZWkZf0出来ればやり方を教えて頂きたいんですが…
0452nobodyさん
2007/07/19(木) 09:59:10ID:???↓
[ファイル[F]]->[開く(O)]
↓
テキストファイルの選択
↓
一行目をマウスで選択
↓
Ctrl+C
0454nobodyさん
2007/07/19(木) 12:47:36ID:???>>451
$fp = fopen("thx.txt", "r"); //読み込み
$subject_thx = fEncCvt( fgets($fp, 10000) ); //件名
while ( $data = fgets( $fp, 10000 ) ){
$msg_thx .= fEncCvt($data); //本文
}
fclose($fp);
0455nobodyさん
2007/07/19(木) 12:56:23ID:AESNaKiLサーバー側で自動で代入するのはjsでもphpでもできませんよね?
(毎回参照ボタン押さないようにしたいけど、勝手にローカルファイルの指定するのは危険になるから?)
0456nobodyさん
2007/07/19(木) 13:04:36ID:???もしそれができたら、欲しいファイルがありそうな
ところのパスいれておいて、javascriptとかで
勝手にsubmitするぜw
0458nobodyさん
2007/07/19(木) 13:13:12ID:???0459nobodyさん
2007/07/19(木) 13:32:54ID:???javascript と phpだけでどうやるんすか?
ActiveX VBScript Javaアプレット使うわけでもない。
metaタグに仕込む奴は最近は、使えない気がするが。
<input type='file' に対してはjavascriptは無力ではないか? むしろ小細工できるならマジで知りたい。
0460444
2007/07/19(木) 13:45:16ID:EtVjENa1プラグイン周りはそのままやっても動きませんでした。
>>449
そこをどうにかお願いしますw
使いたいメソッドを持ったインスタンスを登録して
テンプレート側で何らかの記号で呼び出すとかでしょうか?
それとも、普通に{hoge($foo)}と呼び出せたりするのでしょうか?
Smartyのように$_pluginsにはパスを登録すればよいけど
そこにおくファイルフォーマットが違うのでしょうか?
$_pluginsには何を登録するのか?
テンプレートではどのように書くのか?
この二点だけでもお願いします!
0461nobodyさん
2007/07/19(木) 13:58:21ID:???0462nobodyさん
2007/07/19(木) 15:07:58ID:pASguBwm0463nobodyさん
2007/07/19(木) 15:19:50ID:WayGbRpfどんなチェックをしたらいいですか?
0464nobodyさん
2007/07/19(木) 15:21:46ID:???0465nobodyさん
2007/07/19(木) 15:28:01ID:WayGbRpf0466nobodyさん
2007/07/19(木) 16:32:29ID:???0467nobodyさん
2007/07/19(木) 16:33:52ID:???この程度の回答で満足してお引取りください
0469nobodyさん
2007/07/19(木) 18:25:15ID:???いままで、csvファイルも含めてすべてsjisでPHPを作成していましたが、
新しくパソコンを買ったので、EUCで設定してはじめることになりました。
(新しく買ったPHPの参考書がEUC指定だったので)
そこで以前のファイルをまとめてEUCに直したいと思います。
どうすれば、SJISで書かれたファイルをまとめてEUCに直せるでしょうか。
アドバイスをよろしくお願いします。
0470nobodyさん
2007/07/19(木) 18:30:03ID:WayGbRpf0472nobodyさん
2007/07/19(木) 18:46:49ID:WayGbRpf0475虚弱PHP
2007/07/19(木) 19:09:46ID:???セキュリティなら、本当に画像ファイルか確認することぐらいかな?
スクリプトファイルをアップロードされると、
ローカルファイル・インクルージョンの手段か、
リモートファイル・インクルージョンの踏み台にされる可能性あり。
ただ、他の脆弱性との組み合わせ技だし、
そんなに気にする必要もないと思うけど。
0476nobodyさん
2007/07/19(木) 19:23:25ID:???・画像のサイズ上限(1MBとか)
・2バイト文字を含むファイル名、空白を含むファイル名を許すかどうか
・同一ファイルをアップロードしたときにファイル名をどうするか(元のファイル名に _日付 を勝手につけるとか)
・ファイルタイプ(gif,jpeg,pngのみ許可)とか
・ファイルアップロードの過程で簡易編集(リサイズ等)を出来るようにするか。
・同時に複数画像ファイルをアップロード出来るようにするか
・アップロード途中に、現在のアップロード状況をプログレスバーの様に表示するか
・アップロードと同時に、サムネイル画像を自動生成するか
等々、いろいろあって、範囲が広すぎて何とも言えない。
あと、最近のネタでは
バイナリ内にphpのコードを仕込むことが出来るらしいがコレの対策とか
とにかくいろいろ結構面倒なので、画像アップロード系のGPL,LGPLのソースとかもみれば良いと思う。
(仕事じゃなかったら、そのまま使って改造した方が楽かもね)
0477469
2007/07/19(木) 19:58:04ID:XK0LpanUありがとうございます。
さっそくツールを見つけて変換してみました。
ただソースとCSVをEUCに変換して、関数の"sjis"変換していたところを"EUC"に直してみたのですが、
”蟒”という字がどうも文字化けしているようでした。
これはもうどうしようもないのでしょうか?
sjisの時は問題なく表示されていました。
0478nobodyさん
2007/07/19(木) 20:04:24ID:WayGbRpfありがとうございます。
最悪の場合などいろんなケースにも対応できるように
アドバイスを元ににプログラミングしてみます。
ありがとうございました。
0479469
2007/07/19(木) 20:26:42ID:XK0LpanU0480469
2007/07/19(木) 20:28:02ID:XK0LpanU見てたコード表がSJISでしたm(_ _)m
0481nobodyさん
2007/07/19(木) 20:31:35ID:???・ライブラリファイル作成に日本語は使わない。上段部にまとめて日本語を記述するかreadme.txtを併用する。
echo "<form name=\"aaa\">というふうに'を使わないで"で統一。
0482469
2007/07/19(木) 21:23:19ID:XK0LpanUなぜなのでしょうか??
0483nobodyさん
2007/07/19(木) 21:26:35ID:???警告でまくりです
どこが詳しいサイトはないでしょうか
0484nobodyさん
2007/07/19(木) 21:31:42ID:???はっきり言って、フリーのDBサーバーは警告文が不親切で使い物になりません。
SQLServer又はOracleをオススメします。
因みに、私はOraclePlutinumを持っています。モチロン新試験の方です。
技術者1200人規模の会社で、DBについては一流の技術を持っていると会社の中で地位を得ています。
0485nobodyさん
2007/07/19(木) 21:34:29ID:???0486483
2007/07/19(木) 21:41:21ID:???ありがとうございました。やはり、DBの設計思想がおかしいようです。
Oralcleの導入を早速検討させて頂きます。
本当にありがとうございました。
0487nobodyさん
2007/07/19(木) 21:45:09ID:???[root@localhost hoge]# vi /usr/local/bin/conv_to_euc.sh
#!/bin/sh
while [ -n "$1" ]; do
if [ -e "$1" ]; then
TMPF=nkftmp$$
nkf -e -Lu $1 > $TMPF
mv $TMPF $1
echo $1
fi
shift
done
こいつを chmod 777 /usr/local/bin/conv_to_euc.sh としてとりあえず実行権限立てて
上記シェルスクリプトを find ./ -name "*.php" |xargs /usr/local/bin/conv_to_euc.sh のみたいにfindをかまして呼び出す。
(よけいなファイルまで変換しないように要注意、findとかのオプションは自分で調べれ)
linux環境ならこれでeuc LF に 一括変換できる(手抜きだからパーミッションは変わっちゃけど)
いきなり本番にはやらないように、バックアップをとってからやりましょう。
ちなみに当然ながらソース内で mb_convert_encording($hoge,"SJIS","auto") なんてやっているところは、それぞれ
mb_convert_encording($hoge,"EUC-JP"","auto") とかに書き替える必要はある。
この類は、windows用とかで一括置換ソフトがあるので、それらを使えばよい。
けど質問者はたぶん全部windows上なんだろうなあ。
0488469
2007/07/19(木) 21:55:30ID:XK0LpanUありがとうございます。
ご推察どおり、Windouws環境です。
PHPファイル、CSVファイル、ブラウザ、ともにEUCなのを確認しました。
SJISだったところもすべて、EUCに書き直しました。
色々試していると、
これだと文字化け
while($line = fgetcsv($db, TEMP_BUF, ",")) {
・・・
echo "$name";
}
これだと文字化けせず
while($temp = fgets($db, TEMP_BUF)) {
$line = explode(",",$temp);
・・・
echo "$name";
}
というようなことが判明しました。
どこかで文字コードの判定が狂ってる気がします。
php.ini の設定ミスかもしれないので少し調べてみます。
0489nobodyさん
2007/07/19(木) 22:14:56ID:???> 注意: この関数はロケール設定を考慮します。もし LANG が例えば en_US.UTF-8 の場合
> ファイル中の 1 バイトエンコーディングは間違って読み込まれます。
というわけで、Windows上でfgetcsvを実行するとShift_JISとして処理されてんじゃね
setlocale(LC_ALL, 'ja_JP.eucJP');
をスクリプトのはじめに突っ込んどけば
参考にしたサイト: ttp://blog.development-network.net/ung/2006/09/php5fgetcsv.html
0490nobodyさん
2007/07/19(木) 22:45:59ID:???>mb_convert_encording($hoge,"EUC-JP"","auto");
autoのdetectって結構袋小路に入る。
md_detect_orderを明示的に設定しても駄目なこともある。
コードが決まってるなら、実は$fooを決めうちすべき
mb_convert_encording($hoge,"EUC-JP",$foo);
0491nobodyさん
2007/07/19(木) 22:49:40ID:L7MnxTu6autoが駄目な理由は、文字コードの1バイト目が不定領域にある文字を使っているからでは?
先頭の方で、<!--京-->とすれば解決できるよ。
Yahooのページもソース見ると、そうやっていたりする。
0492nobodyさん
2007/07/19(木) 22:53:24ID:???0493nobodyさん
2007/07/19(木) 22:55:39ID:L7MnxTu6ad-hocも何も釣りなんですが、何か?
0494nobodyさん
2007/07/19(木) 23:13:29ID:???そんな懐かしい技術が最近復活してたりするわけで
http://dictionary.goo.ne.jp/
ソースでみると……
<!--龠龠龠-->
まあ、この場合はIEのせいなんだけど
0495469
2007/07/20(金) 01:21:05ID:0kZTntuaありがとうございます。まさにこの症状だと思います。
ただどういうわけか、setlocale(LC_ALL, 'ja_JP.eucJP');をいろんなところにセットしてみても文字化けが直らなかったので、
素直にfgetcsvの部分をfgetsに直すことにしました。
このたびはたくさんの助言ありがとうございました。
いつか自分も誰かの質問に答えられるようになれればと思います。
0497nobodyさん
2007/07/20(金) 09:43:19ID:Bm0qkr+0レコードは増えるんですが、idは追加されるものの、nameに値が入らないのです。
どんな原因が考えられるでしょうか?
<?php
extract($_post);
mysql_connect('localhost','root','oraora');
mysql_select_db('test');
$sql = "insert into dbtest values(0,'$name')";
mysql_query($sql);
?>
<form action="adodb_write.php" method="post">
名前:<input type="text" row=1 name="name"></input><input type="submit"></input>
</form>
0498nobodyさん
2007/07/20(金) 09:49:58ID:Bm0qkr+0すみません、忘れてました、SQLのテーブル構造は以下の通りです
>>497のフォームでデータ送信して増えた部分はid=10(idはauto_increment)です
+----+-----------+
| id | name |
+----+-----------+
| 1 | simada |
| 2 | suzuki |
| 3 | sato |
| 4 | sirakawa |
| 5 | takahashi |
| 6 | saito |
| 7 | ito |
| 8 | ueda |
| 9 | takada |
| 10 | |
+----+-----------+
0499nobodyさん
2007/07/20(金) 09:59:23ID:???$_POSTじゃない?
0500nobodyさん
2007/07/20(金) 10:04:37ID:vU4cROZQアップ完了までのプログレスバーはどうやって実装するのでしょうか?
普通は完了するまで画面は表示されませんよね?
0501nobodyさん
2007/07/20(金) 10:25:50ID:Bm0qkr+0ありがとうございました、ちゃんと名前も追加されるようになりました。
ただ、、日本語で名前を登録すると追加されないです(アルファベット入力のみ受け付ける)
これはなぜでしょう?
phpはutf-8で保存、書き出し設定しています
mysqlの [mysqld] も default-character-set=utf-8 としているんですが
0502nobodyさん
2007/07/20(金) 10:26:29ID:???0504nobodyさん
2007/07/20(金) 10:55:13ID:Bm0qkr+0すみません、レコードが追加されないのです
| 8 | ueda |
| 9 | takada |
| 10 | noda |
+----+-----------+
上記のように、 アルファベットでの名前 nodaのレコードは追加されても
「野田」と入力して送信しても
| 10 | noda |
+----+-----------+
上記のまま、id=11・name=野田 のレコードが追記されません なぜでしょう?
0505nobodyさん
2007/07/20(金) 11:55:01ID:xSJ/fCQP横レスですまんが、野田って、今年の3月に○立情報の案件で、
引継ぎも何もしないで、プロジェクトの途中で勝手に抜けた奴じゃなねーだろな。
あれから、めちゃめちゃ俺が引き継いで大変だったんだけど。
本人だったら、殴ってやりたいんだけど。
0506nobodyさん
2007/07/20(金) 12:00:28ID:???0507nobodyさん
2007/07/20(金) 12:09:19ID:???pukiwikiにはEUCとUTFの2種類あります。
EUCでほげほげをエンコードすると、『%A4%DB%A4%B2%A4%DB%A4%B2』となり、
UTFでほげほげをエンコードすると、『%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92』となります。
これを共通にデコードして同じ『ほげほげ』を出力したいのですが、
EUCで表示するUTFが文字化けし、UTFで表示するとEUCが文字化けしてしまいます。
これを防ぐにはどのような書き方をすればよいのか教えていただけませんでしょうか?
<?php
header("Content-Type: text/html; charset=EUC-JP");
$euc = "%A4%DB%A4%B2%A4%DB%A4%B2";
$utf = "%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92";
echo rawurldecode($euc)."<br>\n"
. rawurldecode($utf);
?>
0508504
2007/07/20(金) 12:12:25ID:Bm0qkr+0プギャーww ワロw
0509nobodyさん
2007/07/20(金) 12:16:31ID:vU4cROZQむぅ、ajaxが必要ですか…
バッファじゃ不完全ですよねぇ
0510nobodyさん
2007/07/20(金) 12:16:53ID:???0513507
2007/07/20(金) 12:57:51ID:9levxhBtもう1つ言い忘れたのですが、
エンコード済みのほげほげに該当する部分は、
外部から受け取る値になるので、
受け取った時点で、どの文字コードか調べたいのですがそんな関数ありますか?
>>511
rawurlencodeの引数にはそんなオプションはありませんでしたが、
なんか他の方法でできるのでしょうか?
どっちにしろ受け取った値がどの文字コードかわからないといけませんね。
0515nobodyさん
2007/07/20(金) 13:00:27ID:???$euc = "%A4%DB%A4%B2%A4%DB%A4%B2";
$utf = "%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92";
$euc = urldecode($euc);
$utf = mb_convert_encoding(urldecode($utf), "EUC-JP", "UTF-8");
0516nobodyさん
2007/07/20(金) 13:10:03ID:???0517nobodyさん
2007/07/20(金) 14:15:55ID:Z+yQ2M+4どのようにすれば対処できるのでしょうか?
文字コード:JIS
関数:mail()
どこかで携帯にメールするときは文字コードはJISでmail()関数を使うのが正しいといわれたのですが・・・
0518517
2007/07/20(金) 14:28:50ID:Z+yQ2M+4本文は文字化けせずにちゃんと届きます。
ちなみにSubject、Body共に「JIS」で送信しています。
0519nobodyさん
2007/07/20(金) 14:31:51ID:???それで検索してみたら?
0521517
2007/07/20(金) 14:40:25ID:Z+yQ2M+40522虚弱PHP
2007/07/20(金) 14:51:51ID:???http://www-06.ibm.com/jp/developerworks/opensource/library/os-php-v525/index.shtml
0523nobodyさん
2007/07/20(金) 14:51:55ID:???$enc_arr = split( ",", "ASCII,UTF-8,EUC-JP,SJIS" );
function fEncCvt($cvt_value) {
global $enc_arr;
$strDefEnc = mb_detect_encoding ( $cvt_value ,$enc_arr, TRUE );
if( $strDefEnc != DEF_HTTP_ENC ) {
$cvt_value = mb_convert_encoding($cvt_value, DEF_HTTP_ENC, $strDefEnc ); }
return $cvt_value;
}
$hoge = fEncCvt($hoge);
0524nobodyさん
2007/07/20(金) 14:53:35ID:???>PHP V5.2 の新機能、第 5 回: ファイル・アップロードの進行状況を追跡する方法
>PHP V5.2 の新機能、
>V5.2
orz
0525nobodyさん
2007/07/20(金) 14:53:50ID:ETH2C+0h登録フォームなどでHTMLのセレクトタグをセッションし確認画面でセレクトタグの選んだものを表示し、
その後戻るボタンなどで登録フォームに戻ったときセレクトタグの選んだものの状態を維持させたいのですがどうすればいいでしょうか?
0527nobodyさん
2007/07/20(金) 14:59:24ID:???http://headlines.yahoo.co.jp/hl?a=20070719-00000316-yom-pol
0528nobodyさん
2007/07/20(金) 15:00:25ID:m5o2VFCm0529nobodyさん
2007/07/20(金) 15:10:47ID:i+qd4INk0531507
2007/07/20(金) 15:15:18ID:???どうもありがとうございます。
mb_convert_encodingでやるのですね。
そのコードを使わせていただいたところ両方とも正常に表示されました。
あとは受け取った値の文字コードを調べる方法を模索してみます。
>>523
どうもありがとうございます。
その関数を使わせていただいたところ、
DEF_HTTP_ENCのところでエラーが出ました。
定数のようですが未定義ですよね?
0533nobodyさん
2007/07/20(金) 15:25:51ID:i+qd4INk進むボタンを押したらデータベースを取得して次のIDが表示される仕組みをつくりたいんです
0534nobodyさん
2007/07/20(金) 15:31:52ID:???実装例は
http://www.pixeline.be/experiments/jqUploader/test.php
とかだね(jqueryを使用したプラグイン)
あとphpとは外れるが flash + javascriptだと
http://swfupload.mammon.se/index.php
なんてのもある。
いろいろ面白い物もあるので、実装例を探してみて動かしてみる事を勧める。
あと、ajaxは、結構情報は豊富なんで、有る程度までは簡単なりよ。
0535nobodyさん
2007/07/20(金) 15:39:26ID:arPnDzjZ「.+」では一行だけしか検索できません。
改行を含む不特定の文字を表すメタ文字はないのでしょうか?
また、ない場合、どんな方法で検索したら良いのでしょうか?
0537nobodyさん
2007/07/20(金) 15:40:11ID:???/example.com/Ums
で俺の場合いけたが
0538nobodyさん
2007/07/20(金) 15:40:46ID:???0539nobodyさん
2007/07/20(金) 15:57:06ID:???だから質問の情報不足
DBがわからんから次へのボタンを表示するときに
まえもって次の番号をDBから引き出しておいてその値をサブミット
しろとしかいいようが無い
0540nobodyさん
2007/07/20(金) 16:06:44ID:Z+yQ2M+4たとえば
$name="田中";
$age = "68";
INSERT INTO (name) VALUES ('{$name}')
INSERT INTO (age) VALUES ('{$age}')
こんな感じのを1行にまとめたいんですが・・・
これはMySQL板で聞いたほうがよさげですか?
0541nobodyさん
2007/07/20(金) 16:06:50ID:???まずは
http://www.google.co.jp/search?q=php+%E5%85%A5%E9%96%80+%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9+%E6%9C%AC&btnG=%E6%A4%9C%E7%B4%A2&hl=ja&rlz=1B3GGGL_jaJP210JP210
この辺で、入門の本を探して練習汁
0542nobodyさん
2007/07/20(金) 16:10:16ID:???つっこみどころ満載なので、ソースに関してのコメントは控える。
まずは
http://www.google.co.jp/search?q=mysql+%E5%85%A5%E9%96%80++%E6%9C%AC&btnG=%E6%A4%9C%E7%B4%A2&hl=ja&rlz=1B3GGGL_jaJP210JP210
とかでまず入門本から探して勉強始めたほうがよいかと。
0543nobodyさん
2007/07/20(金) 16:13:01ID:Z+yQ2M+4ごめ、直書きだったから素で間違えた
INSERT INTO tbl_1 (name) VALUES ('{$name}')
INSERT INTO tbl_2 (age) VALUES ('{$age}')
これを1行でやりたい
つまり、どちらかでエラーが出れば両方INSERTせずにすむから・・・
2行で実行すれば、どちらかがエラー出ても片方がINSERTされます。
(SQLの絵本はあるのですが、載っているサブクエリはSELECTのみでした。)
0544nobodyさん
2007/07/20(金) 16:19:08ID:???激しくphpと関係無いが、、
一発インサートはできん その変わりロールバックの仕組みを使う。
transaction rollback commit mysql php で検索汁、
0545nobodyさん
2007/07/20(金) 16:21:22ID:???ソフトバンクへだけタイトルが文字化けしてしまいます。
mb_language("japanese");
mb_internal_encoding("SJIS");
$header = "From: $from.\n";
$header .= "Return-Path: $from.\n";
$header .= "Reply-To: $from.\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: text/plain;charset=Shift_JIS\n";
$header .= "Content-Transfer-Encoding: 7bit\n";
$error = mail($to,$title,$data,$header);
文字コードはSJISで、$title / $data もSJISです。
文字化けしない方法はないでしょうか?
ちなみに、ISO-2022-JISにすると本文も文字化けしてしまいます。
0547nobodyさん
2007/07/20(金) 16:23:30ID:???SQL開始時にBEGINして
問題があればROOLBACK
問題が無ければCOMMITして完了
BEGINからCOMMITするまでの間はひとつの動作として扱ってくれる
0548nobodyさん
2007/07/20(金) 16:33:05ID:Z+yQ2M+4有難うございます。
それはPHP側で個別にクエリ送信した場合にでも反映されるのでしょうか?
たとえば
mysql_query("BEGIN","DB");
mysql_query("処理1","DB") or exit("Error!");
mysql_query("処理2","DB") or exit("Error!");
mysql_query("BEGIN","DB");
こんな感じで個別にしても大丈夫なのでしょうか?
0550nobodyさん
2007/07/20(金) 16:52:38ID:7y+txqHq0553nobodyさん
2007/07/20(金) 16:57:26ID:???例:2007-03-31
0554nobodyさん
2007/07/20(金) 17:00:37ID:???0559nobodyさん
2007/07/20(金) 17:08:42ID:???0563nobodyさん
2007/07/20(金) 17:11:55ID:???0564nobodyさん
2007/07/20(金) 17:13:46ID:arPnDzjZ>>535
お願いします
0565nobodyさん
2007/07/20(金) 17:13:51ID:???↑これからタイムスタンプ出す方法をきぼんぬ
0568nobodyさん
2007/07/20(金) 17:16:38ID:???もっと具体的にお願い。
検察したい文字列の見本と、(どの部分にマッチしてほしいのか補足つきで)
自分で書いてみたソースを全部出して。
0570nobodyさん
2007/07/20(金) 17:37:55ID:i+qd4INkというエラーが出るんですがどうすればいいんでしょうか
0572nobodyさん
2007/07/20(金) 17:53:38ID:???http://www.php.net/manual/ja/function.odbc-connect.php#9415
0573nobodyさん
2007/07/20(金) 18:07:59ID:arPnDzjZ100 :2007/07/20(金)
PHPの改行と
正規表現についての
質問です
上記の文を例にすると
2行目から4行目までの書き込みの部分をマッチ(書き換え)させたいのです。
正規表現は
'/(\d{1,4})(\s:)(:\d{4}\/\d{2}\/.+\n)(.+)/'
でマッチ部分を\\4としたのですが、
1行目しか引っかからずどうしたものかと。
尚、マッチ部分の文字列は不定で、
受け取り時に最初からマッチ部分を変数に入れとけっていう
つっこみは無しでお願いします。
0574nobodyさん
2007/07/20(金) 18:13:14ID:???ヒント:htmlソース
0575nobodyさん
2007/07/20(金) 18:22:41ID:arPnDzjZ違います。単に多段文字列の例として書いただけ。
あくまで多段の文字列の正規表現を知りたいんで、
ヒントにあるような一例にこだわった解決方法なんかは無しでお願いします。
0576nobodyさん
2007/07/20(金) 18:26:17ID:???>>537
http://jp.php.net/manual/ja/reference.pcre.pattern.modifiers.php
帰れ。
0578nobodyさん
2007/07/20(金) 18:29:09ID:???そんなオマエに
「アルツハイマーでも分かる」コメ輸出巡り麻生外相が発言
http://headlines.yahoo.co.jp/hl?a=20070719-00000316-yom-pol
0581nobodyさん
2007/07/20(金) 18:51:43ID:v3lKaFxE仕様としては初めのPHPプログラムファイル上でテキストボックスで文字などを入力したあと
にボタンを押下するとまた新たなPHPプログラムを呼び出しでHTMLファイルを作成するのですが、
うまくいったりうまくいかなかったりするのですが、これはなぜでしょうか?
初めに開くPHPファイルですが、指定したファイル(*.ini)というファイルを読み込みにいき
そこに書いてある設定情報を元に表示するというものです。
うまくいかない現象ですが、PHPファイルを開くと文字が化けて表示されてしまいます。
何度か更新(F5やctrl+F5)をやっても化けたりしてしまいます。
何度か更新をするとうまく表示されます。
私の予想なんですが、サーバ側の処理が遅いとこの現象が発生する?
と思うのですが、これは対処方法などはないのでしょうか?
よろしくお願い致します。
0582nobodyさん
2007/07/20(金) 19:11:03ID:???おまえの作ったプログラムのバグだろ
0584nobodyさん
2007/07/20(金) 19:44:45ID:???そんなボケたオマエに
「アルツハイマーでも分かる」コメ輸出巡り麻生外相が発言
http://headlines.yahoo.co.jp/hl?a=20070719-00000316-yom-pol
0586nobodyさん
2007/07/20(金) 20:34:09ID:m5o2VFCm関数でサポートしてるんだから関係あるだろう。
ここ最近へんな回答者多いな
0588nobodyさん
2007/07/20(金) 22:16:27ID:m5o2VFCmシラネねならしらねえって家やクズ
0589nobodyさん
2007/07/20(金) 22:22:25ID:???荒らし放題だ。
0591nobodyさん
2007/07/20(金) 22:25:20ID:???「アルツハイマーでも分かる」コメ輸出巡り麻生外相が発言
http://headlines.yahoo.co.jp/hl?a=20070719-00000316-yom-pol
0592nobodyさん
2007/07/20(金) 22:28:32ID:???つまり、書き込めなくなる・・・orz
0593nobodyさん
2007/07/20(金) 22:29:44ID:???0594nobodyさん
2007/07/20(金) 22:35:57ID:???0595nobodyさん
2007/07/20(金) 22:46:24ID:???0596nobodyさん
2007/07/20(金) 22:50:58ID:A/l0wPOoスレッド式掲示板でのageやsageってどういう仕組みなんですか?
どういう処理をしているんですか?
0597nobodyさん
2007/07/20(金) 22:52:30ID:???0598nobodyさん
2007/07/21(土) 01:01:17ID:R4v3Jns/フォームのテキストボックスに郵便番号を入れ、DB内に存在したら
PHPのwhileで出力しようと思っています。
そこで素朴な疑問ですが、MySQL側のテーブルは都道府県毎に
分けた方が良いのでしょうか?それとも1つのテーブルにまとめてもOKでしょうか?
1つのテーブルにまとめると、PHPで出力するので重くならないか、
処理が遅くならないか心配してます。
0599nobodyさん
2007/07/21(土) 01:02:43ID:???何か一人が何回も質問しているような。
0600nobodyさん
2007/07/21(土) 01:03:47ID:???ひとつDBの質問した俺だが全員ではない
>>598
rowsよりfieldsの数が多いのうが負担がかかるって聞いたから問題なくね?
0601nobodyさん
2007/07/21(土) 01:51:05ID:???0602nobodyさん
2007/07/21(土) 02:12:27ID:???SQLでやるんだけどもうちょっとだけ複雑なのだと
phpでやるかsqlでやるか悩む
0603nobodyさん
2007/07/21(土) 02:56:42ID:???0605nobodyさん
2007/07/21(土) 10:21:38ID:orJf8jRLxdebugがインストールできません。
pecl install xdebug
とすると、
Did not understand the completion status returned from msdev.exe.
と出ます。
いったいどうしたらいいのですか?
0606nobodyさん
2007/07/21(土) 10:41:25ID:???manual 嫁
0607nobodyさん
2007/07/21(土) 10:52:59ID:orJf8jRLpeclはやめてバイナリをダウンロードして配置しました
しかし
extension=php_xdebug.dll
をコメントアウトしたら
Zend extensionとしてloadしなければいけないとwarningが出ました
普通のextensionとZend extensionの違いって?
zend extensionとしてロードするにはどうすればいいですか?
0608nobodyさん
2007/07/21(土) 10:57:09ID:???その返事かよ。痛いなお前
0609nobodyさん
2007/07/21(土) 10:57:17ID:???自分基準?本当のことを言ったんだが。
業務経験がある人ならわかるはず。
趣味でやってる君には言っても無駄だけど。
0610nobodyさん
2007/07/21(土) 11:07:27ID:orJf8jRLzend extensionについて詳しいページがあれば教えて下さい
0611nobodyさん
2007/07/21(土) 11:49:44ID:MxdEPqHk俺もそう聞いていて、この前、カラムの値を置換するのに
SELECT CASE WHERE hoge=99 THEN ’?’ END AS foo FROM 〜
みたいにやったら
「置換をSQLでするやつなんかいるか!PHPでやったほうがはるかに早くて軽い!怪しいコード書きやがって」
って罵倒されて、テストする時間もないし、それほど自信がなかったので
PHPで置換するように直したんだけど、どうなんでしょう?
例えばレコードの多いテーブルの検索のWHERE句に、置換を書いたりするのは全件に対してやるので
重そうなのはわかります。(ただ、この場合PHPで代用できないので、DBの設計を見直さないとだめなのかな)
WHEREで絞り込んだ物に対して置換するなら、SQLの方が早い(結果的に付加が軽い)と思うんですけど
どうでしょうか?
まあ、試してベンチ取ればいいんだけど・・・
0612nobodyさん
2007/07/21(土) 11:52:31ID:???>業務経験がある人ならわかるはず。
>趣味でやってる君には言っても無駄だけど。
まあそう感情的になるなよスルーしる
0613nobodyさん
2007/07/21(土) 11:53:11ID:???http://jp.php.net/manual/ja/ref.apd.php
0614nobodyさん
2007/07/21(土) 11:54:16ID:???そいつのレベルに合わせるなら使わないほうが無難
もちろん知っていればSQLのがいい場合が多い
0615nobodyさん
2007/07/21(土) 11:55:19ID:???0616nobodyさん
2007/07/21(土) 11:57:31ID:???よほど、パフォーマンスを必要としているところ以外では
ビューとかも使うことはない
0617nobodyさん
2007/07/21(土) 12:01:01ID:???ビューはらくだから使うでしょ〜
コード内に、JOIN〜JOIN〜 書くのが主流?
0618nobodyさん
2007/07/21(土) 12:13:33ID:???<SQLでやるのがプロ>なんて言葉を使うこと自体を憚るけどな、俺は。
0619nobodyさん
2007/07/21(土) 12:26:20ID:???0620nobodyさん
2007/07/21(土) 12:51:34ID:???0622nobodyさん
2007/07/21(土) 13:24:26ID:7eH0E9Lfデフォルトでそんな関数なかったですよね、たしか……
0623nobodyさん
2007/07/21(土) 13:32:39ID:vMVc8wl5insertでマニュアルで検索かければでるとおもわれ
0624nobodyさん
2007/07/21(土) 13:33:08ID:hxwP08YVPOSTデータの文字幅をサーバー側でチェックをつけなさいと言われたのですが
?hoge=一万文字
などいられたら場合どういう原理で
どんな悪事をされてしまうのでしょう?
0625nobodyさん
2007/07/21(土) 13:35:02ID:vMVc8wl5変更になる場合や使いまわす場合も含めれば
ひとつのDBに依存しすぎた設計ってのはどうかとおもう。
特に可読性も含めてチームでやる場合
phpべた書きでややこしいSQLクエリを出すのはいただけないな
0626622
2007/07/21(土) 13:49:58ID:7eH0E9Lfmysql_insert_id();
なんて素敵な関数がありました。 ありがとうございます。
0627nobodyさん
2007/07/21(土) 13:58:57ID:???変更になった場合や他のDBに移行なんかでもそんな手間がかかるようなものじゃないでしょ。
それにできるだけ固有機能に依存しない設計っていうのは当たり前だと思う。
0628nobodyさん
2007/07/21(土) 14:36:57ID:???SQLにロジック埋め込むなっつー話だな
修正しにくいだろう普通に
0629nobodyさん
2007/07/21(土) 15:07:54ID:???0630nobodyさん
2007/07/21(土) 16:03:19ID:???これはどういう意味でしょうか?
0631nobodyさん
2007/07/21(土) 16:03:59ID:???0632nobodyさん
2007/07/21(土) 16:16:29ID:???うだうだ言うのはやめようぜ
0633nobodyさん
2007/07/21(土) 16:27:42ID:hk6YwjDG小生には、こちらで議論されている技術的な内容がほどんど分かりませんが、
匿名の掲示板における心理の曲折が垣間見れて、非常に参考になりました。
研究資料として、こちらのダイアログを使わせて頂きたいと思います。
取り急ぎお礼を申し上げたく投稿させて頂きました。
皆さまの益々のご活躍を心よりお祈り致しております。
乱筆にて大変失礼しました。
0634nobodyさん
2007/07/21(土) 18:24:39ID:WqB94Z8Y実はログファイルを記録するのにfwrite($file,${data}."\n");の部分に\n改行を入れて
記録しているのですが、ログファイルを見るとすべて文字がつながってしまいます。
ちゃんと改行して記録できるようにするにはどうすればいいでしょうか?
<?php
$data=date('Y/m/d H:i;s');
$data.=$_SERVER['SCRIPT_NAME'];
$data.=$_SERVER['HTTP_USER_AGENT'];
$data.=$_SERVER['HTTP_REFERER'];
$file=fopen('log.txt','a');
flock($file,LOCK_EX);
fwrite($file,${data}."\n");
flock($file,LOCK_UN);
fclose($file);
?>
0635ど
2007/07/21(土) 18:34:07ID:???1万文字程度ならどうってことない。
たとえばDBを使うとき、文字数制限があるからチェックとか。
>>634
Winなら\r\n
0636nobodyさん
2007/07/21(土) 18:55:05ID:WqB94Z8Y一時間もかけて調べてわからなかった回答を適切に答えていただき非常に
たすかりました。ありがとうございます。
0637nobodyさん
2007/07/21(土) 18:59:34ID:???0638nobodyさん
2007/07/21(土) 21:07:56ID:???http://jp.php.net/ref.pdo#pdo.error-handling
0639nobodyさん
2007/07/21(土) 21:14:25ID:???<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
0640nobodyさん
2007/07/21(土) 21:15:33ID:???http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
0641nobodyさん
2007/07/21(土) 21:31:16ID:???0642nobodyさん
2007/07/21(土) 22:38:21ID:???('A` ) いっっっけぇぇぇぇぇぇぇ
( )\
\\
0643nobodyさん
2007/07/21(土) 23:08:03ID:???('A` ) いっっっけぇぇぇぇぇぇぇ
( )\
\\
パシャッ パシャッ
パシャッ
∧_∧ パシャッ
パシャッ ( )】Σ
. / /┘ パシャッ
ノ ̄ゝ
0644nobodyさん
2007/07/21(土) 23:59:48ID:???0645nobodyさん
2007/07/22(日) 00:00:32ID:???何でもないような夜のこーと‥‥‥
0646nobodyさん
2007/07/22(日) 00:07:27ID:???0649nobodyさん
2007/07/22(日) 00:46:22ID:QvcmLLtaのように、URLをハイパーリンクするように置き換えてるのですが、
これに、さらに <br>を<br />に置き換えするようにしたいのですが、
どうも上手くいきません。
↓のように書いてみたんですがエラーがでました。
<?php
$url_re = array("|(http://[\%?=&;\~/\-\.\w]+)|", "<a href=\"$1\" target=\"_blank\">$1</a>");
$br_re = array("<br>", "<br />");
$log_data[message] = preg_replace( $url_re , $br_re, $log_data[message] );
?>
ちなみにyomiのphp版をいじっています。
どなたか助けて下さい。かれこれ2時間くらい試行錯誤中です・・
0650nobodyさん
2007/07/22(日) 01:26:16ID:???0651nobodyさん
2007/07/22(日) 01:33:10ID:???まじで誰かおしえて
ttp://music.goo.ne.jp/lyric/LYRUTND2865/index.html
0653649
2007/07/22(日) 01:35:02ID:QvcmLLtaわかりませんが、
<?=preg_replace("|(http://[\%?=&;\~/\-\.\w]+)|", "<a href=\"$1\" target=\"_blank\">$1</a>",$log_data[message])?>
単体だけだと、正常に動作します。
0654nobodyさん
2007/07/22(日) 01:38:47ID:???0655nobodyさん
2007/07/22(日) 01:41:25ID:???0656649
2007/07/22(日) 01:42:36ID:QvcmLLta返信ありがとうございます。
こういうことでしょうか?
<?php
$url_re = array("|(http://[\%?=&;\~/\-\.\w]+)|", "<a href=\"$1\" target=\"_blank\">$1</a>");
$br_re = array("<br>", "<br />");
$log_data[message] = preg_replace( $url_re , $br_re, $log_data[message] );
?>
ちなみに、上で試してみたところエラーがでました。
エラー文は
Warning: preg_replace() [function.preg-replace]: Unknown modifier '$'
です。
0657649
2007/07/22(日) 01:44:08ID:QvcmLLtagt と lt が勝手に< >になってしまったみたいです。
$br_re = array("<br>", "<br />");
の< > を ltとgtにしてみました。
0658nobodyさん
2007/07/22(日) 01:45:34ID:???http://pc11.2ch.net/test/read.cgi/php/1168450843/
0660nobodyさん
2007/07/22(日) 02:03:11ID:???$url_br_pattern と $url_br_replaced だというのをわかってもらうのは
正規表現道場の仕事じゃないと思う。
0662nobodyさん
2007/07/22(日) 02:10:50ID:fPjwTOfpダウンロードしたファイル(config.dat.php)
にこんな感じのソースがあるんですがこれは何を実行してるのでしょうか?
<?php exit(); ?>
11001100
01001100
10001100
00001100
00000100
10001100
00001100
10001100
10011000
00000100
10001100
10001100
00100110
00000100
10001100
10001100
00001100
00000100
10011100
01001100
.....
00000100
10001100
10001100
00001100
00000100
0663649
2007/07/22(日) 02:19:06ID:QvcmLLtaなるほど、勘違いしてました^^
ちょっと試してみます。
0664649
2007/07/22(日) 02:26:59ID:QvcmLLta中身も表示されなくなりました。
<?php
$pattern = array("|(http://[\%?=&;\~/\-\.\w]+)|", "<br>");
$replaced = array("<a href=\"$1\" target=\"_blank\">$1</a>", "<br />");
$log_data[message] = preg_replace( $pattern , $replaced, $log_data[message] );
?>
0665649
2007/07/22(日) 02:38:54ID:QvcmLLta<?php
$pattern = array("|(http://[\%?=&;\~/\-\.\w]+)|", "<br>");
$replaced = array("<a href=\"$1\" target=\"_blank\">$1</a>", "<br />");
$log_data[message] = preg_replace( $pattern , $replaced, $log_data[message] );
print $log_data[message];
?>
と書いたら表示されたのですが、
br がなぜか <<br />> に変換されてしまいます。
0666nobodyさん
2007/07/22(日) 02:39:44ID:???つーか、丸投げしすぎ
少しは調べてくれ
0667649
2007/07/22(日) 02:41:21ID:QvcmLLta$pattern = array("|(http://[\%?=&;\~/\-\.\w]+)|", "|<br>|");
$replaced = array("<a href=\"$1\" target=\"_blank\">$1</a>", "<br />");
$log_data[message] = preg_replace( $pattern , $replaced, $log_data[message] );
print $log_data[message];
?>
これでできました!
||を忘れてました。
丸投げすみませんでした。
急いでたもので・・
おかげさまで思っていた事ができました。
ありがとうございました!
0668nobodyさん
2007/07/22(日) 04:48:11ID:q/xgz08BこれをPHPスクリプトの中から取得する関数ってありますか?
0670nobodyさん
2007/07/22(日) 05:33:59ID:???0671nobodyさん
2007/07/22(日) 05:37:51ID:???女性の声にしてエロい言葉を喋らして大喜びしている俺って異常?
0672nobodyさん
2007/07/22(日) 06:44:35ID:???0673nobodyさん
2007/07/22(日) 07:30:52ID:???そのディレクトリのパーミッション777じゃないといかんの?
0674nobodyさん
2007/07/22(日) 09:44:13ID:???configureの時に決められると思うよどっちでもいけると思う
debianパッケージとかでは別々になってるね
>>673
そのディレクトリへの書き込み権限があれば大丈夫
0675nobodyさん
2007/07/22(日) 09:57:54ID:???同じのを読むようにもできるけど、
デフォルトではphp.iniをサーチする場所も順序も違うし
confの内容も適宜変えるのが普通なので、
別ファイルにしとく。
0676662
2007/07/22(日) 10:04:09ID:fPjwTOfp0678nobodyさん
2007/07/22(日) 10:17:00ID:???少なくともPHPはなにも実行してない。
なんかのバイト列に見えるから、バイナリファイルにしてfilemagicに食わせちゃどうだい。
0679nobodyさん
2007/07/22(日) 10:17:09ID:fPjwTOfp下の数字のコードは何を実行してるのでしょうか?
デコードも可能ですか?
0680nobodyさん
2007/07/22(日) 10:21:46ID:???ありがとうございます。
filemagicとはデコードするソフトなのでしょうか?
検索しましたが、いまいちよくわかりません。
0681nobodyさん
2007/07/22(日) 11:25:12ID:UxMDVzWu2進法で8桁、1バイトじゃね
0682nobodyさん
2007/07/22(日) 13:45:18ID:KLJoHynCこれだけで何のデータかわかるやつがいれば神
どこからもってきたコードなのか晒せばもしかしたら分かる香具師がいるかもね
0683nobodyさん
2007/07/22(日) 15:05:09ID:???アプリはこれの1行目を読み捨てて使ってるんだろう。
何に使ってるかはこれを読み込んでるソース見ないとわがんね。
0685nobodyさん
2007/07/22(日) 15:59:52ID:???filemagicとは、バイナリファイルのマジックナンバー
(Linuxのバイナリだと頭にELFがつくとか、JPEGのヘッダとか)
からそのバイナリの種類を推測するもの。
そのバイト列のようなものを適当にパックして、fileコマンドの入力にしてやれば
なんのデータかあるいは実行ファイルかわかるかもしれん、ということ。
ていうか、バイナリの知識なさそうだから難しそうだね。
たぶん最も速いのはそのファイルの配布元に聞くか、
そのデータを処理するコードがあればそれを読む事だろう。
0686nobodyさん
2007/07/22(日) 16:09:48ID:???http://www.infos-du-net.com/forum/168994-21-php-binaire
で、ここと、おんなじ流れになってるのにワラッタ。
0687nobodyさん
2007/07/22(日) 16:25:20ID:???ttp://www.stadtaus.com/en/php_scripts/gallery_script/
要するに有料スクリプトなんで、そこのキーをバイナリ処理してるところみたいだね。
0688nobodyさん
2007/07/22(日) 16:36:01ID:q/xgz08Bpublic function __call($method,$args)
っていうのあるじゃないですか?
クラス内じゃない、スクリプトにじか書きしたfunctionで同じような事実現できないでしょうか?
つまり、まったく定義されてない関数hogeを読んだときを
Fatal error: Call to undefined function hoge() in 〜
と出さずに処理を続けたいのですが、可能ですか?
クラス定義の外に
function __call($method,$args)
ってやってみたけどだめでした。(まあ、そりゃダメだろうけど・・・)
呼び出す側でfunction_existsを使えば出来そうですが
呼び出す側がまったく手をつけられないので、呼ばれたときに処理できたらなあ、とおもいまして。
おねがいします。
0689nobodyさん
2007/07/22(日) 16:43:59ID:???get_defined_vars()を使って、
現在のスコープの変数をゲットしたいのですが
その前の処理で、いらぬ変数を使ってしまうんです。
0690689
2007/07/22(日) 16:51:34ID:???0692nobodyさん
2007/07/22(日) 16:56:44ID:9tP3mK//phpの文字コードとmysqlの文字コードを何に設定していますか?
今、phpをutf8、mysqlもutf8で作業してるんですが、mysqlに保存してる日本語データを
phpに表示すると???と化けてしまいます。
http://kawama.jp/archives/2006/03/phpskipcharacte.html
↑のページを参考に
[mysqld]
skip-character-set-client-handshake
として作業しても直らないんですが、どうしたらいいでしょう?
また、phpとmysqlの文字コードって統一する必要はないんでしょうか?
0693nobodyさん
2007/07/22(日) 17:01:55ID:T1/ov9QCロリポップのPHPでファイル開いたり、書き込みしようと思ったら
こんなメッセージがでます。
どうすりゃいいんでしょ?
Warning: fgets(): supplied argument is not a valid stream resource in /home/sites/lolipop.jp/users/lolipop.j〜
0694nobodyさん
2007/07/22(日) 17:05:03ID:T1/ov9QC1時間くらい困ってたんだけど自己解決しました。
ファイルのパーミッション777にしたらokでした。
ぐぐったらどっかにパーミッション777ではダメで700にしなさい
と書いてあったのでそうしてたのに・・
0695nobodyさん
2007/07/22(日) 17:17:01ID:???$newvar = ランダムな文字列生成;
にして、${$newvar}すれば?
チェックはarray_key_exsitsつかって$newvarとget_defined_varsを比べればいい。
0696nobodyさん
2007/07/22(日) 17:21:41ID:???0697nobodyさん
2007/07/22(日) 17:42:57ID:???0698689
2007/07/22(日) 18:36:11ID:???0700nobodyさん
2007/07/22(日) 18:38:58ID:???0701689
2007/07/22(日) 18:49:30ID:???0702nobodyさん
2007/07/22(日) 19:16:00ID:B3eI7QnN(エンジン直下の座席だと迫力あると聞いたので。)
0703nobodyさん
2007/07/22(日) 19:22:45ID:???0704nobodyさん
2007/07/22(日) 19:28:27ID:???0705nobodyさん
2007/07/22(日) 19:32:17ID:???0706nobodyさん
2007/07/22(日) 19:58:06ID:???0707nobodyさん
2007/07/22(日) 19:58:40ID:ynhTk9Bzファイル名は8文字を超えてもだいじょうぶでしょうか?
0708nobodyさん
2007/07/22(日) 20:03:46ID:???0709nobodyさん
2007/07/22(日) 20:05:14ID:???0710nobodyさん
2007/07/22(日) 20:09:26ID:???宣言だからタグじゃない?
0711nobodyさん
2007/07/22(日) 20:15:48ID:???0712nobodyさん
2007/07/22(日) 20:18:36ID:???0713nobodyさん
2007/07/22(日) 20:53:10ID:???俺たちは、天皇陛下の赤子であることを忘れるなよ。
0714nobodyさん
2007/07/22(日) 21:01:34ID:???色んな種類が多すぎて分からないんですよ
ネタじゃないです
0715nobodyさん
2007/07/22(日) 21:03:53ID:???話はそれからだ
0716nobodyさん
2007/07/22(日) 21:11:10ID:ynhTk9Bzなんか汚いような機がするんですが・・・
0717nobodyさん
2007/07/22(日) 21:14:05ID:???htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
第3引数は使ってる文字コードに合わせる、無しでもいいが
あとこれをベタ書きするんじゃなくて第2,3引数を
一括で変えられるようにしておいて
ラップしたメソッドか関数を用意して使うといい
0718nobodyさん
2007/07/22(日) 21:18:57ID:???一応知っていますよ
知らない人はhtmlエスケープすら知らないはずです
ただ種類が多すぎるのです
>>717
ありがとうございました
0719nobodyさん
2007/07/22(日) 21:45:58ID:???そういうモジュールみたいのありますか?
0720nobodyさん
2007/07/22(日) 21:48:50ID:???0721nobodyさん
2007/07/22(日) 22:00:23ID:???組み立て時のみオブジェクト指向にして
$object->setWidth(100);
$object->setHeight(100);
$cssCode = $object->getCode();
みたいなことしたいんです
0722nobodyさん
2007/07/22(日) 22:07:19ID:???使い道なさそうなものはたぶんないよ。
0724nobodyさん
2007/07/22(日) 22:15:41ID:???0725nobodyさん
2007/07/22(日) 22:18:26ID:???PEAR HTML_CSS
http://pear.php.net/package/HTML_CSS
ただおまえの求めてるAPIの感じではないかもしれないが
0727nobodyさん
2007/07/22(日) 22:59:30ID:e5knIosIhttp://www.jienq.com/vote/htm/1185110565.html
0729nobodyさん
2007/07/22(日) 23:21:25ID:???で実際どういう事に使おうと思ってんの?
考えられるっていや初心者でもそこそこ簡単にcssを設定できるブログサービスくらいか・・・
ただわざわざ探してどんなんだか分かんないライブラリ使う意味ないし
どうしてもオブジェクト指向でやりたいっていっても
プロパティ設定して吐き出す程度の機能だったら
調べながら使うより自分で書いた方が早そうだ
0731nobodyさん
2007/07/22(日) 23:26:46ID:???0732nobodyさん
2007/07/23(月) 00:01:42ID:???0734nobodyさん
2007/07/23(月) 01:45:37ID:???何に使うの? これ使うとregister_globals=Off は無意味に
なるとかないの?
0737nobodyさん
2007/07/23(月) 02:32:31ID:Q/UfUVNm同じ字形なのですが、str_系の関数もmb_系の関数も一致しないのですが・・
0738734
2007/07/23(月) 03:16:15ID:???いや、マニュアル読んでも使い道が分からないんだよ。
register_globals = Off のときにGET値やPOST値をグローバル
にする意味が。
0739nobodyさん
2007/07/23(月) 03:21:34ID:Q/UfUVNmグローバル変数は、ユーザーが意図しない変数を入れてきて、
プログラムの誤作動、セキュリティーの脆弱性を高めることに繋がるので、
基本的にOFFにしておくという意味。
0740nobodyさん
2007/07/23(月) 03:27:35ID:???0741nobodyさん
2007/07/23(月) 05:15:02ID:???0742nobodyさん
2007/07/23(月) 05:49:07ID:FkQfGydcはやく答えろ
0743nobodyさん
2007/07/23(月) 09:59:03ID:x2hGpWhdクラスのsetterやgetterを自動生成してくれるようなライブラリ知りませんか?
0744nobodyさん
2007/07/23(月) 10:15:03ID:m6GTZoUqtextareaのテキストを一定間隔で\nしたいのですが
mb_chunk_split的な関数はないですよね?
あああああああ\nいいいいいいいいい\n
0745nobodyさん
2007/07/23(月) 10:16:42ID:m6GTZoUq本当にありがとうございました
0746nobodyさん
2007/07/23(月) 11:35:32ID:g+EySz3/20文字ごとに\nを入れるとして
日本語は1文字カウント、英字は2文字で1字カウントで挿入するとして
スマートなループはあるでしょうか?
0747nobodyさん
2007/07/23(月) 11:57:31ID:???それを書いてからに白。
話はそれからだ
0748nobodyさん
2007/07/23(月) 13:33:46ID:LAzhk+Ka(携帯サイトで使用している為)
会員ページでは全てのページに会員の名前を表示したいのですが、
ログインのときにIDとパスワードから名前を取得してセッションに格納するべきか、
全ページでDBにアクセスして名前を取得するか迷っています。
皆さんはどちらの方法でしていますか。
またほかに何か方法はありますでしょうか。
アドバイス頂けたらと思います。
宜しくお願い致します。
0750nobodyさん
2007/07/23(月) 13:36:54ID:???amachangってどう思うよお前等?
俺はぶっちゃけ嫌いなんだよね…
CSS Niteの1件といいね
0751746
2007/07/23(月) 13:39:21ID:g+EySz3///半角幅折り返し
function mb_chunksplit($value,$br = 20) {
global $action;
if($action == "post") {
$loop = mb_strlen($value,DEF_HTTP_ENC); //マルチバイト文字数
for($i=0; $i < $loop; $i++) {
$wk = mb_substr($value,$i,1,DEF_HTTP_ENC); //一文字ずつ取得
//指定バイト幅で改行
if($line_count >= $br) {
$line .= "\n";
$line_count = 0;
}
$line_count += mb_strwidth($wk);
$line .= $wk;
}
}else{
$line = $value;
}
return $line;
}
0752nobodyさん
2007/07/23(月) 14:14:00ID:???0753nobodyさん
2007/07/23(月) 15:28:23ID:???$count = 1;
$addr = "000.000.000.000"
↑のデータをファイルとクライアントから取得したと仮定
↓やりたいのはここから
chomp($count);
$count ++;
$hoge[0] = "$count"."\t"."gmt";
push (@hoge,$addr);
open (OUT,">data.txt");
foreach (@hoge) {
print OUT "$_\n";
}
close OUT;
作りたいのは簡単なアクセスカウンターです
ファイルから読み込みデータを配列に格納することはできたのですが、
カウントアップから複数行の書き出しのところで躓いてます。
0754nobodyさん
2007/07/23(月) 15:33:24ID:???とりあえず>>1嫁
今日から夏休みなんだよなぁ・・・
厨が増えそうで怖い・・ってか流れからしてもう増えてるな
0755753
2007/07/23(月) 16:24:58ID:???perlスレにいくからごめんな
0756nobodyさん
2007/07/23(月) 18:10:40ID:???とりあえず>>1嫁
今日から夏休みなんだよなぁ・・・
厨が増えそうで怖い・・ってか流れからしてもう増えてるな
0757692
2007/07/23(月) 18:13:09ID:6p0coLtT>win + php + mysql4or5 で開発してる方に聞きたいです。
>phpの文字コードとmysqlの文字コードを何に設定していますか?
>また、phpとmysqlの文字コードって統一する必要はないんでしょうか?
0758753
2007/07/23(月) 18:34:20ID:???ここでやっぱり聞きます。
おしえてください。よろしくたのんます。
0759nobodyさん
2007/07/23(月) 19:09:19ID:???とりあえず>>1嫁
今日から夏休みなんだよなぁ・・・
厨が増えそうで怖い・・ってか流れからしてもう増えてるな
0760nobodyさん
2007/07/23(月) 19:14:50ID:6p0coLtT>厨が増えそうで怖い
お前も似たようなもんだろが
0761nobodyさん
2007/07/23(月) 19:29:18ID:???chompはtrimかrtrim
PHPの関数は基本的に値渡しなのでtrim($count)だけではだめ
$count = trim($count);
のように戻り値を受け取らないといけない
pushはarray_pushがあるけどそもそも配列使う必要ないよ
$count = trim($count);
$fp = fopen("data.txt", "w");
fwrite($fp, $count . "\t". "gmt" . "\n" . $addr . "\n");
fclose($fp);
0762nobodyさん
2007/07/23(月) 19:47:12ID:???俺の場合はlinux - php5 - mysql5だけど
utf8が通らないなんてあり得ないので、必ずどこかで設定ミスしてわけわからん事になっているはず。
一通りまとめられている解説サイトでも見ながら(自分にあったものを検索汁 :あとはスレの >>1 のリンクとか)
「一つずつ」 順を追って確認しながら作業してみ。
確認箇所
・php.ini
・my.cnf
・DB
・ソース内のFORMのPOST部分のソース
・ソース内のinsert部分
そもそも
mysql> SHOW VARIABLES LIKE 'character\_set\_%';
でちゃんとutf8になっているか?
0764757
2007/07/23(月) 21:23:42ID:6p0coLtTありがとうございます いろんなサイトをもう3日見てまわってます
文字コードの設定は
mysqlは
+--------------------------+-------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
+--------------------------+-------+
PHPは
mbstring.http_output UTF-8 UTF-8
mbstring.internal_encoding UTF-8 UTF-8
となっています。
また、mysqlにcmdからinsert文で日本語のデータを入れて、
それをPHPで表示するとやっぱり化けています。
つまり、少なくともPHP→mysqlの登録部分でのエラーではないみたいですが…
なにが悪いんだろう
0765nobodyさん
2007/07/23(月) 21:51:49ID:???cmd周りは、詳しくないが、
windowsの、コマンドプロンプトって、デフォルトが SJISだから、
それで日本語つっこむと、SJISの日本語がそのまま入ってしまうんじゃ? ([client]default-character-SET=utf8 の場合)
cmd上で、
chcp 65001 ってすると UTF-8になるけど、日本語がこの状態で正しくつっこめるかどうかはしらん
とりあえず、
hoge.php と適当なファイルをUTF-8作って、 埋め込みで
$a = "日本語";
//$aのinsert文実行
//select文実行
echo [selectしたデータ]
みたいな感じの処理を書いてみてブラウザで表示してみれば?(ブラウザのエンコード自動判定も、右クリックでUTF-8に変更する)
0766nobodyさん
2007/07/23(月) 22:09:21ID:???mysql_query('set character set utf8');
で全て解決する。
0767757
2007/07/23(月) 22:56:30ID:6p0coLtTありがとうございます
試しに登録側のPHPを以下にしたらうまくいきました
<?php
extract($_POST);
$db=mysql_connect('localhost','root','pw');
mysql_select_db('peartest');
mysql_query("SET CHARACTER SET utf8");//この行を追加
if($name != ""){
$sql = "insert into dbtest values(0,'$name')";
mysql_query($sql);
}
?>
自分は、mysql_query("SET CHARACTER SET utf8");は読み取り側にすべき機能なのかと
思っていたんですが、送り側にもするものなんですね(>>766さんもそうなんですか?)
これは、「これから送るデータはutf8で保存しろ」という命令と考えていいんでしょうか?
そうすると結局全てのPHPスクリプトに書き込まなきゃいけなくなりそうですが、、
その「全部にイチイチ書く」のを避けるために my.iniにskip-character-set-client-handshakeを
指定するといろんなサイトに書いてあったのに、そのやり方じゃうまくいきませんでした。。
なんでだろ、もういいかなぁ…
0768nobodyさん
2007/07/24(火) 00:01:05ID:???0769nobodyさん
2007/07/24(火) 00:02:08ID:N6M16q3qApache 2.2.4、MySQL 5.0.41、PHP 5.2.2を使用しています。
以下のものを、掲示板のトップページにfunction dispTitleList($pid)
という関数を使って、ツリー表示をしたいと思っています。
改善点を教えていただけませんでしょうか。お願いいたします。
0770769
2007/07/24(火) 00:03:10ID:N6M16q3q// DBへ接続
$con = mysql_connect('localhost','root','')
or die('Cannot connect<br>');
mysql_select_db('cdcol') or die('Cannot select<br>');
// titelとidの一覧を取得
$query = "select titel,id from cds";
$result = mysql_query($query);
if (!$result) {
$mes = 'Error : ' . mysql_error() . "<brn";
$mes .= 'Whole query : ' . $query;
die($mes);
}
// titelを一覧表示しつつ、それをidを渡すリンクタグで囲む
echo "<ul>\n";
while ($data = mysql_fetch_assoc($result)) {
// リンクタグを出力
echo "<li><a href='cdcol_desc.php?cdid=".$data['id']."'>";
// titelを表示
echo $data['titel'];
// リンクタグを閉じる
echo "</a>\n";
}
echo "</ul>\n";
mysql_close($con);
?>
0771nobodyさん
2007/07/24(火) 00:10:39ID:VTvHCDnMいます。
preg_match($pattern, $string)でパターンマッチした後で、$string中で
「パターンに一致した前の部分」「パターンに一致した後の部分」を取り出す
一番簡単な方法は何になるでしょうか?
0772757
2007/07/24(火) 00:15:30ID:HjFYaxsCどういうことなんでしょう?
PHPの場合なら、保存形式utf-8のPHPファイルのフォームからinsertする
文字はutf-8になるんじゃないですか?
または、cmdなら、 たとえばこのテキストボックスにinsert文を書いて、
それをペーストするような時に文字コードが関係するものなんでしょうか?
かなり初心者な質問かもしれないですが、おねがいします
0773nobodyさん
2007/07/24(火) 00:19:42ID:qzMpiZVa$hoge_array [0] = "hoge1";
$hoge_array [1] = "hoge2";
$body = preg_replace('/([0-9]+)/', $hoge_array[$1], $body);
要は置き換え文字列を、後方参照値を使って引用したいんだが、
$1が展開してくれない。
''を使ってくくっても配列の中じゃシンタックスエラーになる。
誰かいい方法ない?
答えられたら神と崇めます。
0774nobodyさん
2007/07/24(火) 00:53:18ID:???>>768じゃないけど
php.iniもUTF-8で設定しているようだし、DB側もutf8だから
フォームのあるhtmlが、
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="content-language" content="ja" />
てちゃんと設定してれば大丈夫だと思うが。
不安だったら
POSTで渡した変数ではなく、
UTF-8のソースに、2バイト文字をべた書きしたものをinsertしてみて実験してみれば。
問題を切り分け、調査する時は、極力問題を単純化して調べるのがコツ
0775nobodyさん
2007/07/24(火) 01:20:07ID:???どこで見たか忘れたけど(MySQLのあるバージョンから?)外部(PHP)と接続した時に、
iniやcnfの設定にかかわらず文字コードがLatin-1になってしまって日本語が扱えないとか。(バグ?)
PHPで接続した時に
$db->exec('set names utf8');とか
mysql_query("SET CHARACTER SET utf8");とかを実行して、
いちいち文字コードを指定してやれば大抵大丈夫なようです。
0776757
2007/07/24(火) 01:38:50ID:HjFYaxsCありがとうございます
登録のPHPにフォームと関係なく mysql_query("insert into dbtest values(0,'しいたけ')"); を
実行したんですが、やっぱり化けていました
(mysql_query("SET CHARACTER SET utf8"); を解除した時)
>>775
ありがとうございます
やっぱりイチイチ文字コード指定ってやり方じゃなきゃダメっぽいですね
ダメバージョンを使ってしまってるようです…
いろいろアドバイスをくれた皆さんありがとうございました。
MYSQLを入れなおしてみます、PHPの質問と少しずれてすみませんでした。
どうもありがとう
0777nobodyさん
2007/07/24(火) 04:54:55ID:0up0b4iVprint "<input type=\"hidden\" name=\"hID\" value=\"$dID[$i]\">";
print "<input type=\"submit\" name=\"cmd_Delete\" value=\"削除\">";
}
削除ボタンが押されたら押された場所のdIDをhIDに入れたいんだがこれでは出来ないのか・・・
なんか他の方法ありますか?
0778nobodyさん
2007/07/24(火) 06:19:53ID:???○時○分から○時間○分 経ちました と表示したいんですけど、教えてください
0779nobodyさん
2007/07/24(火) 08:47:32ID:???開始と終了、それぞれをstrtotimeでUNIXタイム型に変換してから差を求める。
それを60で割ったり、3600で割ったり。
0783753
2007/07/24(火) 09:22:09ID:Wdyxg0H6ありがとうございます
perlと似ているだけに少し使い方が違ったり、同じような動作をするのに
いくつも似たような演算子があったりと少々戸惑っていました。
おかげさまで納得のいくものができました。
ちなみに配列は同一IPをカウントしないために2行目からIPを格納するのに使っています。
while使うと\nばかりが延々続いた膨大なデータファイルが出来上がり、なぜこうなるのか
今の自分では理解できないです。
ただforeach使ったら狙った動作をしてくれたのでとりあえずは良しとし、これからwhileの謎を解明しようと思ってます。
遅レスで申し訳ないですが、ありがとうございました。
0785nobodyさん
2007/07/24(火) 10:47:54ID:???0787nobodyさん
2007/07/24(火) 11:21:03ID:???for($i=0;$i<10;$i++){
print "<form meghod=\"post\" action=\"this.php\">";
print "<input type=\"hidden\" name=\"hID\" value=\"$dID[$i]\">";
print "<input type=\"submit\" name=\"cmd_Delete\" value=\"削除\">";
print "</form>";
}
みたいに1個ずつFORMタグで囲まないと、全部のhiddenが送られちゃうでしょ。
GETで良いなら、<a href="this.php?delete_id=".$did(略
で簡単に済む。
消すIDを送るだけならPOSTする必要はない。
あとはsubmitのnameで渡しちゃって
PHP側でnameをごにょごにょする方法もある。
でも削除なら、チェックボックスにするのが一般的。
そうすれば一気に消したり出来る。
0788nobodyさん
2007/07/24(火) 11:42:14ID:???ほらよ
<script language="JavaScript" type="text/JavaScript">
<!--
function setval(val){
document.form.hID.value = val;
document.form.submit();
}
//-->
</script>
<form name="form" method="post" action="./0.php">
<input type="hidden" name="hID">
<?php
for($i=0;$i<10;$i++){
?>
<input type="button" value="削除" onclick='setval(<?=$i;?>)'>
<?php
}
?>
</form>
<?php
echo $_POST["hID"];
?>
0789nobodyさん
2007/07/24(火) 13:04:06ID:???みたいなこと(見つかった結果をひとつひとつphpの関数に投げる)したいんですが
どうすればいいですか?
0790789
2007/07/24(火) 13:07:13ID:???0792789
2007/07/24(火) 13:19:51ID:H27wi0OE>>790-791騙りは臣でいいよ^^;
0794773
2007/07/24(火) 13:21:32ID:qzMpiZVa誰も答えられないのかよ。
俺も含めてここの奴はたいした事ねえな。
0795nobodyさん
2007/07/24(火) 13:23:09ID:???説明不足じゃない?やりたい事がいまいち分からない。
phpのソース内で関数を使えばいいって答えじゃ駄目なの?
0797777
2007/07/24(火) 13:42:58ID:28scIEzFありがとう.formタグで囲めばよかったのか(汗
やはり削除とかはチェックボックスのが良いな.サンクス
0798789
2007/07/24(火) 13:48:24ID:H27wi0OEアドバイスおねがいします。
0799789
2007/07/24(火) 13:49:26ID:H27wi0OEわたしもたまに回答者にむかつきますがここは冷静になりましょうよ
0800789
2007/07/24(火) 13:50:45ID:H27wi0OE0803nobodyさん
2007/07/24(火) 13:56:21ID:???もっといい やり方も あると思いますが
$body = "abc 0 ABC 1 zzz";
echo "$body\n";
function call_back($n) {
$hoge_array[0] = "hoge1";
$hoge_array[1] = "hoge2";
return $hoge_array[$n[0]];
}
//$body = preg_replace('/([0-9]+)/', $hoge_array[$1], $body);
$body = preg_replace_callback('/([0-9]+)/', call_back, $body);
echo "$body\n";
神と崇めていただかなくて結構なので
その態度を改めていただけないでしょうか
0804nobodyさん
2007/07/24(火) 13:59:26ID:???下のほうにある call_back は single quotation で囲んでください
でないと notice レベルの警告が出ます
0805nobodyさん
2007/07/24(火) 14:17:58ID:PuYDSgkHどうしたらいいですか?
0806nobodyさん
2007/07/24(火) 14:23:21ID:Y3Stxh5i数字を入れるフォームを空にして更新するとエラーなってしまいます
文字型は入れなくてもエラーになりません
0809nobodyさん
2007/07/24(火) 14:57:29ID:???何故このスレでは強制されるんですか?
こんな悪習を続けていたらPHPerはケツの穴が小さいと思われますよ
ID出さなくても、答えたい人は答える、答えたくない人は答えない
それでいいじゃないですか
0811nobodyさん
2007/07/24(火) 15:02:44ID:CE11c5QjセッションIDでセッションを取得して$_SESSIONに格納する方法はありますでしょうか?
URLにID付加をするのではない方法であればお願いします。
0814nobodyさん
2007/07/24(火) 15:05:45ID:???最初にマニュアル読むように
引用
session_name() は、カレントのセッション名を 返します。name を指定した場合、カレントの セッション名は、その値に変更されます。
0815nobodyさん
2007/07/24(火) 15:05:54ID:Y3Stxh5iNULLを指定しても反映されません
デフォルトで設定するにはどうしたらいいんでしょうか
0816nobodyさん
2007/07/24(火) 15:08:51ID:z1nZ//nw知りませんか。
PHP4のモジュール版sqliteで2系のDBを作ってしまったとです。
0817nobodyさん
2007/07/24(火) 15:11:13ID:z1nZ//nwMySQLならカラム作るときにDEFAULT NULLだったと思います。
そすれば、何も入れなきゃNULLになるです。
0818nobodyさん
2007/07/24(火) 15:14:14ID:???> NULLを指定しても反映されません
設計段階でNOT NULL指定してないだろうな?
本来は設計段階で設定すべきだが…
ALTER TABLE [テーブル名] ALTER COLUMN [カラム名] SET DEFAULT [デフォルト値];
0819773
2007/07/24(火) 15:23:47ID:???preg_replace_calllbackは後方参照値が取れないから使ってなかったけど、
そういうやり方があったんですね。
解決しました。
ありがとうございました。
0821nobodyさん
2007/07/24(火) 15:44:05ID:???ID無しで質問するのも、それに回答するのも自由はあるよ、やればいいじゃん。
ただ、ニセモノが頻発するので推奨してるだけ。
0822nobodyさん
2007/07/24(火) 15:44:39ID:???誰が得するの?
0823nobodyさん
2007/07/24(火) 15:50:03ID:dkSuvKseどこにでもありそうな質問で恐縮です。
Apacheで.htaccessを使ったBasic認証のサイトがあります。
この中でパスワード変更のフォームを動かしていてきちんと動くのですが、
当然といえば当然で、パスワード変更して.htaccessを変更した瞬間に
次のリクエストでブラウザからは再度認証ダイアログが出てしまいます。
これを回避するためのテクニックってどういうのがあるでしょうか?
アドバイスいただければ助かります。
0824nobodyさん
2007/07/24(火) 15:50:07ID:Y3Stxh5iそれはどこに入れるんですか?
0825nobodyさん
2007/07/24(火) 15:50:58ID:???別にケツの穴が小さいと思われても俺に不都合があるわけないしどうでもいい
テンプレもマニュアルもまともに読めない。
アンカーすらまともに使えない厨が多くてカオスになったからそうなったんじゃね?
実際テンプレどおりやってる奴の質問は追っていきやすいのは事実だしな
0827809
2007/07/24(火) 16:02:52ID:???荒らして申し訳ありませんでした。
心を入れ替えます。
0828nobodyさん
2007/07/24(火) 16:02:59ID:???板違い UNIXかLINUXあたりの板のWEBサーバー関連で聞くように
>824
SQLのコマンドラインで実行
ちなみに君も板違いDB板で聞くように
0829809
2007/07/24(火) 16:06:49ID:???ケツの穴が小さいルールが偽者を作りだしているように思えてなりません
他のスレではIDがなくても偽者が出たりしませんから…
0830nobodyさん
2007/07/24(火) 16:09:00ID:???そのうちの>>809みたいな夏厨とかが偽者で書き込む。
それを防ぐためにID強制
0831823
2007/07/24(火) 16:09:53ID:???みたいなやつが出てくるからね
別にトリップでもいいんだけど
0832nobodyさん
2007/07/24(火) 16:24:24ID:???途中で表示を打ち切られた(><)
前までそんなことなかったのに
最近新しいオプション出来たの?
0833823
2007/07/24(火) 16:24:48ID:dkSuvKse>>828
そちらの板ではWeb系の話はとんと・・・
ここの板でよいと思うのですが、確かにPHP限定の話ではないです。
どなたかわかる方、ポインタだけでもお願いします。
0834nobodyさん
2007/07/24(火) 16:25:07ID:Wdyxg0H6$hoge に30行ほどの文字列が格納されている
そのうち10行を書き出したい
$kazu = '1';
foreach ($hoge as $val) {
if ($kazu > 10) {
last;
}
print "$val\n";
$kazu ++;
}
としても最後まで書き出されてしまいます。
last,next,redoに変わるものがあるのでしょうか?
0835nobodyさん
2007/07/24(火) 16:29:13ID:Y3Stxh5iすいません
コマンドラインってのはどこにあるんでしょうか?
0837nobodyさん
2007/07/24(火) 16:38:01ID:Wdyxg0H6ありがとう。助かりましたm(_ _)m
0841nobodyさん
2007/07/24(火) 17:32:11ID:???結構前はそれで平和にやっていた。
しかし、>>830の言う流れでこうなった。
これは随分前からの流れなのでしょうがない。
嫌ならID無しにどんどん答えてあげればいいじゃない。
0843nobodyさん
2007/07/24(火) 19:11:50ID:???っていうか、continueっていうネーミングはおかしいだろ。
skipとかにしろよ。php作った奴で馬鹿???
0844nobodyさん
2007/07/24(火) 19:16:04ID:???0845nobodyさん
2007/07/24(火) 19:23:33ID:WZenHGY2そこに定義されているクラスをリストアップするプログラムを書こうとしています
include→get_declared_classes
で、そのファイル中のクラスは判定できますが、
includeしたファイルに書かれたclass以外のプログラムも実行されてしまうのが
マズイです。
何かいい方法はないでしょうか?
実行せずにパースする方法があればいいのですが…
0846845
2007/07/24(火) 20:52:18ID:???なんかCatchable fatal errorが出まくりですが一応動作するようデス
0848nobodyさん
2007/07/24(火) 21:00:23ID:???0849nobodyさん
2007/07/24(火) 21:14:12ID:???その通りですが荷が重すぎます
単にclass hogeという文字を見つけるだけでは済まないので…
バッカス・ナウア記法とかなんとかサパーリ
0850nobodyさん
2007/07/24(火) 21:18:17ID:???大した技術もない癖に、調子に乗ってなめたこと書き込んでんじゃねーぞ、コラ!!!
0852nobodyさん
2007/07/24(火) 21:30:10ID:WZenHGY2/hoge/moge/../fuga/poko
のようなパスから..をなくす感じです
0853nobodyさん
2007/07/24(火) 21:49:14ID:???PHP構文が載ってるところってありますか?
0855nobodyさん
2007/07/24(火) 22:42:14ID:???すれ違いだが教えてやる。
sqlite-2.8.16.tar.gzで、ウエブ全体から検索で、ググレ。
探しているうちにソースが見つかるだろう
0857nobodyさん
2007/07/24(火) 23:01:25ID:wuKYIYS0PHP4とPHP5を両方使ってるが、どっちだろうがまったく気にしてない俺がいる。
クラスで書いてないから?
0858nobodyさん
2007/07/24(火) 23:34:10ID:9eCs8dRbでは読めるけど
require_once 'HTTP/Request.php';
ではうまくいきません。
パスを通す方法教えてください。
くだらんな質問ですいません。
0859nobodyさん
2007/07/24(火) 23:45:46ID:9eCs8dRb.htaccessに
include_path = ".:/lib/PEAR::/lib/PEAR/HTTP::/lib/PEAR/NET"
こんな感じでぶちこむと動きました。
0861nobodyさん
2007/07/24(火) 23:57:25ID:???URLにクラスのメソッド入れる様な作り方しない限りは殆ど関係無いよ。
とりあえず関数作りまくって壁に当たって
クラス使い出して慣れてきてからでOK。
0862nobodyさん
2007/07/24(火) 23:58:30ID:???FWといいたいのかも知れないがまったく意味不明。
0863nobodyさん
2007/07/25(水) 00:14:01ID:???0864nobodyさん
2007/07/25(水) 00:47:14ID:???0866nobodyさん
2007/07/25(水) 04:48:42ID:???今や「さくら」といえば、SAKURA Internetの事だと口をそろえていう。
これが時代の変化なんだろうが、嘆かわしい限りだ。
露と落ち露と消えにしわが身かななにはの事も夢のまた夢
0867nobodyさん
2007/07/25(水) 08:19:49ID:???0868nobodyさん
2007/07/25(水) 08:47:17ID:???0869nobodyさん
2007/07/25(水) 08:57:42ID:???0870nobodyさん
2007/07/25(水) 09:26:39ID:???0871nobodyさん
2007/07/25(水) 11:30:50ID:???俺は書いたスクリプトに不具合が出ては困るから
レンサバ借りるときは必ずPHP5が入ってるやる借りるぜ
ってか、もうすぐ6出るのにまだ4入れてる鯖が多すぎて萎える
0872nobodyさん
2007/07/25(水) 12:39:08ID:F1E3rbc2これはセッションをつかって発行されたクッキーなのでしょうか?
それともふつうにsetcookieによって発行されるクッキーなのでしょうか?
また、両者のどちらが安全度が高いですか?
よろしければアドバイスお願いいたします。
0874nobodyさん
2007/07/25(水) 12:54:20ID:F1E3rbc20877nobodyさん
2007/07/25(水) 14:12:18ID:TgPM8Cfn<form name="form1" method="post" action="">
<textarea name="txt"></textarea>
<input type="submit" name="Submit" value="送信">
</form>
<?
var_dump(mb_detect_encoding($_POST['txt']));
var_dump(mb_convert_encoding($_POST['txt'], "utf8", "auto"));
?>
このように、文字コードをUTF-8にしようとしてみたのですが、
Unable to detect character encoding
とのエラーで、文字コードが変換されません。
正直今までにこのようなエラーがなくて戸惑っています。
mb_detect_encodingでの出力はFALSE
mb_convert_encodingではstring(6)で文字コードがShift-JISのままです。
一体何が原因でこのようなことが起きるのでしょうか?
宜しくお願いします。
【環境】
Windows Vista Home Premium
PHP 5.2.2
0878nobodyさん
2007/07/25(水) 14:23:30ID:???文字コードが分かってるんならautoではなく直接指定
変わる場合があるならmb_detect_orderで指定しておく
0879nobodyさん
2007/07/25(水) 14:30:30ID:TgPM8Cfnありがとうございます。
mb_detect_orderでsjisをトップにもってきて
mb_convert_encodingでautoをsjisにすると解決しました。
今までこのような問題がなかったので、
何が原因でこのような文字化けなどが起きるのかわからないのですが、
もしよろしければ教えていただけないでしょうか?
0880nobodyさん
2007/07/25(水) 14:32:10ID:???0881nobodyさん
2007/07/25(水) 14:33:15ID:???それも、またmb_系関数のマニュアルを熟読しろ。
「今までこのような問題がなかった」のが単にラッキー程度だと思っておいたほうがよろしい。
mb_コンバート系統はその程度の実装だ。
0882虚弱PHP
2007/07/25(水) 14:33:17ID:???入れてやる文字列によっては、文字コード判別できないってだけの話。
いままでは"たまたま"うまくいっていただけ。
というわけで、基本的に"auto"は使わないのが良い。
0883nobodyさん
2007/07/25(水) 14:37:03ID:TgPM8Cfnその時その時によってautoではなくしっかりと文字コードを指定してやるのが大事なんですね。
マルチバイト系のクラスでも作っておきます・・・。
0884nobodyさん
2007/07/25(水) 14:41:39ID:???0885nobodyさん
2007/07/25(水) 14:49:42ID:EIPyOfNN例えば
test1.phpというPHPスクリプトの中に$aという変数を宣言しまして。
この$aという変数をHTMLのsubmitなどを使用しないで別の
test2.phpというPHPスクリプトの中で使用することはできるのでしょうか?
わかりにくいですね…
test1.phpで
$a="あいうえお";と宣言したら
どうにかして
test2.php内でprint($a);で
「あいうえお」と出力できませんか?
ということなのですけれどもご教授お願いします。
0886nobodyさん
2007/07/25(水) 14:53:43ID:???0889nobodyさん
2007/07/25(水) 15:46:03ID:EIPyOfNNやはりセッションですか。
ありがとうございます頑張ってみます!
0890nobodyさん
2007/07/25(水) 16:06:01ID:EIPyOfNNありがとうございます
解決しました!ご教授の通りやはりセッションを使うとできますね。
0891nobodyさん
2007/07/25(水) 16:11:19ID:T4EA9qil空白が入るとエラーになってしまいます
どうしたらいいんでしょうか?
0892nobodyさん
2007/07/25(水) 16:43:16ID:???0893nobodyさん
2007/07/25(水) 17:04:57ID:???0894nobodyさん
2007/07/25(水) 17:48:46ID:???0895nobodyさん
2007/07/25(水) 19:05:39ID:Muzhb0ib使っていない変数を探したいんですが、php -lだと
構文が正しいかどうかしかチェックしてくれなかったので。
0897nobodyさん
2007/07/25(水) 20:34:10ID:???PHPの場合、初期化は代入と等しいし、変数の宣言はないので、
使っていない変数を探すのは難しいんじゃないか。
0898nobodyさん
2007/07/25(水) 20:49:14ID:???インストールが途中で、install_modules.dllの初期化に失敗しましたってでるんだが、
php6ってVISTA対応していないの?
0899nobodyさん
2007/07/25(水) 21:19:52ID:???あと、リリースとベータの違いも区別つけようなザコ
0900nobodyさん
2007/07/25(水) 21:21:18ID:???0901nobodyさん
2007/07/25(水) 21:26:40ID:???0902nobodyさん
2007/07/25(水) 21:28:01ID:???ほとんどないからなぁ。実用でいったら、せいぜい5までだ。
0904nobodyさん
2007/07/25(水) 21:35:59ID:???0905nobodyさん
2007/07/25(水) 21:55:04ID:???普通はPHP4、
キティガイはPHP5だろ
0906nobodyさん
2007/07/25(水) 22:29:16ID:+OWKNv7k何か方法はありますか?
cgiで動かした時にfopenで作れたのですが、できればcgiを使いたくないので。
0907906
2007/07/25(水) 22:38:33ID:???#!/usr/local/bin/php
<?php
$file = realpatch('./hoge.log');
if (!file_exists($file)) {
$fp = fopen($file, 'w+');
fclose($fp);
}
?>
0908nobodyさん
2007/07/25(水) 22:45:57ID:???0910nobodyさん
2007/07/25(水) 23:27:35ID:9KsThU60sqliteはsqlエスケープをしなくていいんですか(?_?)
0911nobodyさん
2007/07/25(水) 23:42:49ID:9KsThU60勘違いしてました\^o^/バンザーイ
0912nobodyさん
2007/07/26(木) 00:59:04ID:???オマエのレスを絵にすると、丸でこんな感じだ。
http://www.dashiblog.com/blog/archives/project_comedy_l.gif
0914nobodyさん
2007/07/26(木) 01:09:36ID:???0915nobodyさん
2007/07/26(木) 01:41:36ID:???0918nobodyさん
2007/07/26(木) 02:08:23ID:???見なかったことにしようぜ
0919nobodyさん
2007/07/26(木) 02:54:10ID:???0920nobodyさん
2007/07/26(木) 03:01:58ID:???質問があれば答えるそれだけでいいじゃないか。
趣味でやってるやつがほとんどだというのに、
職業がどうとかどうでもいいです。
PGになってもいいことないしな。
0921nobodyさん
2007/07/26(木) 03:33:43ID:???0922nobodyさん
2007/07/26(木) 03:47:01ID:???0925nobodyさん
2007/07/26(木) 05:48:31ID:???深夜警備明けなのに、わざわざ書き込みお疲れ様です。
0926nobodyさん
2007/07/26(木) 06:58:46ID:???しかし何コレ
数年前から散々既出の絵を張る厨に、「ボク、リアルじゃすごいんだよ」話かよ
痛すぎてついていけねぇ
0927nobodyさん
2007/07/26(木) 09:58:29ID:???実装された機能動作、ぐらいにしておいて欲しかった
0928nobodyさん
2007/07/26(木) 11:53:30ID:Yo1hQCXUPHPの関数名も変わりますか?
それともPHP側のモジュールを差し替えるだけで動作OKですか?
0929nobodyさん
2007/07/26(木) 11:57:47ID:???http://php.benscom.com/manual/ja/ref.pdo-sqlite.php
0930nobodyさん
2007/07/26(木) 12:11:17ID:???PDO接頭辞「sqlite:」→SQLite3
PDO接頭辞「sqlite2:」→SQLite2
SQLiteネイティブ関数→SQLite2
0931nobodyさん
2007/07/26(木) 13:14:13ID:???0933nobodyさん
2007/07/26(木) 14:07:08ID:MPRgYECPsession_regenerate_id();
でアクセス毎にセッションIDを変更しているのですが、
変更後のIDと、変更前のIDが両方有効になってしまいます。
変更前のIDは無効にしたいのですが、どうすれば良いのでしょうか?
0934nobodyさん
2007/07/26(木) 14:18:00ID:???0935nobodyさん
2007/07/26(木) 14:18:06ID:???でなきゃsession_destroy使うしかないな。
0936933
2007/07/26(木) 14:21:19ID:MPRgYECPバージョンは5.2.2です。
trueにすることで関連付けられた古いセッションを削除できるんですね
有難うございます。
0937nobodyさん
2007/07/26(木) 14:51:06ID:k3nJKJ84それがクッキーでもセッションでもないとすると、
IPアドレスあたりを見てるのだと思うのですが、IPを変えても保持し続けていたので、
他にからくりがあると思うのですが、一体何を使っているのでしょう?
一度初期化(まっさらに)したいのに、上記の方法だとできないのでかなり強力な方法なんでしょうが。
ちなみに全くPHPとは関係ないプログラムなのですが応用できないかなぁと思いまして。
0938933
2007/07/26(木) 14:57:39ID:MPRgYECP更新ボタンを押すとセッションが破棄されてしまいます。
0939nobodyさん
2007/07/26(木) 15:03:45ID:???この意味不明
0940nobodyさん
2007/07/26(木) 15:06:23ID:MPRgYECPリロードすると、URLに付加しているセッションIDがそのままの状態で、
IDが新しくなってしまいます。
0941nobodyさん
2007/07/26(木) 15:14:33ID:???trans_id使ってるところに突っ込まないとして、
URL付加のsession idの書き換えもしないとそのままになるのはあたりまえ。
0942nobodyさん
2007/07/26(木) 15:16:18ID:MPRgYECPsession_id()と$_GET['PHPSESID']を比較した条件分担で解決しました。
0943nobodyさん
2007/07/26(木) 15:54:34ID:???と言うURLはページのURL自体はhttp://www.aaa/phpと変わりません
「?」はこれ以降動的な情報が入ると言う意味で、「&」は情報を区切っています
。
実際にはページのプログラムには
aid=****
iid=****
と言う情報が入っています。
そしてこの情報はPHPの
$_GET['aid']
$_GET['iid']
と言う変数に格納されています。
http://www.aaa/php?aid=****&iid=****
となっているサイトの多くはhttp://www.aaa/phpというページのプログラム内で
$_GET['aid']
$_GET['iid']
という変数を使用し、それにあった情報をデータベースから取り出し
その情報をhtmlに成形して出力しています。
↑のような感じのサンプルソース置いてあるところありませんか?
0944nobodyさん
2007/07/26(木) 15:59:18ID:52I1KecVちゃんと読み込めるものと、そこで処理が止まってしまうものがあります。
止まってしまう原因は何なんでしょうか?
CentOS 4 / Apache 2.2.3 / PHP 5.1.6
0945nobodyさん
2007/07/26(木) 16:04:46ID:???file_exitやis_fileはリモートファイルを使えないし、fopenしかないのか?
0947nobodyさん
2007/07/26(木) 16:13:42ID:r4i2LkJlと言うURLはページのURL自体はhttp://www.aaa/phpと変わりません
「?」はこれ以降動的な情報が入ると言う意味で、「&」は情報を区切っています
。
実際にはページのプログラムには
aid=****
iid=****
と言う情報が入っています。
そしてこの情報はPHPの
$_GET['aid']
$_GET['iid']
と言う変数に格納されています。
http://www.aaa/php?aid=****&iid=****
となっているサイトの多くはhttp://www.aaa/phpというページのプログラム内で
$_GET['aid']
$_GET['iid']
という変数を使用し、それにあった情報をデータベースから取り出し
その情報をhtmlに成形して出力しています。
↑のような感じのサンプルソース置いてあるところありませんか?
0949nobodyさん
2007/07/26(木) 16:30:44ID:???URL見れば何してるかはわかるから。
説明部分が長いだけでようは丸投げだね。
DBっていっても色々あるし、それで使えるネイティブ関数も変わってくる。
PDO使えばその辺は問題ないが。
aidとiidはカラム名か内部でカラム名に置き換えられる情報だろうから、
それをSELECTでDBに照会する。
結果をfetch_assoc等の専用の関数でうけとって、あとはそれを見やすい形に成形。
これだけの工程。マニュアル見ればまるまる書いてある。
使いたいDBもしくはPDOあたりでマニュアル検索するといいよ。
0950944
2007/07/26(木) 16:44:34ID:52I1KecVサイズを調べてみたら、どうやら大きいものだけ読み込めないようでした。
サーバーのメモリ不足が原因だと思います。ご教示ありがとうございました。
0953948
2007/07/26(木) 16:53:36ID:???あ、PEAR使うのがイヤじゃなきゃ、
ttp://www.go-pear.org/manual/ja/package.streams.stream-var.intro.php
があるから、これでいいんじゃないかな。
0955nobodyさん
2007/07/26(木) 17:49:04ID:???.htaccessでPHPヘッダーにindex.htmlを加えるような力技をやらずにPHP埋め込みできませんか。
.phpが生成するhtml部分を以下の内容にしても成功しませんでした。
$dat .= '<html><head>
<body>
<?php include('a.php'); ?>
</body>
';
0957nobodyさん
2007/07/26(木) 17:52:54ID:Q2jSAhdn.htaccessでPHPヘッダーにindex.htmlを加えるような力技をやらずにPHP埋め込みできませんか。
.phpが生成するhtml部分を以下の内容にしても成功しませんでした。
(b.phpからa.phpのincludeには成功する環境です。)
$dat .= '<html><head>
<body>
<?php include('a.php'); ?>
</body>
';
0958nobodyさん
2007/07/26(木) 17:59:21ID:???何がしたいのか理解できん
index.htmlでPHP動かすか、
index.htmlを書き出せばいいんじゃね?
0960nobodyさん
2007/07/26(木) 19:34:43ID:???$lines = file('a.php');
foreach( $lines as $line ) {
$body .= $line."\n";
}
$dat .= '<html><head><body><?=$body?></body>';
0961nobodyさん
2007/07/26(木) 19:41:36ID:Q2jSAhdn簡素過ぎて伝わらなかったようで申し訳ないが、できるだけわかりやすく説明する。
まずindex.htmlを毎回PHPとして動かすのはヘッダ書き換えないとできないから、本体.php側に投稿があった時に
別のphpファイルからデータを取得してその内容を含んだindex.htmlと共に書き出ししたいと思った。
前提:post.php(投稿受付すると$datに格納してある<html>略</html>をindex.htmlを生成)、index.html(掲示板表示用)、kokuti.php(これを掲示板表示中に埋め込みたい)
流れ:post.phpにPOST → post.phpは$datの内容をindex.htmlファイルで書き出す(既に存在していたら更新)
index.htmlとして書き出すので$datに<?php include('nikki.php'); ?>と書いても動かないのは当然だが、
リアルタイムで必要とするデータじゃないので、post.phpにPOSTされた時だけkokuti.phpの内容を取り込み、$datと一緒に出力することで
「告知内容が書かれているindex.html」を生成したい。(kokuti.phpが読み込まれるのはのはpost.phpが動いた時だけ。)
0963nobodyさん
2007/07/26(木) 19:55:05ID:???0964nobodyさん
2007/07/26(木) 20:00:21ID:???>じゃぁそうすれば良いじゃない・・・何が問題なの?
普段から何の問題意識も持たないお前の単純な思考回路が問題
0965nobodyさん
2007/07/26(木) 20:04:03ID:???0966nobodyさん
2007/07/26(木) 20:06:08ID:???0967nobodyさん
2007/07/26(木) 20:08:24ID:Q2jSAhdnお前らの読解能力がないだけじゃん
頭ごなしに否定する前に幼稚園からやり直してきなー
0968nobodyさん
2007/07/26(木) 20:10:49ID:???だったらそうすればいいんじゃね?
0969nobodyさん
2007/07/26(木) 20:38:23ID:???index.html(phpにしないと動かないが)側でphpをincludeする必要なんてない。
0971nobodyさん
2007/07/26(木) 20:53:52ID:???0972nobodyさん
2007/07/26(木) 21:16:37ID:???0974nobodyさん
2007/07/26(木) 21:51:57ID:???で、タイムアウトの時間を変更できますが、
タイムアウトした場合にエラーを表示せずにheaderで別ページに飛ばしたいのですが、
何か方法はありますでしょうか?
0975974
2007/07/26(木) 21:52:57ID:moLf/Lw80976nobodyさん
2007/07/26(木) 21:54:27ID:???自然界なら、不良個体は淘汰されて消されていくのに、
人間界は、不良個体も平等の名のものに生かされていく。つまり悪平等だ。
そういう意味では、麻原がやった行為も一理あるわけだが。
0977nobodyさん
2007/07/26(木) 22:00:18ID:???あのまま野放しにしてたら今頃どうなっていたことやら。
・・・どうでもいいけどどこの誤爆だよwwwwwwww
0978nobodyさん
2007/07/26(木) 22:09:23ID:???どうかしてるな。
ってコピペですか?
0979nobodyさん
2007/07/26(木) 22:19:01ID:???0981nobodyさん
2007/07/26(木) 23:27:57ID:???0982nobodyさん
2007/07/27(金) 00:26:13ID:???0983nobodyさん
2007/07/27(金) 00:35:37ID:lsvUDG+G0984nobodyさん
2007/07/27(金) 00:47:07ID:???0988nobodyさん
2007/07/27(金) 05:37:57ID:???>>983
ググレカス
986 :nobodyさん:2007/07/27(金) 01:52:07 ID:???
>>985
うるせーはげ
987 :nobodyさん:2007/07/27(金) 02:21:55 ID:???
>>985-986
クソワロタ
0990nobodyさん
2007/07/27(金) 08:54:07ID:???前に、私が一喝して平和になったと思ったら、
私が居なくなったら又元通り。しょうがない人たち。もう知らないよ。
0993nobodyさん
2007/07/27(金) 10:43:46ID:vcSWcDTg0994nobodyさん
2007/07/27(金) 10:53:28ID:???第二回 自作スクリプト発表会【PHP】
http://pc11.2ch.net/test/read.cgi/php/1156116687/
0995nobodyさん
2007/07/27(金) 12:53:08ID:???0996nobodyさん
2007/07/27(金) 14:40:24ID:Q5SCJZYRHoge::not_exist_func();
とした時に__callで受けたいのですが、staticにすると機能しません
0999nobodyさん
2007/07/27(金) 16:26:48ID:???↓
1000nobodyさん
2007/07/27(金) 16:31:45ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。