PHP 問題:くりかえす
-新しく学んだこと-
・文字列をくりかえす
・改行を行わない
問題
ある文字列Xが与えられます、Xを3回繰り返して出来た文字列を出力してください。
入力例1 neko 答え nekonekoneko
入力例2 inu 答え inuinuinu
プログラミングの前に答えまでの動きをイメージします。
プログラムに直すと
何を命令しているか
3行目:標準入力された文字列を$input_lineに入れます。
4行目:$mojiという名前で空の箱を作ります。
5行目:$input_lineを3回繰り返したものを$mojiに入れます。
6行目:$mojiにある文字列に対して、改行(PHP_EOL)をしていない文字列にして$mojiへ返します。
7行目:$mojiにある文字列を表示します。
・str_repeat(対象となるもの,何回繰り返す)
上記では、$input_lineを3回繰り返した文字列を返してくれます。
・str_replace(変換する元,元をどのように置き換えるか,検索する対象)
上記では、$mojiを検索する対象として、改行を””に置き換えています。
この命令が無いと、答えが改行されて表示してしまいます。
以上で、問題を終わります。
PHP 問題:つなげた長さ
今回から、PHPでのスキル判定Bランクを目指して、学んだことを書いていきます。
-新しく学んだこと-
・標準入力
・変数
・四則演算
・出力
問題
ある棒の長さをXとして、その棒を10本、つなげたときに出来る長さを求めなさい。
入力例1 3 答え 30
入力例2 0 答え 0
プログラミングを始める前に
どのように行動すれば答えを求めれるかを、図に書いてイメージしていきます。
上の図をプログラムに起こすと
PHPのプログラムは「<?php」をスタートとして、間にどういった行動するかを命令し、終わりに「?>」と付けます。
・$
「$」マークが先頭に付いている文字は変数になります。
変数とは、文字や数字が入る箱です。箱を作って置けば、その中に入っているものを区別することができます。
上記では、入力された数字を入れる、input_lineという名前の箱を用意しています。
・fgets(STDIN)
fgets()は、()内の部分から1行をコピーしてという命令です。
(STDIN)は、標準入力を表します。ここではプログラムに入力された数字(1本の長さ)のことを指します。
・;
1つの命令が終わるごとに最後に付けます。
・四則演算
足す、引く、かける、割るの計算のことです。
PHPではそれぞれ+、-、*、/ という記号を使います。
・echo
この後に続くものを出力(表示)します。
上記では、1本の長さ×10した合計を表示します。
以上で、問題を終わります。
Gitを始めよう その5 GitHubの画面の見方
GitHubの画面
1.GitHubのサイトへ移動。
2.メニューから「Your Profile」。
2.「Repositories」タブから「git_tutorial」をクリック。
3.「index.html」をクリック。
4.「index.html」の内容。
「Raw」はコピー&ペーストしたい時に使います。
「Blame」は何のために何時、何を変更したのかを表示します。
「History」はファイルをコミットした履歴が表示されています。
以上です。
コマンドにエイリアス(別名)を付けよう
コマンドの入力を短縮して入力するのを楽にします。
エイリアスを使う理由
毎回「git status」や「git commit」と入力するのは長くて面倒なので。
コマンドにエイリアスを付ける
「git config --global alias.ci commit」(ciと入力すればcommitされる)
「git config --global alias.st status」(stと入力すればstatusされる)
「git config --global alias.br branch」コマンドについては後述。
「git config --global alias.co checkout 」コマンドについては後述。
「git config --global」の部分はPC全体の設定を反映させます。
ターミナルでの作業
1.GitBashを開く、「cd ~/documents/udemy_code/git_tutorial」を入力。
2.「git config --global alias.ci commit」と入力。
3.「git config --global alias.st status」と入力。
キーボードの「↑」キーを押すと、直前の入力をコピー&ペースト出来ます。
4.「git config --global alias.br branch」と入力。
5.「git config --global alias.co checkout 」と入力。
6.「git st」と入力。(git statusコマンドと同じ動作をします)
7.「git ci」と入力。(git commitコマンドと同じ動作をします)
終了です。
バージョン管理しないファイルは、無視しよう
バージョン管理したくないファイル
・パスワードなどの秘密情報が記載されたファイル。
パスワードを流失しないようにしましょう。
・チーム開発で必要ないもの。キャッシュやwindows共通ファイルなど
.gitignoreファイルに指定する
自動生成されるファイル、またはパスワードが記載されたファイルは管理しない。
.gitignoreファイルの書き方
(#から始まる行はコメント扱い)
#指定したファイルを除外
index.html
#ルートディレクトリを指定
/root.html
#ディレクトリ以下を除外
dir/
#/以外の文字列にマッチ「*」
/*/*.css
ターミナルでの作業
1.GitBashを開く、「cd ~/documents/udemy_code/git_tutorial」と入力。
2.「git status」と入力。(今の状態を確認)
3.「touch secret.txt」と入力。(空のファイルsecret.txtを作成)
gitignoreの動きを見るための作業です。
4.「ls」と入力。
secret.txtが追加されています。
5.「git status」と入力。
ステージに保存されていないsecret.txtがあると、表示されます。
6.VScodeを起動。
7.新しいテキストファイルを開き「secret.txt」と入力。
git_tutorialのディレクトリ下に「.gitignore」という名前で保存して、終了します。
8.GitBashへ移動。
9.「git status」と入力。
.gitignoreがステージに保存されていないと表示されます。
注目 secret.txtが表示されていない。
.gitignoreにファイルを指定すると、gitのバージョン管理からファイルが外されます。
10.「git add .」と入力、「git commit」と入力。
11.VScodeが起動後、「.gitignoreファイルを追加」と入力し保存、終了します。
Gitを始めよう その4 ファイルの移動を記録しよう
ファイルの移動を記録しよう
「git mv <旧ファイル名> <新ファイル名>」
ファイル名の変更を記録し、ステージにも変更が保存されます。
上記と同じ結果になるコマンド操作
1.「mv <旧ファイル名> <新ファイル名>」(ファイル名の変更)
2.「git rm <旧ファイル名>」(古いファイルを削除)
3.「git add <新ファイル名>」(新しいファイルを追加)
ターミナルでの作業
1.GitBashを開く。
2.「ls」と入力。
index.htmlが有るのを確認します。
3.「git status」と入力。
変更が無いことを確認します。
4.「git mv index.html index2.html」と入力。
(index.htmlをindex2.htmlというファイル名に変更)
5.「ls」と入力。
ファイル名がindex2.htmlに変更されました。
6.「git status」と入力。
元の状態に戻します
7.「git mv index2.html index.html」と入力。
8.「ls」と入力。
index.htmlに直っている。
9.「git status」と入力。
何も変更が無いことを確認して、終了です。
GitHubにプッシュしよう
プッシュとは
GitHub等のリモートリポジトリにローカルの内容をアップすること。
コミットしたら、その内容をGitHubにアップする。アップすることによって、メンバーと開発したものを共有したり、GitHubにローカル内容を保存したり出来ます。
「git remote add origin https://~」
(originというショートカット名でURLのリモートリポジトリを登録する。
「git remort add ~」を使わないと、アップする際に毎回URLを入力することになります。
リモートリポジトリへ送信する
「git push <リモート名> <ブランチ名>」
「git push orgin master」今回はこのように入力します。
GitHubサイトでの準備
1.GitHubのマイページを開く。
2.メニューから「Settings」をクリック。
3.「Developer settings」をクリック。
4.「Personal access tokens」をクリック。
Personal access tokensは、プッシュする際、ユーザーを判別するパスワードの変わりとなります。
5.「Genarate new token」をクリック。
6.目的欄には「admin」、有効期限は90日間、出来ることは全てにチェックを入れます。
記入し終わったら「Generate token」をクリック。
7.出来上がったトークンは、必ずコピーしてメモ帳などに保存します。
失くした場合は、「Genarate new token」で新たに作ります。
1.メニューから「Your profile」をクリック。
2.「Repositories」をクリックし、「New」をクリック。
3.「Repository name」の欄に「git_tutorial」。
「Description」は空欄。「Public」を選択。後の選択にはチェック無し。
終わったら「Create repository」をクリック。(リポジトリが出来る)
4.出てきたページの赤枠部分をコピーしておく。
ターミナルでの作業
1.GitBashを開く。「cd ~/documents/udemy_code/git_tutorial」と入力。
2.「git remote add origin <リポジトリURL>」と入力。
3.「git push -u origin master」と入力。
「-u」 を使うことで、次回以降にorigin masterをプッシュする際に「git push」だけでプッシュが出来ます。
4.実行すると、この画面がポップアップ。
「Token」をクリックし、欄にメモ帳にコピーした「Personal access token」を入力して、「Sign in」をクリック。
5.tokenが正しく入力されていれば、この画面になります。
6.GitHubへ戻り、ページを更新するとindex.htmlが追加されています。
確認できたら、終了です。
Gitを始めよう その3 何を変更したのかを確認しよう
その2からの続きです。
変更差分を確認する
git addする前の変更分
「git diff <ファイル名>」
git addした後の変更分
「git diff --staged」
git diffコマンドで起こっていること
ターミナルでの作業
1.GitBushを開く。
2.「git diff」と入力。
変更が無いので何も表示されません。
3.VScodeを開く。
4.index.htmlを開く、3行目に「<p>git diff</p>」と入力。
5.保存してGitBushへ。
6.「git diff」と入力。
7.「git add index.html」と入力。(ステージに追加する)
8.「git diff」と入力。
ワークツリーとステージの内容が一致しているので、何も表示されません。
9.「git diff --stage」と入力。
10.「git commit」と入力し、エディタに「git diffを追記」と入力。
保存して終了する。
11.「git diff」と入力。
ステージとコミットの間で変更が無いので、何も表示されません。
変更履歴を確認しよう
以前どのような変更があったのか、調べたいとき。
変更履歴を確認する
「git log」コマンド(全ての変更履歴を表示)
おまけ
「git log --oneline」(要点を1行で表示)
「git log -p <ファイル名>」(ファイルの変更差分を表示)
「git log -n <コミット数>」最近の変更履歴だけを見たい
「git log」コマンドで起こっていること
ターミナルでの作業
1.GitBashを開く、「cd ~/documents/udemy_code/git_tutorial」と入力し、ディレクトリを移動。
2.「git log」と入力。
最新から1つずつ古い情報へと、表示されます。
ファイルの削除を記録しよう
「git rm <ファイル名>」(ファイルを削除)
「git rm -r <ディレクトリ名>」(ディレクトリを削除)
コミットされた記録もワークツリーの記録も削除されます。
「git rm --cached <ファイル名>」
リポジトリからは消すが、ワークツリーにはファイルを残したい場合。
ターミナルでの作業
1.GitBashを開く、「cd ~/documents/udemy_code/git_tutorial」と入力し、ディレクトリを移動。
2.「ls」と入力。
index.htmlがあるのを確認します。
3.「git status」と入力。(変更状況を見る)
変更内容が無いので何も表示されません。
4.「git rm index.html」と入力。
index.htmlを削除したと表示されます。
5.「ls」と入力。
何も表示されない。=ワークツリーからindex.htmlが削除されました。
6.「git status」と入力。
リポジトリにあったindex.htmlが削除され、その削除された変更状態が、ステージに記録されています。
7.削除する前の状態に戻します。
「git reset HEAD index.html」と入力し、
「git checkout index.html」と入力。
8.「ls」と入力。
index.htmlが戻ってきています。
9.「git status」と入力。(変更内容が無いのを確認する)
10.「git rm --cached index.html」と入力。
11.「ls」と入力。
ワークツリーからはindex.htmlは削除されていません。
12.「git status」と入力。
リポジトリからindex.htmlが削除され、その変更状態がステージに記録されています。
13.「git reset HEAD index.html」と入力。(削除前の状態に戻る)
14.「git status」と入力し、変更が無いことを確認して終了です。
Gitを始めよう その2 変更を記録しよう(コミット)
Gitを始めよう その1からの続きになります
変更を記録しよう(コミット)
・「git commit」コマンド
Gitのテキストエディタが立ち上がりメッセージ付きで変更を記録します。
おまけ
git commit -m "<メッセージ>"(メッセージ付きで内容の変更を記録)
git commit -v(変更内容を表示)
分かりやすいコミットメッセージを書こう
・簡単に書く時
変更内容の要点と理由を一行で簡潔に書きます。
・正式に書く時
1行目:変更内容の要約
2行目:空行
3行目:変更した理由
ターミナルでの追加作業
1.BitBushを開く。
2.「cd ~/documents/udemy_code/git_tutorial」と入力。(ディレクトリを移動)
3.「git commit」と入力。(コミットのためにエディタが起動)
4.「initial commit」と入力。保存してエディタを終了する。
5.赤枠にinitial commitと表示されれば完了です。
現在の変更状況を確認しよう
コミットやステージに追加する前に、どのファイルが変更されたかを確認する癖を付けよう。
・「git status」コマンド
変更されたファイルを表示します
ワークツリーとステージ、ステージとリポジトリの間で変更されたファイルを表示します。
ターミナルでの確認作業
1.GitBushを開く。
2.「cd ~/documents/udemy_code/git_tutorial」と入力。(ディレクトリを移動)
3.「git status」と入力。
今は、コミットすべき変更は何も無いと表示されます。
4.VScodeを開く。
5.git_tutorialフォルダ内のindex.htmlを開く。
6.「<p>git status</p>」と入力して保存、終了する。
7.GitBushへ。「git status」と入力。
ステージに追加していない内容が有り、それは赤文字でindex.htmlだと表示されます。
8.「git add index.html」と入力。(ステージに変更の追加)
9.「git status」で確認。
コミットすべき変更が有り、それは緑文字でindex.htmlだと表示されます。
10.「git commit」と入力。(コミットのためにエディタが起動)
11.「git statusコマンドを追記」と入力。保存して終了。
「git statusコマンドを追記」と表示されます。
12.「git status」と入力。
何も変更なしと表示されれば完了です。