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

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

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0611nobodyさん2011/05/24(火) 12:17:49.41ID:???
>ただ標準関数があるかないかだけ知りたかったので
そのような内部(ビルトイン)関数は無い
06126082011/05/24(火) 12:23:32.00ID:B17q1BJi
>>611
ありがとうございます
おとなしくPHPで実装しますか
0613nobodyさん2011/05/24(火) 12:26:44.38ID:???
それか諦める
0614nobodyさん2011/05/24(火) 12:27:00.31ID:???
どうせNet_URLあたりで一瞬でしょ
0615nobodyさん2011/05/24(火) 12:39:17.62ID:???
一方ロシアはdirnameを2回呼んだ
0616nobodyさん2011/05/24(火) 13:03:46.05ID:???
dirname関係ないでござる
0617nobodyさん2011/05/24(火) 13:22:12.72ID:4tHNdJ+f
ニコ生からコメントを取得したいのですがうまくとれません
どなたかご教示お願いします

$svr = "msg103.live.nicovideo.jp";
$port = "4桁の数字";
$thread = "数字";

$fp = @fsockopen ($svr, $port, $errno, $errstr);

if (!$fp) {
echo "Error:{$errno}, {$errstr}\n";
return false;
}

fputs($fp, "<thread thread=\"{$thread}\" res_from=\"-200\" version=\"20061206\" \/>\0");

while(true){
while(!$char = fgetc($fp)){
echo $char;
}
sleep(2);
}
socket_close($fp);
06185992011/05/24(火) 13:40:24.73ID:jZjKrKf9
>>602-604
ありがとうございます。
SJISと思い込んでおりましたがSJIS-winだったようですorz
PHP以前の問題に回答していただき有難う御座いました。
0619nobodyさん2011/05/24(火) 16:53:51.35ID:???
GZIPの展開処理でdataスキームを使うとエラーが出る環境があります。
エラーが出た場合、tempファイルを一旦作ってから処理しているのですが、
dataスキームが使える環境と使えない環境の違いがわかりません。
どなたかご教示ください。

// エラーが出ることがある部分
$zp = @gzopen('data:application/x-gzip;base64,'.base64_encode($gzbody), 'rb');
//$zp = @fopen('compress.zlib://data:application/x-gzip;base64,'.base64_encode($gzbody), 'rb'); // これも同じ
0620nobodyさん2011/05/24(火) 16:54:31.46ID:b9bCoq0a
ID忘れてました
06216192011/05/24(火) 16:56:39.02ID:???
【確認した環境】
× CentOS PHP5.1.6
○ WindowsXP PHP5.3.5
0622。 ◆oDupeixhZv52 2011/05/24(火) 17:17:17.73ID:???
http://www.php.net/manual/ja/zlib.installation.php
06236192011/05/24(火) 17:52:20.30ID:???
ありがとうございます。
php -i | grep configure | sed -e 's/ /\n/g' | grep zlib
で --with-zlib は確認できます。
0624nobodyさん2011/05/24(火) 20:24:43.45ID:???
dataは5.2からです
0625nobodyさん2011/05/24(火) 20:35:47.52ID:???
http://www.php.net/manual/ja/wrappers.data.php
はっておきますね
06266172011/05/24(火) 20:37:24.93ID:???
どなたかお願いします
0627nobodyさん2011/05/24(火) 20:45:47.29ID:???
うまくとれませんじゃ解りません
もうちょっと原因の切り分けをすべきです
ぱっと見で言えば、無限ループじゃね?という感じか
Cとかみたいに随時出力とかはそれでは出来ないけど
0628nobodyさん2011/05/24(火) 20:57:25.74ID:???
>>626
ニコ生の規約に違反するので教えられません
0629nobodyさん2011/05/24(火) 21:05:09.24ID:???
バカばっかだなwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0630nobodyさん2011/05/24(火) 21:30:25.46ID:???
お前モナwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0631nobodyさん2011/05/24(火) 21:37:23.37ID:???
さすがに>>627はコードを読んでないし>>628はapiも知らない無知
こいつらのせいでPHPスレの回答者はなめられていい迷惑だ
0632nobodyさん2011/05/24(火) 22:40:26.12ID:???
>>631
お前一人のせいで全員が迷惑していることを少しは自覚しろ
0633nobodyさん2011/05/25(水) 00:11:39.33ID:???
>>631
さすがの俺でもコードを読んだら無限ループだったわ
06346192011/05/25(水) 00:15:43.20ID:???
>>624-625
ありがとうございました。
0635nobodyさん2011/05/25(水) 09:42:45.17ID:???
コメントを取得するのに失敗しているのは無限ループの所は関係ないと思うけどな
バカの一つ覚えみたいに無限ループがなんて騒いでるのも己のスキルがバレるよ
0636nobodyさん2011/05/25(水) 11:11:00.56ID:5sX1Dxk4
$query="insert into myblog(title,abstract,context,uptime)";
$query .="values(\"" .$url. "\",\"".$data."\",\"".$data."\",CURDATE())";
こんな感じでinsertしてるのですがうまくいきません
すいませんがどなたがご教示下さい
0637nobodyさん2011/05/25(水) 11:24:48.51ID:???
>>636
釣りじゃないならエラーメッセージとテンプレ
エスパーすると $data = mysql_escape_string($data); を実行
0638nobodyさん2011/05/25(水) 11:25:03.75ID:jb860Ok3
memory_limitの値を取得する方法ってないですか?

php.iniでの設定が「512M」になっていると、
ini_get('memory_limit')とすると「512M」と文字列のまま返ってきます。

数値で返ってくるような関数は実装されておりますでしょうか。
(なければ、512Mの文字列を数値に変換する処理が挟むので・・・)

やりたいこととしましては、
大量のデータを取り込む
 ↓
メモリ使用率判定で、80%ほど使われていれば途中でエラーと行番号を出す

memory_get_usage()と比較して判定

宜しくお願いします
0639nobodyさん2011/05/25(水) 11:29:07.96ID:???
>>638
たぶんない
というか、$limit = (int)ini_get('memory_limit'); だけで済むでしょ
0640nobodyさん2011/05/25(水) 11:35:57.00ID:jb860Ok3
>>639
> というか、$limit = (int)ini_get('memory_limit'); だけで済むでしょ

いやそれはないだろwwwwwww
0641nobodyさん2011/05/25(水) 11:38:11.36ID:???
※ここはレベルの低い回答者も顔がデカイので粘着に注意しましょう
 彼らは顔真っ赤になると自分を肯定するために荒らすので注意しましょう
0642nobodyさん2011/05/25(水) 11:42:08.10ID:???
>>641
ね。おちおち質問も出来ん。
0643nobodyさん2011/05/25(水) 11:46:37.53ID:???
>>641-642
>>641-642
>>641-642
0644nobodyさん2011/05/25(水) 12:06:35.76ID:???
>>638
RTFM
http://www.php.net/manual/ja/function.ini-get.php
0645nobodyさん2011/05/25(水) 12:07:34.43ID:???
>>635
>>617のソースのみから考えられるのって無限ループと
fputsしてる部分で \/の\が不要って部分ぐらいだろ。
そしてどの段階でコメントが取得できていないと書いてないから不明
PHPを表示させて取得できないっていうなら無限ループだし
ループ無しの状態でfgetcしてもとれないのかも不明
質問者が手を抜きすぎなんだよ
0646nobodyさん2011/05/25(水) 12:17:41.43ID:???
\0も不要だな・・・。なぜnull文字を・・・。PHPとCは違うぞ。
0647nobodyさん2011/05/25(水) 12:20:57.54ID:???
と思ったら\0はAPIの仕様か・・・。
0648nobodyさん2011/05/25(水) 12:25:22.44ID:???
分かんない奴は黙っててくれよ。。。。スレが汚れるだけだから
0649nobodyさん2011/05/25(水) 12:30:34.02ID:???
分かんない奴はというならお前が答えてやれよw
0650nobodyさん2011/05/25(水) 12:34:40.94ID:JzX2/aKg
$str = "<text></text>";
preg_match("/<text>(.+?)<\/text>/", $str, $m);
print_r($m);

結果はこうなりますが
Array
(
[0] => <text>abc</text>
[1] => abc
)
これをキャプチャするabcだけ取得した形にする方法はありませんか?
0651nobodyさん2011/05/25(水) 12:51:11.80ID:5sX1Dxk4
$query = "insert into myblog (title,abstract,context,uptime)";
$query .= " values (\"" . $url . "\",\"" . $url . "\",\"" . $url . "\",CURDATE())";

こんな形で解決しました
有難う御座いました
0652nobodyさん2011/05/25(水) 12:52:28.00ID:???
>>650
array_shift($m);
0653nobodyさん2011/05/25(水) 12:54:20.44ID:???
$m[1]
0654nobodyさん2011/05/25(水) 13:54:43.50ID:???
この質問定期的にくるね
0655nobodyさん2011/05/25(水) 13:59:17.74ID:???
無限ループ無限ループと馬鹿にするので質問と回答の無限ループを作ってみた
0656nobodyさん2011/05/25(水) 14:20:09.56ID:???
配列が空かどうか調べる方法を教えてください
0657nobodyさん2011/05/25(水) 14:23:26.04ID:vv7yAL0x
$a = array(array(),array(),array());
これが空と判定されて
$a = array(array(1,2,3),array(),array());
が入っていると判定する方法はありませんか?
値は数字とは限りません
0658nobodyさん2011/05/25(水) 14:30:15.42ID:???
>>657
var_dump((bool)array_filter($a, 'count'));
06596172011/05/25(水) 14:55:26.09ID:???
解決できました
fgetcを使ったのがいけないみたいです
0660nobodyさん2011/05/25(水) 15:11:51.33ID:???
>>658
それ面白いね
0661nobodyさん2011/05/25(水) 15:45:03.45ID:???
>>655
回答しないとループしないぜ。
俺は今回回答しないことに。てか、過去ログ見ろって思うよね。
0662nobodyさん2011/05/25(水) 15:49:58.98ID:???
さすがに無限ループが原因と思ってる回答はねーわな
0663nobodyさん2011/05/25(水) 17:40:34.17ID:???
$a = array(1,2,3,4,5,6,7,8,13,24,100,54,23);
配列内の値を2で掛けた値に変更したいのですがどうやるのが一番よいですか?
0664nobodyさん2011/05/25(水) 17:43:37.47ID:jb860Ok3
どうやるのが一番良いって言われても・・・。
どういうやり方があって各メリットがあって、それに対して意見求めるならわかるんだが
ただ単に「どうやるのが一番よいですか?」ってただの教えて君にしか見えないよ
0665nobodyさん2011/05/25(水) 17:50:42.86ID:???
無限ループを解凍したあだ名は無限ループ君が荒らしてるのか
0666。 ◆oDupeixhZv52 2011/05/25(水) 17:59:26.70ID:???
>>663
array_walk($a,function(&$v){$v*=2;});
とか
foreach($a as $var=>$val)$a[$var] = $val*2;
0667nobodyさん2011/05/25(水) 18:09:35.07ID:???
>>663
>>658がヒントになりそうだな
0668nobodyさん2011/05/25(水) 19:34:25.69ID:???
>>666
foreachの参照でok
0669nobodyさん2011/05/25(水) 20:11:24.92ID:???
foreach($a as &$v)$v*=2;
0670nobodyさん2011/05/26(木) 04:11:50.15ID:???
キタっ、検索エンジンスパム
http://www.c-recipe.biz/
0671m ◆HtQ8Kj2zzc 2011/05/26(木) 09:19:06.10ID:Hn9Exv6E
【OS名】CentOS release 5.4
【PHPのバージョン】5.1
【連携ソフトウェア】なし
【質問内容】
セッション管理での質問です。

session_start()の後にガベージコレクションが動くと思うのですが以下の状態になって困っています。

ガベージコレクションの実行確立は100%(session.gc_probability=100,session.gc_divisor = 100)
session.gc_maxlifetimeを10秒に設定して1回目の処理でsession_start()時点でセッションファイルを作成。
同じ処理を15秒後に再度実行、session_start()直後に1回目で作成したセッションファイルが削除される。

session_start()の時点でセッションファイルの寿命が伸び、作成から0秒なのでガベージコレクションの
削除対象とはならないと思うのですがこの考え方は間違っていますか?

また、この状態は正常ですか?
回避する方法はありますでしょうか?
0672nobodyさん2011/05/26(木) 11:17:31.15ID:???
>>671
> session_start()の時点でセッションファイルの寿命が伸び、作成から0秒なのでガベージコレクションの
> 削除対象とはならないと思うのですがこの考え方は間違っていますか?
間違っている。
session_start()内の処理順序は、セッションファイルの読み込み→GCの起動。
GCは単純にファイルの更新日時を見て削除する。
セッションファイルの読み込みだけではファイルは更新されないので寿命は延びない。

> また、この状態は正常ですか?
正常。

> 回避する方法はありますでしょうか?
session_start()直後にsession_regenerate_id()を呼べば、
新しいセッションファイルが作成されるのでセッションを継続できる。
他にもあるかもしれないけど知らない。
0673nobodyさん2011/05/26(木) 11:19:13.28ID:???
やったことないけど、間違ってるんのカナ

同じセッションIDでも

不要セッションファイル削除
↓
以前のセッションファイル読込み
↓
新たにセッションファイルに書き込み

てなっとるんかな?わしも知りたい
0674nobodyさん2011/05/26(木) 11:20:38.54ID:???
ほー 逆なのね
0675nobodyさん2011/05/26(木) 11:29:40.63ID:???
知りたいならsession_set_save_handlerあたりをつかって
自分でDBとかに保存するプログラムを書くのが一番理解しやすいと思うよ
0676671 ◆HtQ8Kj2zzc 2011/05/26(木) 12:51:53.70ID:Hn9Exv6E
回答ありがとうございます。

session_start()内の細かい処理はわかりませんが、session_start()が終わった時点でファイルの更新日時は更新されるようです。
GCが別の更新日時を見てるのか…。
セッションファイルの読み込み→GCの起動→セッションファイルの更新という順番なのか…。

そもそも、session_regenerate_id(true)を行ったときに以下のエラーがでたのでこの問題に気づきました。
session_regenerate_id()では問題ないのですが、元session_regenerate_id(true)を利用したいのですよね。

[エラーメッセージ]
Warning: session_regenerate_id() [function.session-regenerate-id]:
Session object destruction failed in ファイル名 on line 42

session_set_save_handlerは試してみます。
0677nobodyさん2011/05/26(木) 20:49:39.23ID:OIghcQ22
$str1 = 'あああ';
echo mb_detect_encoding($str1, "UTF-8,sjis-win,eucjp-win");//UTF-8
$str2 = <strong>'あああ</strong>';
echo mb_detect_encoding($str2, "UTF-8,sjis-win,eucjp-win");//SJIS-win

と言う結果になります。ページの文字コードはUTF-8です。
どうして後者のHTMLが入った場合はSJISになるのでしょうか?
0678nobodyさん2011/05/26(木) 21:15:36.65ID:???
mb_detect_encodingの正しい使い方をしましょう
0679nobodyさん2011/05/26(木) 21:34:36.21ID:???
それを質問してるんだろうが。くずが
0680nobodyさん2011/05/26(木) 21:35:02.20ID:???
氏ね
0681nobodyさん2011/05/26(木) 21:41:04.82ID:???
>>679-680
おまいら両方とも消えろ
0682nobodyさん2011/05/26(木) 22:09:43.48ID:???
>>677
再現しない
下のコードでも本当にそんな結果になる?

<?php
$str1 = "\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82";
echo $str1, ':', mb_detect_encoding($str1, "UTF-8,sjis-win,eucjp-win"), PHP_EOL;
$str2 = "\x3c\x73\x74\x72\x6f\x6e\x67\x3e\xe3\x81\x82\xe3\x81\x82\xe3\x81\x82\x3c\x2f\x73\x74\x72\x6f\x6e\x67\x3e";
echo $str2, ':', mb_detect_encoding($str1, "UTF-8,sjis-win,eucjp-win"), PHP_EOL;
0683nobodyさん2011/05/26(木) 22:16:33.72ID:???
>>677
両方ともUTF-8になるよ。
syntax errorにならない最少コードをちゃんと書いて試して環境を添えて報告して。
0684nobodyさん2011/05/26(木) 22:19:49.17ID:OIghcQ22
>>682
そのコードであればUTF-8になります。

実際は、フォームから送信された値をチェックしてるんです。
それでPOST内にHTMLがあるとSJISになってしまうので調べていました。
>>677のような最小のコードを書いてもHTMLがあるとSJISになるので
どうしたものかと悩んでいました。

特にHTMLが変数に入っているからmb_detect_encodingが効かないとか
そう言う事はないみたいですね。サーバ側の問題かもしれません。
もう少し調べてみます。ありがとうございました。
0685nobodyさん2011/05/26(木) 22:27:24.08ID:???
サーバの文字コードの設定ぐらい掛けや
0686nobodyさん2011/05/27(金) 00:22:17.49ID:???
文字コードの設定は掛かっていません
0687。 ◆oDupeixhZv52 2011/05/27(金) 11:15:08.73ID:???
その文字の実際の文字コードは何?
0688nobodyさん2011/05/27(金) 11:21:37.18ID:???
ページの文字コードはUTF-8ですが、文字の文字コードはどうやって調べるのでしょうか。
というより、文字コードを調べるためにmb_detect_encodingを使ったわけですが。
0689。 ◆oDupeixhZv52 2011/05/27(金) 11:30:23.10ID:???
まあ、何がどうなってるのか分からんので切り分けですよ。
フォームから送信された値を
print_r( unpack("H*",$str)); で
0690nobodyさん2011/05/27(金) 11:46:49.71ID:???
formタグに accept-charset 属性を付けても同じ結果になる?
0691nobodyさん2011/05/27(金) 12:03:47.56ID:???
PHP_EOLって最近よくみるな
0692nobodyさん2011/05/27(金) 12:07:03.08ID:???
違った、PHP_ELOって最近よくみるな
0693nobodyさん2011/05/27(金) 12:07:45.18ID:???
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
0694nobodyさん2011/05/27(金) 12:30:03.23ID:???
◆回答者への注意
・ 回答者として、態度をわきまえること。
0695nobodyさん2011/05/27(金) 12:34:21.62ID:???
>>688
phpの文字コードだけ調べてform送信しているページの文字コードを調べてないに一票
formの文字コードが Shift_JIS で>>677も実際は $str1 = 'aaa'; $str2 = '<strong>あああ</strong>'; だから $str2 だけ SJIS-win になるんだろう
0696nobodyさん2011/05/27(金) 12:40:46.74ID:???
>>694
もっと上から目線で偉そうに挑発的に回答しないといけないのか?
俺小心者だから困っちゃうな・・・
0697nobodyさん2011/05/27(金) 12:53:44.16ID:???
>>696
語尾にニャを付けにゃさいと言ってるにゃ!
0698nobodyさん2011/05/27(金) 13:13:39.08ID:???
PHP初心者が多いのにプライド上級者だけは多いスレだからな
0699nobodyさん2011/05/27(金) 13:21:52.85ID:???
自己紹介か?
0700nobodyさん2011/05/27(金) 14:25:35.98ID:FAcyXKz2
すみません。
メンバーのプロフィールをMySQLで管理するシステムを作っているのですが
登録される画像は皆さんどう入れていますか?
バイナリでMySQLに入れるようにすればいいんでしょうか?
それとも画像用のフォルダを作ってそこに入れればいいのでしょうか?
自分で使う用ではなく、他人に使わせる用なので悩んでいます。
ちなみに、メンバーは総数で数十人というところです。
0701nobodyさん2011/05/27(金) 14:31:41.18ID:???
>>700
うちは後者でやってるにゃ
0702nobodyさん2011/05/27(金) 14:36:54.98ID:???
画像ファイルを総当たりで見られても良いならフォルダ
見られたら拙い物であればDBからPHPを通して持ってきている
0703nobodyさん2011/05/27(金) 14:38:38.52ID:???
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
0704nobodyさん2011/05/27(金) 14:55:55.60ID:WQFzDbB3
>>700
フォルダは危険だな。
画像なんていらねーよ
諦めろ
07057002011/05/27(金) 14:58:52.61ID:FAcyXKz2
ありがとうございます。
DBでやってみることにします。

>>704
画像必須なサイトのようなので
0706nobodyさん2011/05/27(金) 14:58:52.43ID:???
ログインしないと見れないようにするならデータベースに入れとけ
そうでないなら直リンだけふさぎたいだけならhtaccessで設定しろ
07077002011/05/27(金) 14:59:34.26ID:FAcyXKz2
ぶっちゃけ風俗サイトです
0708nobodyさん2011/05/27(金) 15:05:48.59ID:???
業務サイトなら自分でかんがえろ
0709nobodyさん2011/05/27(金) 15:15:25.51ID:???
>>700
public_html 配下になければフォルダでもいいと思うけどなあ
0710nobodyさん2011/05/27(金) 15:22:11.12ID:???
公開ディレクトリかつpublic_htmlじゃないところはどうなんですかね。
■ このスレッドは過去ログ倉庫に格納されています