お客さんから注文を処理するプログラム
お客さんから注文を処理するプログラム。注文内容は汁物。何故、このプログラムを実装しようと思ったのか。正規表現をやろうと思い、色々考えてこうなった。。無駄かもしれない。でも、まあいいや。
[味噌汁]、[豚汁]、[ソーキ汁]が入力値として送られてきたら、正規表現でチェックしメニューにある場合に商品の金額を表示する。入力値がメニューにない場合、注意文言を表示するプログラム。
<?php const ERROR_MESSAGE = 'お客様が注文した商品はありません。'; // 注文を受ける $order = $_GET['order'] ?? '商品はない'; // メニューと値段リスト $menu_list = array("/\[味噌汁\]/", "/\[豚汁\]/","/\[ソーキ汁\]/"); $price_list = array("100", "110", "200"); $menu_num = count($menu_list); for($i=0;$i < $menu_num;$i++){ // 注文された品がある場合、値段を表示する if(preg_match($menu_list[$i], $order)){ $order = preg_replace("$menu_list[$i]", $price_list[$i], $order); echo $order . "円"; exit(); } } echo ERROR_MESSAGE; exit();
改良を加えていこう。
yumとrpmについて
Red Hat系のLinuxやTurbolinuxでは、プログラムの配布形式としてRPM(Redhat Package Manager)を採用している。
引用:RPMパッケージとは
だから、CentOSで必要なソフトウォアをインストールする際、RPMコマンドを使用すればインストールできるということか。 ただ、パッケージには依存関係があり、RPMコマンドを使ってパッケージをインストールをしても動かない場合がある。そこで、yumというrpmを依存関係を管理するマネージャーを使って、パッケージをインストールする。
引用:【初心者にもわかる】rpmとyumの違いと使い分け一通り
明日さらにまとめよう。
『小泉進次郎と福田達夫』 田崎史郎
- 作者: 田〓史郎
- 出版社/メーカー: 文藝春秋
- 発売日: 2017/11/17
- メディア: 新書
- この商品を含むブログを見る
文藝春秋2月号の塩野さんと小泉さんの対談を読んで、著書が言及されていたので購入。田崎さんが司会で、小泉さんと福田さんの対談をまとめた一冊。小泉さんと福田さんの農政時代の話や、二人ともの親の話が大半を占める。
農政に関わる団体が農林、農中など複数あり、組織がややこしい印象を持った。国民に分かりやすく説明するのが難しそう。政治家と官僚の仕事の中身が知れる本だった。
『パパは脳研究者 子どもを育てる脳科学』 池谷裕二
- 作者: 池谷裕二
- 出版社/メーカー: クレヨンハウス
- 発売日: 2017/08/10
- メディア: 単行本
- この商品を含むブログ (1件) を見る
著者によると子供を躾る時に、極力強制ではなく諭す方がいいとのこと。例えば、子供が勉強せずにゲームばかりやっているケース。子供に勉強をさせようと強制的な言葉を使うのではなく、「そろそろ勉強したらどう?」と優しく諭すのがいいらしい。優しく諭されてゲームをやめた場合、子供は「続けられたのに、やめてしまった」と思い、行動と感情の不一致を感じる。この場合、自分の「ゲーム」をやめた決断を自分の内面心理から説明しないといけない。やめた理由として、「ゲームが楽しくなかったから、やめたんだ」となる。また、親が辛抱強く優しく諭していると、ゲームへの興味がなくなっていくことが、実験で証明されているらしいのだ。
うーん、元日に奥様の実家に行って、親戚夫婦の子育てを見たけど、なかなか辛抱強く諭すのは難しそう。まあ、でも、やってみるのもありか。とりあえず、奥さんと話しをしてみよう。
CentOS7導入
やっとCentOS7をVagrantを使って導入した。
apacheをインストールするまではyumで出来るけど、起動とかのコマンドとか違って面白い。 明日もやろう。
CentOS7で作るネットワークサーバ構築ガイド (Network server construction gu)
- 作者: サーバ構築研究会
- 出版社/メーカー: 秀和システム
- 発売日: 2015/03/25
- メディア: 単行本
- この商品を含むブログ (3件) を見る
Pythonで「10までの整数で、2の倍数を3乗し表示する」プログラムを書いてみた
ていうことで。
# 引数を3乗し表示する def threePower(input_number): output = input_number ** 3 print(output) # 10までの整数で、2の倍数を3乗する multiple_of_two = [] for i in range(1, 11): if i % 2 == 0: multiple_of_two.append(i) for x in multiple_of_two: threePower(x)
はい、次やりましょう。
PHPのクラスのコンストラクタ
PHPのクラスのコンストラクタについて、挙動が謎だったので調査。
そのメモを記載する。
何故かPHPでクラスを作る時は、クラス内にコンストラクタを作成しないといけないと認識していた。
しかし実際には不要
PHPのコンストラクタの機能として、クラスから新たなオブジェクトを作る時に、コンストラクタメソッドを実行する。
サンプルコード
class firstClass{ public function __construct(){ echo 'first class construct' . "<br>"; } } // 親クラスにコンストラクタメソッドが設定されている class secondClass extends firstClass{ } // 子クラス、親クラスともにコンストラクタメソッドが設定されている class thirdClass extends firstClass{ public function __construct() { echo 'third class construct' . "<br>"; } } $first = new firstClass(); $second = new secondClass(); $third = new thirdClass();
表示内容
first class construct first class construct third class construct
ちなみに、親クラスのコンストラクタメソッドがprivateメソッドだった場合、子クラスが新たにオブジェクトを作ったても、親クラスのコンストラクタメソッドは実行されない。
ローカル環境のサーバの設定
ローカルの仮装環境にCentOSをインストールして色々と設定している。
SSLの設定をしようとして、色々と詰まったり理解できたりしたので記録として書く。
1、.htaccessをDocumentRootに置いても動かない
http.confで設定していたDocumentRootと認識していたDocumentRootが違っていただけだった。。
終了。
2、/etc/httpd/conf.d配下のファイルの設定が反映される
/etc/httpd/conf.d配下に、vhost.confを新規作成。その設定内容が反映されている
理由を知りたくて調査。
etc/httpd/conf/http.conf内に下記記載を発見。
Include conf.d/*.conf
納得。
SSLのついて自分なりにまとめた
ネットでSSLについて調べて、実行順をまとめた。
1、クライアントから、SSLを設定しているサーバへアクセス
2、サーバが証明書をクライアントへ送る
3、証明書が送られてきたクライアントは、証明書に含まれている公開鍵を取得する
4、公開鍵から暗号化されて共通鍵を作り、2で証明書を送られてきたサーバへ共通鍵を送る
5、4で共通鍵を送られてきたサーバは、共通鍵の暗号化を秘密鍵で複合する
●参考サイト
SSL/TLSの解説と選び方まとめ|ジオトラスト
さて、実際にローカルで設定してみよう。