【PHP】下らねぇ質問はID出して書き込みやがれ 84
■ このスレッドは過去ログ倉庫に格納されています
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等)・フレームワークは各該当スレへ
0771nobodyさん
2009/06/04(木) 15:20:05ID:???httpd経由でなく、コンソール上からの起動です。
PHPスクリプトと同じディレクトリに.batファイルを置いて、
php WorkDir.php
としています。
もちろん、パスは通しているので、スクリプト自体はちゃんと起動しています。
>>770
cmd.exeとはMS-DOSのことですよね?
php.exeのディレクトリにコピーしましたが、動作変わりませんでした。
0772nobodyさん
2009/06/04(木) 15:29:35ID:???0773nobodyさん
2009/06/04(木) 17:17:32ID:F3Dggw/Wpack('H*', $code);
で変換できるのですが、
この方法だと、
JIS X 0213の一部の漢字が変更できません。
たとえば、
2A6B2 (「月」へんに「亀」という字です)
を変換しようとすると、うまくいきません
どうにかして変換する方法はないでしょうか?
よろしくお願いします。
0774nobodyさん
2009/06/04(木) 18:00:27ID:U8QiT/yT$this->arrJob = $masterData->getMasterData("mtb_job");
とかのソースの
->の意味がよくわかりません。
どなたかお教えいただけたら幸いです。
0775nobodyさん
2009/06/04(木) 18:09:31ID:???http://en.wikipedia.org/wiki/UTF-16/UCS-2#Example_UTF-16_encoding_procedure
>>774
http://www.google.co.jp/search?hl=ja&safe=off&q=php+"->"+意味
0776nobodyさん
2009/06/04(木) 20:39:13ID:???もちろん信頼できるので。
実際に接続するわけではないので、MDB2で捨て接続作るのもアホらしいし・・・。
0777nobodyさん
2009/06/04(木) 20:54:19ID:???文字列と数値にしか対応していないのはとりあえず置いておくとして、
インジェクションとか起こるかな?
function _ociQuote($str = '', $mode = 'text')
{
if ( ( $mode === (string) 'integer' or $mode === (string) 'int' ) && is_int($str) )
{
return $str;
} else {
$str = mysql_real_escape_string($str);
$str = "'".$str."'";
return $str;
}
}
0778nobodyさん
2009/06/04(木) 20:55:13ID:???function _ociQuote($str = '', $mode = 'text')
{
if ( ( $mode === (string) 'integer' or $mode === (string) 'int' ) && is_int($str) )
{
return $str;
} else {
$str = mysql_real_escape_string($str);
$str = "'".$str."'";
return $str;
}
}
0779nobodyさん
2009/06/04(木) 21:35:00ID:???$code = '2A6B2';
$vd = hexdec($code) - 0x10000;
$w1 = ($vd >> 10) | 0xD800;
$w2 = ($vd & 0x3FF) | 0xDC00;
echo pack('n*', $w1, $w2);
0780nobodyさん
2009/06/04(木) 21:36:05ID:ygVccNwTレイアウトの都合で
ポストされた文字を半角で入れた場合は20文字で、全角で入れた場合は10文字に制限したい。
もし全角と半角が混合されていた場合、それに合わせて文字数を制限したいんです。
全角が1文字入った場合は半角は18文字、というようにしたいのです。
今はループで一文字づつ調べて半角全角文字数を数えているのですが
もっと楽な方法ありませんか?
0781nobodyさん
2009/06/04(木) 21:47:26ID:???http://jp.php.net/manual/ja/function.mb-strimwidth.php
こういうことかな?
0783nobodyさん
2009/06/04(木) 22:07:17ID:EBVfDvxX(製作するプログラムはクライアント側ということになります)
ある(やや大きめの)htmlファイルをダウンロードし、そのファイルの
中盤くらいに書いてあるデータを必要としているのですが、
通信相手のサーバに負担をかけないようにいくつかの条件を設定しました。
・gzipエンコーディングに対応
・htmlファイルのダウンロードとその解析を並列して行い、
必要となるデータが書かれている部分をダウンロードし終わったら転送を打ち切る
後者だけならfsockopenで簡単にできるのですが、
前者にも対応するとなるとちょっと簡単なやり方が思いつきませんでした。
cURL拡張を利用して製作した実験用コードを次のレスに書き込みます。
0784783
2009/06/04(木) 22:15:48ID:EBVfDvxX$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[0]);
if (strlen($tmp)>=1)echo mb_substr(curl_multi_getcontent($conn[0]),-10)."<br>\r\n";
ob_flush();flush();
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
0785783
2009/06/04(木) 22:22:44ID:EBVfDvxX(全部出力したら画面が訳の分からないことになるので…)
このコードでとりあえず目的は達成することができました。
長くなりましたがここから質問とさせて頂きます。
もっとスマートなやり方は無いものでしょうか?
言い訳のつもりではないのですが私はなにぶん初心者でして
皆さんにとって常識であることが分かっていないのです
そんなめんどくさい事やらんでもこれで一発じゃん
というコードがもしあるのでしたらお教えいただけると幸いです
0786nobodyさん
2009/06/04(木) 22:22:58ID:???0787783
2009/06/04(木) 22:25:15ID:EBVfDvxX$tmp = curl_multi_getcontent($conn);
if (strlen($tmp)>=1)echo mb_substr(curl_multi_getcontent($conn),-10)."<br>\r\n";
0788783
2009/06/04(木) 22:48:51ID:EBVfDvxXgzopenって通信にも使えるんでしょうか?
まずそこが分かっていません
第一引数がファイル名だし、できなそうに見えるんですがどうなんでしょうか
0789nobodyさん
2009/06/04(木) 22:56:40ID:???むしろダラダラセッションを張りっぱなしにされると面倒だ。解析とか後にしてとっとと切ってくれ。
サーバのためを思うなら
・適当にsleep()して間隔をあけてダウンロードする。curl_multi()で大量にコネクション張って並列DLとか最悪
・複数落とすならKeep-Aliveでセッションを張る。技術的詳細はぐぐれ。これだけでサーバへの負荷はかなり落ちる
0791nobodyさん
2009/06/04(木) 23:46:25ID:f7spCjC/オレなら
<html>
<form method="post" action="">
<textarea name="body"></textarea>
<input type="submit">
</form>
</html>
<?php
$value = trim( $_POST['body'] );
echo '[' . $value . ']';
$mb_length = mb_strlen($value);
$length = strlen($value);
echo "全角";
echo ($length - $mb_length) / 2;
echo "半角";
echo $mb_length - ($length - $mb_length) / 2;
0793nobodyさん
2009/06/05(金) 00:10:20ID:NOP8aSiI適当に書いたけど、どの変がまずかった?w
UTFで試して特に問題なかったんだけど
0794nobodyさん
2009/06/05(金) 00:20:51ID:???0796nobodyさん
2009/06/05(金) 00:26:47ID:???こんなもんは常識だと思うのだが。UTF-8には2バイトより大きい文字が多数存在する。
漢字の大半は3バイトだし、特殊な一部文字は4バイト。
0797nobodyさん
2009/06/05(金) 00:31:57ID:???0798783
2009/06/05(金) 00:37:17ID:fALDRgQl>むしろダラダラセッションを張りっぱなしにされると面倒だ。解析とか後にしてとっとと切ってくれ。
これはもう完全に実装後のチューニングの後考えるべき問題で
手法自体を否定する根拠にはならないと思います
>複数落とすならKeep-Aliveでセッションを張る。
今回は一つしかファイルを必要としないのでkeep-aliveは必要としないのですが
それはそれとして個人的な意見を言うとIE8もFF3もRFCなんか無視して
サーバ当たりの接続数を増やしている昨今 一度に3桁のファイルを落とす
なんて事がない限りもうkeep-aliveやHTTPパイプライニングにこだわる必要は無いと思います
>>790
ヒントください
0800nobodyさん
2009/06/05(金) 00:59:34ID:NOP8aSiI0801nobodyさん
2009/06/05(金) 01:50:06ID:???http://jp2.php.net/manual/ja/function.gzopen.php
user note になんか書いてあるけど、これとは違うかな
0802783
2009/06/05(金) 02:22:20ID:fALDRgQlありがとうございます
勉強になりました
ただこの手法、今一つやりたい事と噛み合わない気がするので
ちょっと調べてみます
0803nobodyさん
2009/06/05(金) 06:11:10ID:iw3Rl46Qfgetsする際に、150から200行だけの情報をゲットしたいときに
forで200回くりかえしif で$i >150 のときだけゲットするようにしたのですが、
この何もしない150回分を省きたいのです。
例えば、fopen( $dat , "r" , 150 , 200 )というように
指定できたら、と思います。
そういった方法はありますでしょうか、またそれに取って代わる関数など
方法があればよろしくお願いします。
0804nobodyさん
2009/06/05(金) 06:57:52ID:???0805nobodyさん
2009/06/05(金) 07:05:34ID:iw3Rl46Qなるほど、少しぐぐってみました
こんな便利なものがあったとは
ありがとうございました。
0806nobodyさん
2009/06/05(金) 08:00:41ID:???クライアント側でも単一ソースを取得するだけなら意味が無いというか、空回りしてるwhileが無駄
zlibは圧縮ストリームの終了フラグを見ているはずなので、そのコードではコンテンツが全て取得されてから処理されているか圧縮転送されていないだろう
パケットを拾ったりベンチマークして確認してみたほうがいいと思う
基本的にストリーム圧縮はチャンクごとに展開できないので平行解析は両立しない。適切なほうを選ぶのがいいのでは
関係ないが接続数が多い「から」Keepaliveが重要になる
こだわれよ
0807nobodyさん
2009/06/05(金) 10:42:13ID:???帯域をケチりたいなら2ch伝統のRange + Deflateでしょw
0808803
2009/06/05(金) 12:24:44ID:iw3Rl46Q$inputs = new NoRewindIterator(new SplFileObject("http://pc11.2ch.net/php/dat/1240835951.dat" , "r"));
$min = 150;
$inputs->seek( $min );
foreach($inputs as $line)
{
echo $line;
}
?>
とやってみたのですが、apache.exe終了ダイアログがでてきて
終了してしまいます。(seek以降のforeach文の部分がなくてもエラーがでます)
イメージ的には、$minまでシークさせておいて、
そこからforeachで、
という感じでできるのかなと思ったのですが・・
アドバイスよろしくおねがいいたします。
php 5.2.6 apache2.0.63
0809nobodyさん
2009/06/05(金) 12:35:03ID:???というか固定長でも無い限り普通に150回分の空回しするほうが早いと思うんだけど。
0810nobodyさん
2009/06/05(金) 12:43:56ID:iw3Rl46Q一応最高で500回くらいの空回しを考えているのですが、
そのまま空回ししておくほうがよいですかね、
今のところは空回しでやる方向でいこうと思います。
ありがとうございました。
0811783
2009/06/05(金) 13:48:15ID:fALDRgQlheader("Content-Type: text/html");
header("Content-Encoding: gzip");
$fp=fopen('target.gz','r');
if($fp!==false){
while(!feof($fp)){
$tmp = fread($fp,1024);
echo $tmp;
ob_flush();flush();
sleep(1);
}
fclose($fp);
}
サーバー側においてある15kバイトのgzipファイルを1024バイトずつ読み込み、
一秒おきに標準出力に吐き出します
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属性がないけど
■ このスレッドは過去ログ倉庫に格納されています