のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,647,304人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
251 : nobodyさん - 2010/11/25(木) 05:58:30 ID:??? (+14,-29,-17)
日本語扱うのにSJISはないよ。
プログラムはUTFで書いて、データはSJISが普通。
読み上げと書き込みの時に変換する。
252 : nobodyさん - 2010/11/25(木) 06:04:08 ID:??? (+33,+15,-2)
読み上げ?
253 : nobodyさん - 2010/11/25(木) 07:31:23 ID:??? (+26,-4,-8)
>>251
そうじゃなくてglobに渡す&返す文字列がSJISじゃなければ
>>248-249のようなことにならなくて済むと思うんだが
254 : nobodyさん - 2010/11/25(木) 09:26:23 ID:??? (+3,-30,-105)
できるかできないかで言えば、できない。
理由はwin32/glob.c、win32/readdir.cあたりを見れば分かる。
globみたいのは元々ネイティブAPI丸投げだし、Windows環境のエミュも結構てきとう。

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

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


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

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

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

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

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


飲食カテゴリ

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

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

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

こんな感じで考えております。
261 : nobodyさん - 2010/11/26(金) 09:21:34 ID:??? (+53,+26,+1)
>>256
なるほど。
263 : nobodyさん - 2010/11/26(金) 17:34:24 ID:??? (+29,-29,-74)
>>262
マニュアル嫁

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

返り値
コマンド結果の最後の行を返します。コマンドを実行し、 一切干渉を受けずに直接コマンドから全てのデータを受けとる必要が あるならば、PassThru() 関数を使ってください。
実行されたコマンドの出力を取得するには、必ず output パラメータを設定・使用してください。
264 : nobodyさん - 2010/11/26(金) 17:54:59 ID:??? (-1,-29,-54)
ウインドウタイトルが N/Aであってるって話じゃないのか?
うちでは問題なし。そうでないのも取れる。
N/Aってなってるの、なんちゃらSERVICEじゃねーの?
265 : nobodyさん - 2010/11/26(金) 19:03:09 ID:??? (+34,-30,-137)
具体的に言うと、取得したいタイトルは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%」と取得出来るのですが。
266 : nobodyさん - 2010/11/26(金) 19:04:59 ID:??? (+91,+29,+0)
>>265
後出しイクナイです
267 : nobodyさん - 2010/11/26(金) 19:20:15 ID:??? (+63,+29,-27)
>>266
>>262で十分理解できるだろ?>>263も明らかに見当違いの回答だし。
まぁうちには環境がないので何のアドバイスもできんが。
268 : nobodyさん - 2010/11/26(金) 19:25:08 ID:??? (-1,-29,-19)
aviutl ダウンロードして その通りやったが、 タイトル取れるぞ。
269 : nobodyさん - 2010/11/26(金) 19:44:57 ID:??? (+45,+27,+0)
分かち書き
270 : nobodyさん - 2010/11/26(金) 20:40:39 ID:??? (+53,-30,-129)
ID変わって失礼します。

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

phpの設定はこのような感じです。
httpdの実行権限の問題かなと思ったのですが、ウインドウタイトルが取得できている方、
httpd.exeのユーザー名は何になっていますか?
自分は97行目の通り、"NT AUTHORITY\SYSTEM"となっています。
271 : nobodyさん - 2010/11/26(金) 22:19:29 ID:??? (+56,+28,-5)
> ID変わって失礼します。
> ID変わって失礼します。
> ID変わって失礼します。
273 : nobodyさん - 2010/11/26(金) 22:36:35 ID:??? (+4,-29,-10)
274 : nobodyさん - 2010/11/26(金) 23:42:37 ID:??? (+37,-29,-56)
>>273
ありがとうございます。
ですが、このトピックの方はApacheでは実行できてIISでは実行できない
という現象みたいで、自分はApacheで実行できない状態なんです。
>>どうやら、Apacheではcmd.exeの指定は要らないが
とありますので、これじゃない と思います。
275 : 239 - 2010/11/27(土) 00:05:56 ID:??? (+56,-30,-176)
コンパイルは自分には難しそうなので、とりあえず以下のように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で何とかしようと思いますが、
ヒープメモリ?を解放する方法などがあればご教示ください。よろしくお願いします。
276 : nobodyさん - 2010/11/27(土) 03:33:36 ID:??? (+96,+29,-6)
>>274
またサヨクがニワカで保守気取りか
278 : nobodyさん - 2010/11/27(土) 09:24:29 ID:??? (-4,-27,+1)
男は黙ってstrpos
279 : nobodyさん - 2010/11/27(土) 11:26:16 ID:??? (+70,+29,-18)
>>276
またウヨクがニカワで捕手気取りか
280 : nobodyさん - 2010/11/27(土) 11:27:12 ID:??? (+62,+29,-19)
>>275
終了させないとだめなんでないの?
281 : nobodyさん - 2010/11/27(土) 15:37:06 ID:??? (+19,-24,-41)
>>275
前後のコードを見ないと何とも言えないが、
「dirコマンドを何度も呼ぶ」というのはどういう状態?
同じプログラムの中で exec('dir ~ を何度も実行してるってこと?
$filesは毎回初期化してるの?
282 : nobodyさん - 2010/11/27(土) 16:20:26 ID:JYCUoFVz (-25,-30,-26)
YouTubeの動画IDのように、短くユニークなIDを生成したいのですが、どうしたらいいでしょうか?
uniqid()では同じマイクロ秒で生成されると駄目なようで、uniqid(mt_rand())では長すぎるので困っています。
283 : nobodyさん - 2010/11/27(土) 16:33:37 ID:??? (+46,+23,-2)
IDが被らないようにループさせる
284 : nobodyさん - 2010/11/27(土) 16:42:10 ID:JYCUoFVz (+13,+29,-42)
言葉足らずですみません。
DBやファイルを使い生成した文字列がユニークかどうかを走査するのではなく、もっとスマートな処理方法はないでしょうか?
285 : nobodyさん - 2010/11/27(土) 16:45:23 ID:??? (+57,+29,-4)
それを使ってるかどうかなんて何で判断するんだ
286 : nobodyさん - 2010/11/27(土) 16:46:52 ID:??? (+27,+29,-12)
>>284
単純に連番にすりゃいいじゃねぇか
287 : nobodyさん - 2010/11/27(土) 16:48:25 ID:??? (+55,+27,-6)
いずれにしても番号はDBかファイルに記録しなきゃ使えないじゃん
290 : nobodyさん - 2010/11/27(土) 17:09:41 ID:??? (-1,-29,-13)
a-zA-Z0-9の重複順列5個取り出しで9億ぐらい作れるからあとは考えろ
291 : nobodyさん - 2010/11/27(土) 17:10:27 ID:??? (+22,+29,-46)
ユニークかどうか走査したくないのなら
あらかじめDBにユニークIDを鬼のように入れておいて、割り当てられてないレコードを引っ張り出して処理するしかないと思うが
293 : nobodyさん - 2010/11/27(土) 17:15:15 ID:??? (-6,-29,-17)
ファイルは溜まるが
tempnam
でいけるんちゃう?
294 : 282 - 2010/11/27(土) 17:26:12 ID:JYCUoFVz (+17,+29,-25)
>>293
試してみましたが、ファイル名が連番で保存されていました。

今、一つ閃いた事があるので試しきます。
上手くいけば報告します。
みなさんありがとうございました。
295 : nobodyさん - 2010/11/27(土) 17:31:22 ID:??? (-3,-24,+0)
>>294
Windowsか
296 : nobodyさん - 2010/11/27(土) 17:57:47 ID:??? (-1,-29,-22)
俺だったらmicrotime・2次元配列・strtoupper・strtolowerとファイル1本で処理するかなー
297 : nobodyさん - 2010/11/27(土) 18:34:35 ID:??? (+54,+29,-11)
>>294
youtubeだって結局連番っぽいのよ。
http://pc.casey.jp/archives/1901
298 : nobodyさん - 2010/11/27(土) 19:36:36 ID:??? (+57,+29,-38)
32進数とかにして、適当に大きいとこからはじめれば、連番に見えないだろ。
連番駄目なのは、どうせ見た目だけだろ、上司がそういったとか。
299 : 282 - 2010/11/27(土) 20:15:21 ID:JYCUoFVz (-12,+29,-18)
仰るとおりで。
閃いた事=>>297でして、無事解決しました。
本当にありがとうございます。
300 : nobodyさん - 2010/11/27(土) 23:39:27 ID:??? (+16,-11,-29)
昔sha1ハッシュをURLにしてたなあ…
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について