【PHP】下らねぇ質問はID出して書き込みやがれ 84
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2009/04/27(月) 21:39:11ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 83
http://pc11.2ch.net/test/read.cgi/php/1238958898/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0812783
2009/06/05(金) 13:52:02ID:fALDRgQl>>784を若干書き換えて、ループ内で現在利用できる
デコード後の文字の数を返すようにしています
$mh = curl_multi_init();
$conn=curl_init('http://www.example.com/foo.html');
curl_setopt($conn,CURLOPT_RETURNTRANSFER,1);
curl_setopt($conn,CURLOPT_ENCODING, 'gzip');
curl_multi_add_handle($mh,$conn);
$active = null;
$mrc = curl_multi_exec($mh,$active);
//php.benscom.comのコピペ
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
$tmp = curl_multi_getcontent($conn);
if (strlen($tmp)>=1) echo "今の文字数は".strlen($tmp)."だよ<br>";
ob_flush();flush();
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
0813783
2009/06/05(金) 14:12:21ID:fALDRgQl今の文字数は8150だよ
今の文字数は12001だよ
今の文字数は16370だよ
今の文字数は20521だよ
今の文字数は25237だよ
今の文字数は29685だよ
今の文字数は34473だよ
今の文字数は39667だよ
今の文字数は44072だよ
今の文字数は47822だよ
今の文字数は51734だよ
今の文字数は53975だよ
今の文字数は53975だよ
今の文字数は53975だよ
となり、きっちり段階的に取得できています。
(最後の文字数が同じものがいくつか並ぶのは
$mrcがCURLM_CALL_MULTI_PERFORMでなくなるタイミングが遅れるからのようです
本来ならfeofでループ判定するべきなのでしょう)
>>806
というわけでできます
サーバー側が平文の出力を全部バッファしてから圧縮するような実装だと
無意味ですけどね
0814783
2009/06/05(金) 14:13:44ID:fALDRgQlcurl multiだと終了前にcurl_multi_getcontentで部分取得できます
2ちゃんに関していうとrangeで部分取得すると
圧縮せずに送ってくるのであんまり意味無いんですよね
これが一般的なサーバの実装なのかは分かりかねるんですが
range+無圧縮が全体+圧縮より効率的に働くのは
rangeの範囲を相当限定できるようなケースだけだと思います
余談ですがそもそも2ちゃんのdatファイルは最大保持期間5秒とされているので
(あぼーん対策?)
一般的な2ちゃんブラウザで行われてるrangeで新着分を継ぎ足していく
手法は不適切だと思うんですよねー
0815nobodyさん
2009/06/05(金) 15:28:12ID:???私はこんな感じです。
$sql = "SELECT ".
" article_id, ".
" subject, ".
" name, ".
" mail, ".
" url, ".
" comment ".
"FROM ".
" articles ".
"WHERE ".
" article_id = 1 ".
"AND ".
" del_flg < 0 ";
(等角フォントのエディタにはればうまくいくはず)
0816nobodyさん
2009/06/05(金) 15:29:25ID:???0817nobodyさん
2009/06/05(金) 15:47:27ID:???0818nobodyさん
2009/06/05(金) 15:51:40ID:???$sql = "SELECT a, b, c, d, e
FROM hoge
LEFT JOIN hage USING (h_id)
WHERE foo = :foo
AND bar = :bar"
みたいな感じでやってるよ
もしくはオブジェクトのメソッドチェーンとかでもいいんでない?
0819nobodyさん
2009/06/05(金) 15:52:36ID:???$sql = "SELECT a, b, c, d, e
FROM hoge
LEFT JOIN hage USING (h_id)
WHERE foo = :foo
AND bar = :bar";
0820nobodyさん
2009/06/05(金) 16:56:40ID:qGPfEtmY0821nobodyさん
2009/06/05(金) 18:27:00ID:???いや、目的に対して何の検証になってないんだが・・・
バイト数からすると転送コーディングのchunked dataサイズだな
まあ予想通りだ
0823nobodyさん
2009/06/05(金) 18:35:04ID:???テーブルのID(Serial型)へのInsertがうまくいきません。
autoExecuteメソッドに、
$values = array(
//'id'(Serial型なので書かない)
'clm1' => 'text1',
'clm2' => 'text2'
);
こんな感じでデータをセットしていますが、何故かclm1の値が0で
挿入されてしまいidフィールドのシーケンスもインクリメントされません。
何か対処方法があるのでしょうか?
0824nobodyさん
2009/06/05(金) 18:47:47ID:???$sql = "SELECT "
. "* ...
0828783
2009/06/05(金) 19:37:51ID:fALDRgQl>>811のサーバ側プログラムは15kBのgzipファイルを1kずつ吐いているので
当然終了には15秒かかります。
これを>>812で読み込むとgzipファイルを全部DLしてから解凍しているのであれば
最初の「今の文字数は8150だよ」が表示されるまで15秒以上かかるはずです。
しかし実際には>>812を表示してすぐに「今の文字数は8150だよ」と表示されます。
これはcURLがDLした部分のgzipを段階的に解凍している証拠です。
あとは実際に$tmpの中身が解凍された文字列なのか?という問題ですが
これはechoで簡単に確認できます。
検証できてないというのなら反証するコード出してください。
それがプログラマーっつうもんじゃねえのかクソが
0829nobodyさん
2009/06/05(金) 20:17:21ID:???変な検証とかは自分のblogとかでやって欲しいんだが
0830783
2009/06/05(金) 20:43:27ID:fALDRgQl聞きたいのは>>785の、
gzipでエンコードされたファイルをダウンロードしながら並行して解析するための
スマートなコードです
(自分のコードでも目的自体は達成しているのですが糞コードなので)
gzipでエンコードされたファイルをダウンロードしながら並行して解析すること自体が
不可能という意見を頂いたので、それを否定するための検証がダラダラと長くなりました
ご迷惑をおかけしました
0832nobodyさん
2009/06/05(金) 20:55:28ID:???全方位天然くん歓迎だよ
0833nobodyさん
2009/06/05(金) 22:16:31ID:???0834nobodyさん
2009/06/05(金) 22:26:10ID:???CURLOPT_BUFFERSIZEがあるよ
http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTBUFFERSIZE
PHPレベルでのキャッシュもあるようだし、fdset()がどのタイミングでリターンするかは知らね
0836nobodyさん
2009/06/05(金) 22:56:04ID:???0837nobodyさん
2009/06/05(金) 23:24:35ID:u1D4YO7O解約して新規で携帯を買うしかないですか??
0839nobodyさん
2009/06/05(金) 23:41:13ID:???http://jp.php.net/manual/ja/wrappers.php.php
のphp://memoryをSplFileObjectで使う、とか?
0841nobodyさん
2009/06/06(土) 00:10:14ID:???0842840
2009/06/06(土) 00:10:59ID:???0843783
2009/06/06(土) 01:07:42ID:nrE5UTqJ>811のサーバ用で使っているgzipファイルを
ある程度長くて著作権フリーなもの、ということで太宰治の人間失格を
圧縮した物を用います(本当は日本国憲法あたりにしたかったけど短すぎた)
サイズは非圧縮時で151,900バイト、圧縮時で67,671バイトとなっています
この圧縮ファイルを1秒に8192バイトずつ送信します。(9秒後に終わる計算になります)
クライアント側のコードは下記の通り書き換えて、
経過時間、解凍された文字列の文字数、解凍された文字列の最後の文字列
を表示するようにしています
0845783
2009/06/06(土) 01:13:14ID:nrE5UTqJ$mh = curl_multi_init();
$conn=curl_init('http://www.example.com/foo.php');
curl_setopt($conn,CURLOPT_RETURNTRANSFER,1);
curl_setopt($conn, CURLOPT_ENCODING, 'gzip');
curl_multi_add_handle($mh,$conn);
$active = null;
$mrc = curl_multi_exec($mh,$active);
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
$tmp = curl_multi_getcontent($conn);
if (strlen($tmp)>=1){
echo '現在の経過時間は'.(time() - $time).'秒です<br>';
echo '解凍された文字数は'.strlen($tmp).'文字です<br>';
echo '解凍された文字列の最後「'.mb_substr($tmp,-64).'」<br>';
ob_flush();flush();
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
0846783
2009/06/06(土) 01:17:54ID:nrE5UTqJ現在の経過時間は0秒です
解凍された文字数は4738文字です
解凍された文字列の最後「たぎ越えるための頗る実利的な階段に過ぎないのを発見して、にわかに」
現在の経過時間は0秒です
解凍された文字数は16750文字です
解凍された文字列の最後「ました。ほとんど完全に近く人をだまして、そうして、或るひとりの全」
現在の経過時間は1秒です
解凍された文字数は16750文字です
解凍された文字列の最後「ました。ほとんど完全に近く人をだまして、そうして、或るひとりの全」
現在の経過時間は1秒です
解凍された文字数は35377文字です
解凍された文字列の最後「ナした。自分なども、ゴッホの原色版をかなりたくさん見て、タッチの磨v
現在の経過時間は2秒です
解凍された文字数は35377文字です
解凍された文字列の最後「ナした。自分なども、ゴッホの原色版をかなりたくさん見て、タッチの磨v
現在の経過時間は2秒です
解凍された文字数は53886文字です
解凍された文字列の最後「、邸宅と召使いを提供して置くのも、むだな事だとでも考えたのか、(」
現在の経過時間は3秒です
解凍された文字数は53886文字です
解凍された文字列の最後「、邸宅と召使いを提供して置くのも、むだな事だとでも考えたのか、(」
現在の経過時間は3秒です
解凍された文字数は72654文字です
解凍された文字列の最後「好都合な事になり、やがて自分が自殺幇助(ほうじょ)罪という罪名で」
現在の経過時間は4秒です
解凍された文字数は91351文字です
解凍された文字列の最後「オなけれゃいけないんですから。いいえ、でも、せっかくの御自慢のおav
(略)
0847783
2009/06/06(土) 01:21:00ID:nrE5UTqJというわけで、gzipの最後がサーバから送られてくるのは
>>843の通り9秒後なのですが
9秒後以前に途中まで解凍できています
0849836,848
2009/06/06(土) 02:07:31ID:JWHRbWFkいやはや申し訳ない
また何かあればよろしくお願いしますー
0850nobodyさん
2009/06/06(土) 02:12:45ID:???0851nobodyさん
2009/06/06(土) 02:46:03ID:???Rubyの専売じゃないと思うけどな。
PHPでは文字列型は可変だし、IOというinterfaceがあるわけじゃないから
個人的にはあまり必要ないと思ってしまう。。
みんな意外にOOPしてるのだろうか。
0854nobodyさん
2009/06/06(土) 04:26:42ID:???データ型によってコードをわけないということだよね。
しかし組み込みのinterfaceはないのだし、
オレ仕様のやつを自前で用意するものなのか。
例外についても同じく。。
0855nobodyさん
2009/06/06(土) 04:40:53ID:???わからんけどインターフェースが必要ない動的言語だからこそアドホックにファサードつくればいいって話じゃね?
javaじゃあるまいし
0856nobodyさん
2009/06/06(土) 04:42:19ID:???0857nobodyさん
2009/06/06(土) 05:27:45ID:???おまえら守ってる?
俺は時間なくて手抜き実装してるううううううううう!!!!!!1
ハァースッキリした
0858nobodyさん
2009/06/06(土) 08:26:27ID:C5LE110H0859nobodyさん
2009/06/06(土) 09:51:10ID:???0861nobodyさん
2009/06/06(土) 11:43:17ID:???ケータイSoftbankに替えてありきたりなメールアドレス登録したんだよ
そしたら前にそのアドレスを使ってた人へのメールが知人やらメルマガやらどんどん入ってきて個人情報だだもれなわけ
今じゃすっかりその人に詳しくなって、おばあちゃんとのメールも無難にやりとりできるまでになったぜ
オマエラもSBのメールアドレスを手放すときは気をつけなさいってこった
0862nobodyさん
2009/06/06(土) 18:12:17ID:aSUnZuuUどのようにすれば可能でしょうか?
0863nobodyさん
2009/06/06(土) 18:21:59ID:???0865nobodyさん
2009/06/07(日) 01:33:43ID:???0866783
2009/06/07(日) 01:49:50ID:QFeNdjN7gzopen('http:www.example.com…
とやろうとしたのですが、この方法だと
Accept-Encodingヘッダを出力してくれないため
サーバーからは圧縮されないままレスポンスが返ってきます。
fopenで使えるようなコンテキストがgzopenでも使えれば
ヘッダの設定ができたんですけどね
>>801
教えていただいた
>$fp = fopen("compress.zlib://http://some.website.org/example.gz", "r");
これならいけそうかな、と思ったのですがコンテキストが設定できるのは
一番左のcompress.zlib://だけでhttpには設定できないようです。
という訳でこれも圧縮されないままレスポンスが帰ってきてしまいました。
gzopenにしろこれにしろ、もともとgzipに圧縮されているファイルにしか
使えないのではないかと思います
0867783
2009/06/07(日) 04:18:14ID:QFeNdjN7chunked転送コーディングに対して誤解をされているように感じます。
chunked転送コーディングは
・http1.1でkeep-aliveを行った際に
・Content-Lengthがヘッダ発行時に未知であるため
どこがレスポンスの区切りとなるのか分からない
場合に用いるものです。
今回の例では1秒ずつsleepさせているのでいかにもそこでchunkedされそうな気がしますが、
そもそもkeep-aliveを行っていないので、サーバ側にとってchunkedする必要は全くありません
とは言っても納得できないでしょうから、
cURLをchunked転送コーディングの使えないHTTP1.0に設定しても
curl_setopt ( $conn , CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_0 );
同じ結果が得られました まんこ
0868nobodyさん
2009/06/07(日) 06:11:53ID:TrHKanMz入力>確認>登録 の流れのフォーム作ってます、そこで
事情より、確認画面では <input type="hidden" value="serialize($_POST);" />して、情報を登録画面にもちこんでます
(実際のvalueはシリアライズ値を入れた変数です)
このとき、入力画面で
<input type="text"> に「Don't let me down」を入力し、
<textarea> に 以下(Youtubeの動画の埋め込みタグ)を入れるとhiddenタグが壊れてシリアライズした中身が
画面に出てしまいます。
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/-O7PnvVgQvA&hl=ja&fs=1&">
</param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always">
</param><embed src="http://www.youtube.com/v/-O7PnvVgQvA&hl=ja&fs=1&" type="application/x-shockwave-flash"
allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
「$_POSTをserializeして引き渡し」の仕様を変更することなく、このトラブルを解決する方法あるでしょうか?
すみませんが、アドバイスお願いします
0869nobodyさん
2009/06/07(日) 07:49:10ID:e7V9OxY3//1
$fp = fopen("log.dat",r);
fwrite(join("\n",$data));
fclose($fp);
//2
$fp = fopen("log.dat",r);
while (list($tmp, $data2) = each($data))
fwrite($fp,$data2."\n");
fclose($fp);
どちらが鯖に優しいですか?
0870nobodyさん
2009/06/07(日) 07:50:19ID:???あとhiddenにname属性がないけど
0871nobodyさん
2009/06/07(日) 10:14:30ID:???> fopen("log.dat",r);
'r'と文字列で指定しろ。
ついでにrは読み込み専用だから書き込めない。詳細はfopenのマニュアル嫁。
ttp://jp2.php.net/manual/ja/function.fopen.php
どっちが優しいかといえば、そんな下らない部分を最適化する時間を他の処理を見直す時間に回すのが一番鯖に優しい。
ファイルでデータを保持するって時点でかなり高コストなんで、とりあえず2chで下らん質問してる時間でDBの勉強でもするのがベスト。
どうしてもどちらかというならば、fwriteの呼び出し回数が少ないほうが鯖に優しい。つまり前者。
(調べてないが、もしかしたら書き込みを一時的にメモリに保持(バッファ)して、ファイル書き込みは閉じる瞬間に行なう仕様かもしれん、だとしたらどっちでも同じ)
0872nobodyさん
2009/06/07(日) 11:48:46ID:???「疑わしいWebページを遮断しました」とノートンが反応するようになりました。
ソースが長いので記載はできないのですが、内容はmailtoで送信するための
名前やメアドを入力した後の「以下の内容で間違いないですか?」みたいな
画面です。値はメアド入力画面から$_POSTで受けとってます。
遮断される可能性としてはどのようなものがありますでしょうか?
すいませんがアドバイスを御願いします。
0873nobodyさん
2009/06/07(日) 11:51:07ID:???お騒がせしました。
0874nobodyさん
2009/06/07(日) 23:51:57ID:B+22q93BPHPのカウンターのサンプルを公開してるサイトはいくつもありますが
作る人によってロックするタイミングが違うみたいです。
fopenした後、ロックしてからカウント増やすのか、カウント増やしてからロックするのか、
どちらが正しいのでしょうか?
自分が使ってたのは
$f=file("log.log");
$f=$f[O]+1;
$fp=fopen("log.log","w");
ロック
fwrite($fp,$f);
クローズ
これって消える可能性ありますか?
wで飛ばした時には既に$fに数字が入っているからちゃんと書き込めると思うのですが。
0875nobodyさん
2009/06/08(月) 00:06:15ID:???0876nobodyさん
2009/06/08(月) 00:24:53ID:???それだと、読み〜ロックの間に他の人が読んだら値がおかしくなるよ。
でも消えるかなぁ。。
ロック失敗したときどうしてる??
0877nobodyさん
2009/06/08(月) 01:02:13ID:???file()はロックされてても読めるんじゃなかったっけ。
そのせいで書き込み途中のファイルを読み込んでしまい
結果飛んでしまうと。
0878874
2009/06/08(月) 01:22:30ID:f7LhTlLYありがとうございます。
>>877さんので納得しました。
ロック用のファイルってどういう事ですか?
一時的にバックアップ取るという事?
>>876
ロック失敗とか全然気にしてないです。
失敗したら書き込めないようにif構文とか作った方がいいのですか?
0879nobodyさん
2009/06/08(月) 02:33:33ID:???といったらそうでもなくて、バッファ0にして fread fwriteでも飛ぶときは飛ぶ
http://www.google.co.jp/search?q=php+flock+%E3%83%AD%E3%83%83%E3%82%AF%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA&num=50&ie=utf-8&oe=utf-8&lr=lang_ja
0880軟式PHP
2009/06/08(月) 11:08:46ID:???flockはflockとの競合を防ぐだけだから、他のプロセスがflockしてても
fopenのwで開けば0バイトで作成されるからそりゃ壊れる。
予めファイルを作成しておいて、r+で開いてflockかけるとか877の言うように
別ファイルでロックするのが定石だろう。
0881nobodyさん
2009/06/08(月) 12:22:26ID:SxkJ/CwYhoge-hoge.com<info@example.com>
エラーの内容は、この文字列のバリデーションに失敗、というものです。
サーバーがSMTP認証を行うようになったのに合わせて、
mb_send_mailからPEAR::Mailに変えたところ、このエラーが出るようになりました。
hoge-hoge=>ドットを含まない英字や、ドットを含むがMIMEエンコードした日本語=>ほげ-ほげ.コムでは大丈夫なので
ドットに対して何らかのエスケープをすればよいと思うのですがわかりません。
mb_send_mailが中で対処してくれていたのか・・・
処理方法があればおしえてください。
0882nobodyさん
2009/06/08(月) 16:46:37ID:???file関数でエラー検出するとき、よくあるのは
@file("http://hoge.com") or die("Error!");
というように、or dieがありがちだと思うんですけど、
orのあとって、return falseとかできないんですかね?
どうもエラー出るみたいなんですけど。
関数内でエラー検出し、エラーならfalseを返すというようにするには、そうすればよいでしょうか?
0883nobodyさん
2009/06/08(月) 16:52:54ID:???こんな感じでいけました。
function get2ch()
{
$err = 0;
$lines = @file("htp://2ch.net") or $err = 1;
if ( $err ) { return false; }
return true;
}
でもreturn使えないのはめんどいですね。
0884868
2009/06/08(月) 16:53:33ID:5Fnyhx60どうもありがとうございました
思ったんですが、確認ページから登録ページへの値の渡し方って
$_SESSION['postAry'] = $_POST; ってやって、
登録ページでは
INSERT INTO $table (`var`) VALUE($_SESSION['postAry']['var']);
とかした方がいいんでしょうか?
みんなこんな感じでやってるんですか?
0885nobodyさん
2009/06/08(月) 17:05:27ID:???fileやfopenは失敗するとFALSEを返すから
$lines = @file(filename);
if (!$lines) return FALSE;//失敗すると$lines===FALSEとなる
見たいな感じでも大丈夫だよ
0886nobodyさん
2009/06/08(月) 18:19:14ID:???0887nobodyさん
2009/06/08(月) 18:24:57ID:???真偽を返すもの以外を使うなら普通にif文でいいわな。
0888nobodyさん
2009/06/08(月) 18:33:42ID:9VTPEhgM0889nobodyさん
2009/06/08(月) 19:09:05ID:???通常の動きはAのページで
フォームに入力したデータをPOST送信⇒Bのページへジャンプ
BのページでPOSTされてきたデータをsessionに保存⇒Cのページへリダイレクト
Cのページでsessionに保存されたデータを元にページを表示
この動きをフォームを使わずにCのページを期待通りのページで取得したいんですが
まず、fsockopenでBのページへ直接、POSTデータをfputsして
file_get_contentsとかfileとかreadfileでCのページを読みに行くと
sessionが違くなってしまうためか期待通りのページが取得できないんです
file_get_contentsとかでsessionを引き継いだままページを取得する方法ってありますか?
教えてください偉い人
0890nobodyさん
2009/06/08(月) 19:40:52ID:???0891889
2009/06/08(月) 20:06:04ID:RF6d0qBMvar_dump(apache_request_headers());
コレと
<?php
// ストリームを作成します
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
// 上で設定した HTTP ヘッダを使用してファイルをオープンします
$file = file_get_contents('http://www.example.com/', false, $context);
?>
コレですか?
0892nobodyさん
2009/06/08(月) 20:16:41ID:???0893nobodyさん
2009/06/08(月) 20:20:25ID:???0894889
2009/06/08(月) 20:27:36ID:RF6d0qBMちげーよウェェエン
0896889
2009/06/08(月) 20:38:58ID:RF6d0qBM沢山あるから一括してやりたいんですよ
すぱむじゃねーよ
0897nobodyさん
2009/06/08(月) 21:26:32ID:???0898nobodyさん
2009/06/08(月) 21:59:17ID:???0899889
2009/06/08(月) 22:43:46ID:RF6d0qBM$context_options = array (
'http' => array (
'method' => 'POST',
'header'=> "Content-type: application/x-www-form-urlencoded\r\n"
. "Content-Length: " . strlen($data) . "\r\n",
'content' => $data
)
);
$context = stream_context_create($context_options);
file_get_contents("http://example.com/",false,$context);
var_dump($http_response_header);
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Cookie: foo=var\r\n"
)
);
$context2 = stream_context_create($opts);
$file = file_get_contents("http://example.com/owner.php?mode=update",false,$context2);
var_dump($file);
0900nobodyさん
2009/06/09(火) 00:19:48ID:???GDの処理速度自体は当然変わらない。
PHPスクリプトが動き始めるまでの時間は普通どおり短くなる。どの程度速くなるかは検索でもしてみれ。
ざっと考えたけど、リクエスト数が大きめならスループットは改善すると思う。
リクエストが多いわけじゃないなら、それほど高速化は期待できない。
0901nobodyさん
2009/06/09(火) 04:19:06ID:k9to3OUtリトライがうまく行きません。
-t 1000 と -w 300 を書いたのですが、一度実行されて
終了してしまいます。
wget --save-headers --timeout=600 -t 1000 -w 300 -O $loginhtml --no-cache --no-check-certificate http://localhost/hogehoge/hoge.php?hoge=hoge 2>&1
というような感じで、一回だけなのですが
http://localhost/hogehoge/hoge.php?hoge=hoge
のプログラムはちゃんと実行されていました。
(http://localhost/hogehoge/hoge.php?hoge=hogeが一回終了するまでは60秒かかります。)
スレ違いぽいですが何かアドバイスよろしくおねがいします
0902nobodyさん
2009/06/09(火) 04:29:07ID:7d8qt2bF692 :名前は開発中のものです。:2009/06/09(火) 00:57:34 ID:2fI/sHFo
何言ってんだ。プログラマにまともな精神持った奴がいた試しなんてねえよ。
第一プログラマと精神科なんてほとんどセットなのに今更それを語るとか情弱以下だろ。
0903nobodyさん
2009/06/09(火) 04:44:10ID:???wgetのことは全然詳しく無いので月並みに言えば
オプション減らしたり普通のWebページが取れるか試してみたりして原因の切り分けしてみては?
0904nobodyさん
2009/06/09(火) 06:18:41ID:k9to3OUt書くのを忘れていましたがosはwindowsでしたすいません。
そして、あれからいろいろと試していると
どうやらwindowsだとwgetだけでは無理みたいでして、
タスクスケジューラーを使うとうまくいきました。
ありがとうございました!
0905nobodyさん
2009/06/09(火) 11:27:56ID:???PHP内部エラーではなく、自分で指定した条件
(例えば、DBから取得したデータにバリデートをかけたらfalseだった、とか)
に応じてログファイルに時間やエラー内容等を記録し、
最後にメールに通知してくれるようなのを探しています。
自分で作れないこともないとは思いますが、多くの人に利用されていて、
実用に耐えているものであれば、そちらを使ってみたいと思っています。
0906nobodyさん
2009/06/09(火) 11:53:30ID:???メール送信くらいは既存ライブラリ使ってもいいけど
0907nobodyさん
2009/06/09(火) 12:03:59ID:???PHPでエラーが起きたときにメールでアラートをあげるって事だよね?
PHPでログ出力するんだから同時にメールも送れれば良いと考えるのはわかる。
でもそういう時に俺なら、ログ監視(というかサーバ監視)する別アプリをたてるけどな。
商用ならJP1とかopenviewとか千手とか、フリーならzabbixとか。
0908nobodyさん
2009/06/09(火) 12:28:17ID:???その処理に一回数分かかるとして、処理するのもphpだけだとすると
その処理中にブラウザ閉じられても処理は最後までやってくれるのかお
echoとかはなしとして
0909nobodyさん
2009/06/09(火) 12:42:17ID:1S65lMji開いてリクエスト全部送信したら処理始める
だったような気がする
閉じても処理は続く
0910nobodyさん
2009/06/09(火) 13:30:37ID:OwEGJi1tカスタマイズする必要性が出てきたのですが、
自分は今UTF-8で作ってて、ライブラリもすべてUTF-8です。
そこで質問ですが、古いプログラムに手を加える時
文字コードはどうした方が良いですか?新しくするべきですか?
それともそのままの文字コードで作っていった方が良いですか?
0911nobodyさん
2009/06/09(火) 13:33:06ID:1S65lMji新しくってUTF-8がECU-JPより新しいという概念で文字コード決めてるのか?
レス数が900を超えています。1000を超えると表示できなくなるよ。