HTTPアクセスのたびにnewして使うと大量アクセス時にボトルネックになるらしい。
staticで宣言して、使いまわすのがよいそうです。
1ホストにつき1HttpClientオブジェクトがルール。
使いまわすとなると同時アクセスの心配がでるけど、それはHttpClient的には想定済なのだそうです。 どこまで大丈夫なんだろうか・・・?
HTTPアクセスのたびにnewして使うと大量アクセス時にボトルネックになるらしい。
staticで宣言して、使いまわすのがよいそうです。
1ホストにつき1HttpClientオブジェクトがルール。
使いまわすとなると同時アクセスの心配がでるけど、それはHttpClient的には想定済なのだそうです。 どこまで大丈夫なんだろうか・・・?
installdir/apache2/htdocs/favicon.ico があるので差し替える。
function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; }
例えば http://www.example.com/?me=myValue&name2=SomeOtherValue なら
//最初のパラメータ(me) var first = getUrlVars()["me"]; //2つ目のパラメータ(name2) var second = getUrlVars()["name2"];
javascript部
<script type = "text/javascript"> <!-- function functionName() { var select1 = document.forms.formName.selectName1; //変数select1を宣言 var select2 = document.forms.formName.selectName2; //変数select2を宣言 select2.options.length = 0; // 選択肢の数がそれぞれに異なる場合、これが重要 if (select1.options[select1.selectedIndex].value == "果物") { select2.options[0] = new Option("りんご"); select2.options[1] = new Option("みかん"); select2.options[2] = new Option("オレンジ"); } else if (select1.options[select1.selectedIndex].value == "野菜") { select2.options[0] = new Option("キャベツ"); select2.options[1] = new Option("きゅうり"); select2.options[2] = new Option("にんんじん"); select2.options[3] = new Option("たまねぎ"); } else if (select1.options[select1.selectedIndex].value == "肉類") { select2.options[0] = new Option("豚肉"); select2.options[1] = new Option("牛肉"); } } //--> </script>
HTML部
<body bgcolor onLoad="functionName()"> <form name="formName" method="post" action="./pathToProgramFile"> <!--選択肢その1--> <select name = "selectName1" onChange="functionName()"> <option value = "果物">くだもの</option> <option value = "野菜">やさい</option> <option value = "肉類">にくるい</option> </select> <!--選択肢その2(選択肢その1の項目によって変化)--> <select name = "selectName2"> </select> </body>
<?php if ( $_POST['mode'] === 'download' ) { //仮のデータ $data[0]['fruit'] = "オレンジ"; $data[0]['price'] = "100円"; $data[1]['fruit'] = "グレープ"; $data[1]['price'] = "200円"; $data[2]['fruit'] = "桃"; $data[2]['price'] = "300円"; //配列にデータが入っている場合は1行の文字列にしてカンマ区切りのデータにしましょう //末尾は改行コードで。''じゃなく、""でくくりましょう。 for ( $i = 0 ; $i < count ( $data ) ; $i ++ ) { $csv_data.= $data[$i]['fruit'].','.$data[$i]['price']."\n"; } //出力ファイル名の作成 $csv_file = "csv_". date ( "Ymd" ) .'.csv'; //文字化けを防ぐ $csv_data = mb_convert_encoding ( $csv_data , "sjis-win" , 'utf-8' ); //MIMEタイプの設定 header("Content-Type: application/octet-stream"); //名前を付けて保存のダイアログボックスのファイル名の初期値 header("Content-Disposition: attachment; filename={$csv_file}"); // データの出力 echo($csv_data); exit(); } ?> <html> <body> <form action="" method="post"> <input type="submit" value="csvダウンロード"><br /> <input type="hidden" name="mode" value="download"> </form> </body> </html>
date = new Date("Thu, 06 Sep 2012 00:00:00 +0900"); unixtime = parseInt( date.getTime() / 1000 );
$date_unixtime_str = '946652400'; $date = new DateTime('@' . $date_unixtime_str); echo $date->format('Y-m-d H:i:s');
git clone https://github.com/letsencrypt/letsencrypt cd letsencrypt ./letsencrypt-auto certonly -w / home / bitnami / htdocs -d ses.rosacea-support.org -d sandbox.pascoe.biz
-wはウェブルートがある場所で、複数の-dで保護したいドメイン指定。
証明書ファイルは次の場所に書き込まれます。 /etc/letsencypt/live
sudo vim /home/bitnami/stack/apache2/conf/bitnami/bitnami.conf
デフォルトのSSL証明書行をコメントアウトして、次の3行を残します。
SSLCertificateFile "/etc/letsencrypt/live/ドメイン/cert.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/ドメイン/privkey.pem" SSLCertificateChainFile "/etc/letsencrypt/live/ドメイン/fullchain.pem"
sudo /opt/bitnami/ctlscript.sh restart
これでSSL化完了!
3ヶ月に一回証明書の更新は必要だよ。
DateTimePicker を使います。