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

【PHP】下らねぇ質問はID出して書き込みやがれ 101

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/11/15(月) 13:00:07ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 100
http://hibari.2ch.net/test/read.cgi/php/1288168893/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
01811772010/11/21(日) 13:26:08ID:???
うわ・・・恥ずかしい限りです。

http://www.php.net/manual/ja/sqlite3stmt.execute.php
間違えて↑を見ていたようです。>>179 さんのリンクで全て解決しました。
>>180 さんと合わせて、本当にありがとうございました!
0182nobodyさん2010/11/21(日) 13:56:31ID:???
Sqlite使う奴多いな
0183nobodyさん2010/11/21(日) 14:08:20ID:???
このスレだとなぜか多いな
0184nobodyさん2010/11/21(日) 16:03:58ID:???
掲示板とかログ管理とかぐらいの規模だとちょうどいいからな
0185nobodyさん2010/11/21(日) 16:08:53ID:???
MySQLだとなんでだめなん?
0186nobodyさん2010/11/21(日) 16:12:48ID:???
ダメというわけではないが
SQLiteの方が移植性高くて楽
PHP5以降だとPHPあれば動くしな
どこかに移すのもSQLiteのファイルをもってくだけ
これほど楽なものはない
0187nobodyさん2010/11/21(日) 16:14:05ID:???
別にdumpして持って行って突っ込めばよくね?
0188nobodyさん2010/11/21(日) 16:20:08ID:???
移行先にもmysql鯖を構築する必要が出てくるだろ
権限周りの設定云々も必要になってくる
文字コードの設定もね

本や配布スクリプトの場合
そういった環境依存になる部分がSQLiteの方が少なくなる
だからSQLiteの方が多くなるのは必然と言える
0189nobodyさん2010/11/21(日) 16:23:13ID:???
http://www.google.co.jp/trends?q=SQLite%2C+MySQL&ctab=0&geo=all&date=all&sort=0
どこがだよw
0190nobodyさん2010/11/21(日) 16:26:13ID:???
トレンドで判断するとか馬鹿すぎるな
0191nobodyさん2010/11/21(日) 16:28:01ID:???
じゃ何で判断するんだよw
0192nobodyさん2010/11/21(日) 16:30:44ID:???
trends使いたかっただけとエスパー
0193nobodyさん2010/11/21(日) 16:33:08ID:???
>>192
そうだよ悪いかw
0194nobodyさん2010/11/21(日) 16:34:35ID:???
で、SQLiteの方が多いという根拠はどこに?
0195nobodyさん2010/11/21(日) 16:35:29ID:xEOrsG3N
YahooがGoogleの検索エンジン使ってるって事は、今更YahooにPing送っても無駄って事ですか?
0196nobodyさん2010/11/21(日) 16:36:39ID:???
>>195
スレ違い
0197nobodyさん2010/11/21(日) 16:53:03ID:???
>>190
答えられないんじゃねぇかw

ともかく別にMySQL好きなわけでもないけどそれでもSQLiteが多いはねーわ。
シェアも機能も、やっぱりオマケ程度のDBだよ。
0198nobodyさん2010/11/21(日) 16:54:27ID:???
どーでもいい議論は別スレで
0199nobodyさん2010/11/21(日) 16:57:31ID:???
おれの勘なんだが

このスレでは今後も不毛なレスが続く
0200nobodyさん2010/11/21(日) 16:59:23ID:???
多くなると書いてるんだが・・・
そして前提として本や配布スクリプトとも書いてる
そこにMySQLとSQLiteの比較をするのは馬鹿としか言いようがない

シェアとしては利用できる規模等も考慮すれば
MySQLの方が多いのは当たり前

因みにchromeやfirefoxでもsqliteが使われてるわけだが
これらをシェアとして考えれば多いとも言えるな

利用ケースを考えろよ
0201nobodyさん2010/11/21(日) 17:07:52ID:???
188に189のレスする時点で文盲。スルーで。
0202nobodyさん2010/11/21(日) 17:12:52ID:???
wつけてるやつは隔離いけ
こっちこなくていいから
0203nobodyさん2010/11/21(日) 17:45:17ID:???
>>200
>多くなると書いてるんだが・・・
だからその根拠は(ry

>そして前提として本や配布スクリプトとも書いてる
MySQLのインストールCDが付属している本もあるし
MySQLが必要なフリー配布スクリプトだってあるけど?
だから、それらの前提でSQLiteが多いって主張したいならそれでもいいけど、その根拠を示さないとまったくもって無価値な主張じゃないか。

>因みにchromeやfirefoxでもsqliteが使われてるわけだが
>これらをシェアとして考えれば多いとも言えるな
ほうほう、で、数字は?
0204nobodyさん2010/11/21(日) 17:47:24ID:???
不毛
0205nobodyさん2010/11/21(日) 17:48:19ID:???
そう、不毛だから早く根拠出して
0206nobodyさん2010/11/21(日) 17:53:37ID:???
具体的提案。

ヲチスレとか作ってそこでやるのはどうだろうか。
この板に作るなら「PHPerに突っ込みを入れるスレ」とか多少範囲を広く取らざるを得ないだろうけど。
ネットwatchなら「PHP関連スレのヲチスレ」とか。

スレに関する苦情はこちらみたいな感じに>>6あたりに入れといてくれたら誘導もしやすい。

>>202の言う隔離ってのがこれの事ならURL出した上で誘導して欲しい。
0207nobodyさん2010/11/21(日) 17:55:47ID:xL1nv8No

クライアントに結果を返した後に、処理を続行することってできますか?

本来は全ての処理が完了するまではクライアントに待ってもらう必要があると思います。
クライアントに関係の無い処理がある場合に、途中で結果を返したいのです。

アドバイスよろしくお願いいたします。
0208nobodyさん2010/11/21(日) 18:08:36ID:???
>>207
output_bufferingが有効になってると、出力が貯められ
実行完了時に一気に出力されます

ob_flashを実行すれば貯められたバッファを送信できます
マニュアルの出力制御のあたりを見て下さい

PHP: ob_flush - Manual
http://jp.php.net/manual/ja/function.ob-flush.php
0209nobodyさん2010/11/21(日) 18:09:04ID:???
IDもなければアンカーもないし
醜いわ!
0210nobodyさん2010/11/21(日) 18:09:36ID:???
>>206
取り敢えずヲチ板がどんな所か見て来たら?
0211nobodyさん2010/11/21(日) 18:22:24ID:???
>>207
ignore_user_abort()してそのまま続ける方法もあるけど、
別プロセスをバックグラウンド実行させるのが楽だと思う
`/usr/local/bin/php backgroundprocess.php > /dev/null 2>&1 &`;

CGI版ならclose(STDOUT)でできるかもしれない。未確認。
02122072010/11/21(日) 18:54:02ID:xL1nv8No
>>208
ありがとうございます。説明不足でした。
「途中」ではなくて、その段階でクライアントとの接続を終了したいのです。

--------------------

echo "welcome";
// この段階で、クライアントとの接続を終了したい
// => クライアント側では、この段階で表示が完了する

...あとはサーバ側の処理のみ...

--------------------

>>211
ありがとうございます。
connection_abortみたいな関数があれば助かるんですけどね。。

この手の処理は簡単には実現できないのでしょうか。
他に簡単な方法があれば教えていただきたいです。
0213nobodyさん2010/11/21(日) 19:58:46ID:???
>>166,167

どうもありがとう。
自分で作るのはメンテが面倒。
APIはサ−ビス終了すると困る。
というあたりが悩みどころでした。

サーバー側はPHPで書いているんで、このスレでもいいんじゃないかと。

それこそすれ違いだけど、日本郵政がサービスしてくれるのが
いちばんいいんですけどね。
こういうのこそSaaSで実現すべきですよ。
0214nobodyさん2010/11/21(日) 20:24:17ID:???
何故そこでSaaSが出て来る
0215nobodyさん2010/11/21(日) 20:53:05ID:???
> サーバー側はPHPで書いているんで、このスレでもいいんじゃないかと。

なんだそれ。
0216nobodyさん2010/11/22(月) 00:50:22ID:???
>>213は質問者の>>166では無いんだよね。
何が言いたいのかわからん。
0217nobodyさん2010/11/22(月) 02:35:44ID:???
ただのアンカミスだろ
0218nobodyさん2010/11/22(月) 08:19:44ID:???
ミスなら非を認めて謝罪するべきでしょう。
開き直るとは許しがたい。
0219nobodyさん2010/11/22(月) 08:48:51ID:???
このスレがなぜ荒れるか分かったよ
暇なPHPerが他に書き込むスレも無くこのスレにたむろして
何か書けることは無いかとレスを捻り出した結果だな
0220nobodyさん2010/11/22(月) 08:56:43ID:???
それがこのスレの存在意義だろうがボケ
0221nobodyさん2010/11/22(月) 14:24:34ID:???
PHP
ぴー ひゃら ぺーぺー
0222PHP忍者 ◆vx6KgJyjvE 2010/11/22(月) 17:32:07ID:???
(@)3
0223nobodyさん2010/11/22(月) 18:22:17ID:???
馬鹿なチョンはここにも出没www
0224nobodyさん2010/11/22(月) 18:59:46ID:???
馬鹿な小日本人に言われたくない
0225nobodyさん2010/11/22(月) 19:03:28ID:???
あらチョンだったの?ww
適当に言っただけなのにww
0226nobodyさん2010/11/22(月) 20:34:36ID:???
あらチャンじゃないです
チャイナです
0227nobodyさん2010/11/22(月) 21:30:53ID:???
あぁだからあんな荒らし方してたのか
0228PHP忍者 ◆vx6KgJyjvE 2010/11/22(月) 22:52:33ID:???
PHPって簡単だよね
0229nobodyさん2010/11/22(月) 23:56:33ID:???
PHP忍者キモい。ウザい。氏ねハゲ
3回回ってワンと言え
0230PHP忍者 ◆vx6KgJyjvE 2010/11/23(火) 00:00:00ID:???
| ゴロゴロ
|r'⌒X⌒X⌒ヽ ∩゙⌒゙、⊃
|ヽ__乂__乂__ノ (。Д。)⊃ ワン
0231nobodyさん2010/11/23(火) 00:03:15ID:???
ここまで自演

質問お待ちしておりまーす
0232nobodyさん2010/11/23(火) 00:13:06ID:???
quoteSmartを使おうとすると
Call to a member function quoteSmart() on a non-object
と出て使えません。
0233nobodyさん2010/11/23(火) 00:14:38ID:???
>>1
0234nobodyさん2010/11/23(火) 00:31:39ID:???
分からない人は答えなくていいです
02352322010/11/23(火) 00:32:52ID:???
すいません。>>3のphpマニュアルみたら解決しました。
0236nobodyさん2010/11/23(火) 09:38:34ID:???
>>1
0237nobodyさん2010/11/23(火) 19:23:33ID:NoNXE+F/
指定バイト分だけファイルから読み込みを行うにはどうしたらいいんでしょう?
0238nobodyさん2010/11/23(火) 19:30:48ID:???
>>237
PHP: file_get_contents - Manual
http://php.net/manual/ja/function.file-get-contents.php

第5引数でバイト数指定できる
0239nobodyさん2010/11/23(火) 20:47:22ID:ZNYYZV27
WindowsXP で PHP5.2.14 を使用しています。
print_r(glob('*表示*'));
とすると、0x5Cに引っかかるのか、ファイルが存在しても何も表示されません。
mb_internal_encoding などを変えてみたり、mb_convert_encoding もしてみましたが、解決できていません。
何とかならないでしょうか。よろしくお願いします。
0240nobodyさん2010/11/23(火) 20:52:40ID:???
globの引数がおかしいんじゃないの?
0241nobodyさん2010/11/23(火) 21:13:13ID:???
ファイル名に2バイト文字を含めること自体異常
0242nobodyさん2010/11/23(火) 21:19:51ID:???
ああ*表示*ってそのままそれを入れてたんか サンプルかと思った
0243nobodyさん2010/11/23(火) 21:49:42ID:???
GLOB_NOESCAPE
0244nobodyさん2010/11/23(火) 22:06:37ID:???
>>243
それも駄目でした。
php4.4.9でも同じになるようです。
もちろん、'*示*' だと正常に結果を返してくれます。
0245nobodyさん2010/11/24(水) 04:36:40ID:???
>>239
mb_internal_encodingやmb_convert_encodingをどう変えてみたのか具体的に。
環境変数$LANGに合わせてエンコードを変えていますか。
02462392010/11/24(水) 07:53:39ID:???
書き忘れていましたが、cli版を使用しています。

>>245 ありがとうございます。
環境変数$LANGとは何のことでしょうか?
試したコードは以下のようになります。
以下を一行にしたものをコマンドプロンプトから実行します。

php -r "mb_language('Japanese');
mb_internal_encoding('SJIS-win');
mb_regex_encoding('SJIS-win');
print_r(glob(mb_convert_encoding('*表示*','SJIS-win')));"
0247nobodyさん2010/11/24(水) 09:19:11ID:???
--enable-zend-multibyte オプションつけてPHPコンパイルするか
http://www.geocities.jp/rui_hirokawa/php/win/
0248nobodyさん2010/11/24(水) 10:02:09ID:???
無理無理

0x5CはWindowsではディレクトリの区切りを表す文字コード
つまり'*表示*'とした場合、「表」の先頭コード0x95で終わるディレクトリ以下にある「示」で始まるものを探索してるということ
0249nobodyさん2010/11/24(水) 10:38:27ID:???
なるほどな、 歯フォルダの示ってファイルで出るな。
0250nobodyさん2010/11/25(木) 01:51:53ID:???
SJIS以外にすることはできないのか。
globがUTFを返せばいいんだろ?
環境が無いので試せないが、php.iniの設定で変更できんのか?
0251nobodyさん2010/11/25(木) 05:58:30ID:???
日本語扱うのにSJISはないよ。
プログラムはUTFで書いて、データはSJISが普通。
読み上げと書き込みの時に変換する。
0252nobodyさん2010/11/25(木) 06:04:08ID:???
読み上げ?
0253nobodyさん2010/11/25(木) 07:31:23ID:???
>>251
そうじゃなくてglobに渡す&返す文字列がSJISじゃなければ
>>248-249のようなことにならなくて済むと思うんだが
0254nobodyさん2010/11/25(木) 09:26:23ID:???
できるかできないかで言えば、できない。
理由はwin32/glob.c、win32/readdir.cあたりを見れば分かる。
globみたいのは元々ネイティブAPI丸投げだし、Windows環境のエミュも結構てきとう。

回避策1: glob('*')とかreaddirで全部読んで、PHPスクリプト内でフィルタリングする。
回避策2: win32/readdir.cを改造してUTF-8とかに変換する。
win32/glob.cをstreamWrapper系に改造すればもっと汎用的になるのかな?
よく知らないけど。
0255nobodyさん2010/11/25(木) 10:32:38ID:???
win32/readdir.cを見たがSJISで戻ってくるのかどうかよくわからなかった。
Windowsってファイル名は内部ではUnicodeで管理してるんじゃなかったっけ。
0256nobodyさん2010/11/25(木) 11:22:17ID:???
Windowsのほとんど全てのAPIはUTF-16で動いてる。
NTFS上にもUTF-16で保存されてる。
Win32APIのAとWとUNICODEマクロの話は省略。
win32/readdir.cではFindFirstFileA/FindNextFileAでSJISに変換済みのchar*を読んでる。
0257nobodyさん2010/11/26(金) 07:38:25ID:8z1vMVxd
クーポンサイトの情報を取得して、 独自に 「飲食」、「美容」、「旅行」 などと
自動的にプログラミングで判別してカテゴリに分けたいです。

検索する文字列はクーポンのタイトルとクーポンの紹介文のみを使います。


※「飲食」のカテゴリに分けたい時

mb_strpos を使い、「カレー」、「焼肉」、「ピザ」 などの文字が紹介文に入ってて、
「エステ」、「マッサージ」、「脱毛」 などの文字列が入ってない。

上記のようなプログラムで判別しようと思っているのですが、
このやり方の問題点、もしくは最適な関数、もっとよいやり方などがあれば
教えてもらえないでしょうか?m(_ _)m
0258nobodyさん2010/11/26(金) 08:06:31ID:???
>>257
いいんじゃない?
0259nobodyさん2010/11/26(金) 08:22:08ID:???
ピザ野郎をエステでスリムにしますみたいな紹介文がなければ判別できそう
0260nobodyさん2010/11/26(金) 08:42:25ID:6Tea9Sr/
>>258

mb_strposで問題なさそうなのですね。ありがとうございます。

>>259
朝から吹き出してしまったw


飲食カテゴリ

・下記のどれか1つでも含む
「焼肉」 「カレー」 「食べ放題」 「レストラン」 (ここのワードは慎重に選ぶ)

・以下のワードをいずれも含まない

「エステ」、「マッサージ」、「脱毛」、、、、、、、(ここのワードは多くしてもよし) 

こんな感じで考えております。
0261nobodyさん2010/11/26(金) 09:21:34ID:???
>>256
なるほど。
0262nobodyさん2010/11/26(金) 13:57:25ID:hU0kBnUa
vistaとApache/2.2.17 (Win32) PHP/5.3.3です。
コマンドプロンプトから「tasklist /v」をした時の結果を取得したくて
exec('tasklist /v',$ret);と書きました。
イメージ名とかPIDは正常に取得できるのですが
ウインドウタイトルの大半がN/Aになってしまい、取得出来ません。


コマンドプロンプトから「tasklist /v」をした時の結果と同じ値を取得するにはどうしたらよいのでしょうか
0263nobodyさん2010/11/26(金) 17:34:24ID:???
>>262
マニュアル嫁

とりあえず、execにはこう書いてあるな。

返り値
コマンド結果の最後の行を返します。コマンドを実行し、 一切干渉を受けずに直接コマンドから全てのデータを受けとる必要が あるならば、PassThru() 関数を使ってください。
実行されたコマンドの出力を取得するには、必ず output パラメータを設定・使用してください。
0264nobodyさん2010/11/26(金) 17:54:59ID:???
ウインドウタイトルが N/Aであってるって話じゃないのか?
うちでは問題なし。そうでないのも取れる。
N/Aってなってるの、なんちゃらSERVICEじゃねーの?
0265nobodyさん2010/11/26(金) 19:03:09ID:???
具体的に言うと、取得したいタイトルはaviutlのウインドウタイトルで
このphpと同じPCの同じユーザーで同時に動いています。

exec、passthru、shell_exec、systemで
$cmd='tasklist /v /fi "imagename eq aviutl.exe"';
を実行させたのですが、全てウインドウタイトルが「N/A」となってしまいます。

コマンドプロンプトから
tasklist /v /fi "imagename eq aviutl.exe"
と実行するとウインドウタイトルも「出力中 50%」と取得出来るのですが。
0266nobodyさん2010/11/26(金) 19:04:59ID:???
>>265
後出しイクナイです
0267nobodyさん2010/11/26(金) 19:20:15ID:???
>>266
>>262で十分理解できるだろ?>>263も明らかに見当違いの回答だし。
まぁうちには環境がないので何のアドバイスもできんが。
0268nobodyさん2010/11/26(金) 19:25:08ID:???
aviutl ダウンロードして その通りやったが、 タイトル取れるぞ。
0269nobodyさん2010/11/26(金) 19:44:57ID:???
分かち書き
0270nobodyさん2010/11/26(金) 20:40:39ID:???
ID変わって失礼します。

$cmd='tasklist /v';
exec($cmd,$ret1,$ret2);
print_r($ret1);
の結果が
http://sakuraweb.homeip.net/uploader/src/up139167.png
このようになり、aviutlだけでなく、メモ帳や専ブラ等々、全てのプログラムでウインドウタイトルがN/Aとなっていて取得できません。

phpの設定はこのような感じです。
http://sakuraweb.homeip.net/uploader/src/up139168.png

httpdの実行権限の問題かなと思ったのですが、ウインドウタイトルが取得できている方、
httpd.exeのユーザー名は何になっていますか?
http://sakuraweb.homeip.net/uploader/src/up139167.png
自分は97行目の通り、"NT AUTHORITY\SYSTEM"となっています。
0271nobodyさん2010/11/26(金) 22:19:29ID:???
> ID変わって失礼します。
> ID変わって失礼します。
> ID変わって失礼します。
0272nobodyさん2010/11/26(金) 22:25:08ID:I8yzn2Dg
age
0273nobodyさん2010/11/26(金) 22:36:35ID:???
httpd経由っすか。 
http://bbs.wankuma.com/index.cgi?mode=al2&namber=23325&KLOG=44
かな?
0274nobodyさん2010/11/26(金) 23:42:37ID:???
>>273
ありがとうございます。
ですが、このトピックの方はApacheでは実行できてIISでは実行できない
という現象みたいで、自分はApacheで実行できない状態なんです。
>>どうやら、Apacheではcmd.exeの指定は要らないが
とありますので、これじゃない と思います。
02752392010/11/27(土) 00:05:56ID:???
コンパイルは自分には難しそうなので、とりあえず以下のようにdirコマンドを使うことで解決しました。

if (strpos($filename, '\\') === false)
$files = glob($dir.$filename.'.*');
else if (preg_match('/^Windows/i', $_SERVER['OS']))
exec('dir /B "'.$dir.$filename.'.*"', $files);

ただ、dirコマンドを何度も呼ぶとヒープメモリ?を食いつぶすのか、新しいプロセスを立ち上げることができなくなります。
この状態になると、Windowsを再起動しないと何もできなくなります。
タスクマネージャを見た限りでは特にメモリは消費していないのですが…
phpを再起動させても効果はないようです。
最終的にはreaddirで何とかしようと思いますが、
ヒープメモリ?を解放する方法などがあればご教示ください。よろしくお願いします。
0276nobodyさん2010/11/27(土) 03:33:36ID:???
>>274
またサヨクがニワカで保守気取りか
0277nobodyさん2010/11/27(土) 08:32:01ID:HnSqylEA
クーポンの概要を説明した日本語の文字列の中から、
「鍋」 「焼肉」 などの文字列を検索するロジックを書いています。

mb_strpos を使っていますが、 特定の文字列が発見された時にtrueを返す
ereg関数のほうがよいでしょうか?
0278nobodyさん2010/11/27(土) 09:24:29ID:???
男は黙ってstrpos
0279nobodyさん2010/11/27(土) 11:26:16ID:???
>>276
またウヨクがニカワで捕手気取りか
0280nobodyさん2010/11/27(土) 11:27:12ID:???
>>275
終了させないとだめなんでないの?
■ このスレッドは過去ログ倉庫に格納されています