PHP関連のことを調べてみた2020年11月01日

PHP関連のことを調べてみた2020年11月01日

Webサービスが提供される仕組み (ブラウザとサーバー、HTTP、静的サイトと動的サイト)

全くの未経験からプログラミングを学び出して、言語の学習ばかりしていて、ふと感じた疑問。
webサービスはどんな流れでユーザーの画面に表示されてるのか?
プログラミングとは、その流れの中のどこに位置するのだろうか?
仕組みの全体像を把握して、プログラムの行き着く先が見えたらプログラミングへの理解がより深まるかと思い、web全体の基礎から学習し直すことにしました。

##■何についての記事?
下記のような疑問に対する回答を、参考書を元にまとめた記事です。
・webサービスはどんな流れで提供されてるの?
・ブラウザとサーバーの役割とは?
・静的サイトと動的サイトってどう違うの?

##■対象読者
・未経験からプログラミング学習をはじめた方
・webサービス提供の全体像を知りたい方

##■この記事のゴール
__webサービスがユーザーに提供されるまでの全体像を知る__
①リクエストとレスポンスについて
②webサーバーへのアクセス方法(URL)
③webブラウザの役割
④HTTPとは何か
⑤静的ページと動的ページの表示の仕組み

下記より、それぞれ解説していきます。

##we

元記事を表示

【最高のブラウザ】世界が変わる5秒前。Braveブラウザでインターネットの仕組みを変えよう。

## はじめに

~~これはただのプラグインではありません。Louis Armstrong によって歌われた最も有名な二つの単語、Hello, Dolly に要約された同一世代のすべての人々の希望と情熱を象徴するものです。~~
__これはただの記事ではありません。Robert E. Kahnによって歌われた開かれたインターネットへのすべての人々の希望と情熱を象徴するものです。__

## 概要

この記事ではBraveブラウザについて説明します。Braveブラウザを使えば広告なしでサイトを閲覧できたり、サイトを見るとお金がもらえたりします。また、Adsenseに代わりWebサイトやTwitterを収益化できるブラウザでもあります。しかしそれだけではなく
__1. (Googleの無料サービスに定義された)インターネットの仕組みを変える__
__2. コンテンツ製作者に適切に報いる__
ことを目的とする従来とは全く異なるパラダイムから生まれたブラウザです(製作者はJavaScriptの生みの親で元MozillaCEOのアイク氏です)。
そこで、クリエータとして収益化する方法とWebサイ

元記事を表示

Moodle 3.9 マニュアル – レッスンの活動

[原文](https://docs.moodle.org/39/en/Lesson_activity)

# レッスンの活動

# レッスンアクティビティとは何ですか?

レッスンアクティビティでは、教師は生徒にコンテンツを提示し、その回答に応じて特定のページに誘導する「分岐」演習を作成することができます。内容はテキストまたはマルチメディアです。
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/PEPGNaXZNSI/0.jpg)](http://www.youtube.com/watch?v=PEPGNaXZNSI)
レッスンアクティビティの概要

#どのように設定するのですか?

1. コースで編集をオンにした状態で、アクティビティの選択から「レッスン」を選択します。
2. レッスンに名前を付け、必要に応じて説明を付けます。
3. 他のセクションを展開して、レッスンが練習用か評定用かなどの設定を選択します。
4. 保存して表示」をクリックし、「編集」タブから最初のページを追加します。これは通常、コンテンツページ(情報を追加するペー

元記事を表示

Moodle 3.9 マニュアル – ワークショップの活動

[原文](https://docs.moodle.org/39/en/Workshop_activity)

# ワークショップの活動

# ワークショップ活動とは?

ワークショップは強力な相互評価アクティビティです。学生は提出物を追加し、教師が指定した評定尺度に基づいて評価を行うために仲間内で配布されます。
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/spPxDmPOjyQ/0.jpg)](http://www.youtube.com/watch?v=spPxDmPOjyQ)
ワークショップ活動の概要

# どのように設定するのですか?

1. コースで編集をオンにした状態で、アクティビティの選択から「ワークショップ」を選択します。
2. 名前と必要に応じて説明を付けてください。
3. 他のセクションを展開して、必要な設定を選択します。よくわからない場合は、すべてデフォルトのままにしておきます。詳細については、ワークショップの設定を参照してください。
4. 評定設定 – 学生は提出された課題に対する評定と相互評価の質に対する評

元記事を表示

stripeでサブスク決済。

![2020-11-01_05-35-45.mp4.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/779064/6b6188f4-8cbb-df04-ce01-9693a42f6fec.gif)

stripeでサブスク決済を作成しました。
作成にあたって住所(請求書)の部分が制作するに困っている方が
いるかも知れないということでコードを抜粋して記載します。
因みにnameはファーストネームとラストネームに分けて渡すことは
可能だったと思います。

“`javascript:js側
const { paymentMethod, error } = await stripe.createPaymentMethod({
type: ‘card’,
card: cardElement,
billing_details: {
name: last_name + ” ” + first_name,
email: email,
phone: phone,
ad

元記事を表示

【2020.12最新】PHPでGoogle Suggestを読み取る方法

こちらのGoogle Suggest APIを使って、
https://so-zou.jp/web-app/tech/web-api/google/suggest/
XMLを取得して簡単にデータ取れる!って思ってたんですが、初心者だからか引っかかる部分があり、変に時間を要してしまったので記録を残します。

GoogleサジェストのキーワードをPHPで取得する方法!


このブログの通りに入力し、phpで実行したら… なぜか実行できない。

何も表示されない+こういうエラーが出る..。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276138/ffe107c9-25df-fc86-ec02-530027c69a43.png)

“`
Uncaught TypeError: Cannot read property ‘src’ of null
at Module. (commons.js:83)
at __webpack_requ

元記事を表示

Moodle 3.9 マニュアル – 小テストの活動

[原文](https://docs.moodle.org/39/en/Quiz_activity)

# 小テストの活動

# 小テスト活動とは何ですか?

・小テストは、シンプルな多肢選択式の知識テストから、詳細なフィードバックを伴う複雑な自己評価課題まで、多くの教育ニーズに対応できる非常に強力な活動です。
・質問は作成され、質問バンクに個別に保存され、異なる小テストで再利用することができます。
・小テストを作成する際には、最初に質問を作成して小テストに追加するか、小テスト活動(下記のように)を追加して、質問を作成しながら進めていくことができます。
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/Gi9qX-5GbwY/0.jpg)](http://www.youtube.com/watch?v=Gi9qX-5GbwY)
小テストの概要

# どのように設定するのですか?

1. コースで、編集がオンになっている状態で、活動の選択から「小テスト」を選択します。
2. それに名前を付け、必要に応じて説明を与えます。
3. 他のセクショ

元記事を表示

Moodle 3.9 マニュアル – 課題の活動

[原文](https://docs.moodle.org/39/en/Assignment_activity)

# 課題の活動

# 課題とは何ですか?

課題を提出することで、学生は成績評価のために教師に課題を提出することができます。課題はオンラインでタイプされたテキスト、または教師のデバイスで読み取ることができるあらゆるタイプのファイルをアップロードすることができます。評定は単純なパーセンテージまたはカスタムスケールで行うこともできますが、より複雑な評価基準を使用することもできます。学生は個人またはグループで提出することができます。
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/S4VqOEAsijk/0.jpg)](http://www.youtube.com/watch?v=S4VqOEAsijk)
課題

# どのように設定するのですか?

1. コースで編集機能をオンにした状態で、アクティビティの選択から「課題」を選択してください。
2. これに名前を付け、説明文に学生が提出しなければならないものを説明してください。

元記事を表示

Laravel8 CRUD処理を使った投稿アプリを作成する その6 投稿編集機能の作成

# 目的

– 投稿された内容を編集するページを作成する

# 実施環境

– 筆者の実施環境を記載する。
– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.8 | Homebrewを用いてこちらの方法で導入→[Mac HomebrewでPHPをインストールする]() |
| Laravel バージョン | 8.6.0 | commposerを用いてこちらの方法で導入→[Mac Laravelの環境構

元記事を表示

Cookieとは

こちらの記事は簡潔に短くわかりやすい内容で投稿しますので、もっと詳しい内容について知りたい方は最後の参考元リンクよりご覧ください。
##結論
`Cookie`とは`クライアント(PCやスマホ)に保存された情報`のことです。
Cookieに似た機能として`SESSION`がありますが、これはCookieと違って`サーバー上に保存`されています。

・Cookieに保存されている情報
→Cookie名、訪問サイト、訪問回数、Cookieの有効期限など。

##Cookieが必要な理由
Webサイトは、`クライアント(PC)`が`サーバー`に`リクエスト(依頼)`し、`サーバー`が`レスポンス(返信)`することでブラウザに表示させています。
そして、この1往復で通信が完了される為、サーバーはどのページからアクセスされたのか`前の情報を知りません。`この状態を`ステートレス`と言います。
クライアントがリクエストする時に、前の情報をサーバーに教えて上げることで、サーバーは`前の情報を把握`する(`ステートフル`)ことができます。
この、前の情報をサーバーに教えてあげるのに`Cookie`が必要

元記事を表示

S3イベントからLambda上のLaravelを起動する

既存の処理をLambda上のLaravelにまとめるためにいろいろやってきましたが

– [SQSからLambda上のLaravelを動かす – Qiita](https://qiita.com/kenji0302/items/fec0c3fd79ceeabaf5fd)
– [LambdaでLaravelのコマンドを定期実行する – Qiita](https://qiita.com/kenji0302/items/7bd46f79fff4300300bc)

今回はS3イベントからLambda上のLaravelを起動します。

## 前提

Laravel 並びに brefphp を導入済であること。brefphp の導入については [brefphpを使って簡単にLaravelをサーバレス環境で動かす – Qiita](https://qiita.com/YuK1Game/items/ff7744478339c09151d5) がお勧めです。
Laravel については[こちらのドキュメント](https://readouble.com/laravel/)を参照してください。

##

元記事を表示

Laravel学習 ルーティングとコントローラ入門してみた

##はじめに
laravel学習をしていて学んだことをまとめてみました。
認識違いなどありましたらご指摘いただけると幸いです。

#ルーティング
→アクセスしたアドレスを元に処理を割り振ること。
Laravelは各ファイルごとブラウザに表示されるわけではなく、アドレスに割り付けられたプログラムの実行によって表示される?ため。アドレスに対しての処理をそれぞれ関連付ける必要がある。

▼routesフォルダ
ルーティングについて取りまとめているフォルダ。
・web.php※→ 一般的なwebページとしてアクセスさせるためのルーティング(関連付け)
・api.php→API機能の割り振りなど
・channels.php→ブロードキャストチャンネルのため??
・console.php→コンソールプログラムのため??

##各ファイルの解説(※今回はweb.phpのみ)

▼web.phpとは
・概要
ブラウザにリクエストがあった場合に指定のファイルに誘導させることができる、アクセス処理を司る。

・使い方

“`
Route::get(‘①アドレス’, ②処理→function(){

元記事を表示

[PHP]スクリプト実行中に途中経過を確認する

PHPスクリプトを実行する際、処理が全て終わった後に結果がページ上に表示されるのが普通ですが、処理が重く時間のかかるページで途中経過を確認したい場合には、flush関数を使い出力バッファをオフにすることにより、リアルタイムで確認することができます。

まずob_end_flush関数を呼び出し、出力のバッファリングをオフにします。
※ブラウザのバッファ対策のため、あらかじめ空白文字列を出力しておきます。

“`php
echo str_pad(‘ ‘, 4096);
ob_end_flush();
“`

次にob_start関数を呼び出し、出力のバッファリングを有効にします。

“`php
ob_start(‘mb_output_handler’);
“`

以下のようなスクリプトを実行し、1秒ごとに途中経過を出力します。

“`php
for ($i = 1; $i <= 10; $i++) { ob_flush(); flush(); sleep(1); echo $i.'秒経過しました'; } ``` あまりにも処理が重いと、ちゃん

元記事を表示

Moodle 3.9 マニュアル – カテゴリ:活動モジュール

[原文](https://docs.moodle.org/39/en/Category:Activity_modules)

# カテゴリ:活動モジュール

活動モジュールのインデックス
カテゴリ内のページ “活動モジュール”

全21ページのうち、このカテゴリには以下の21ページが含まれています。

[課題の活動](https://qiita.com/intrajp/items/3127ff027c73b7b31049)

[小テストの活動](https://qiita.com/intrajp/items/b4061bc43a13c1984662)

[レッスンの活動](https://qiita.com/intrajp/items/d91467b09893257c2921)


[ワークショップの活動](https://qiita.com/intrajp/items/3cdfa928e30d0feda7ea)

A

[Assignment activity](https://qiita.com/intrajp/items/3127ff027c73b7b3104

元記事を表示

getallheaders()関数がnginx で使えない件について

オレオレフレームワーク自作している時に詰まったので残しときます

エラーで未定義の関数と指摘されたのでggった所自前で用意する必要がありそう

“`php:php
$value) {
if (substr($name, 0, 5) == ‘HTTP_’) {
$headers[str_replace(‘ ‘, ‘-‘, ucwords(strtolower(str_replace(‘_’, ‘ ‘, substr($name, 5)))))] = $value;
}
}

return $headers;
}
}

// ヘッダー情報を出力
print_r(getallheaders());
?>
“`

元記事を表示

Moodle 3.9 マニュアル – カテゴリ:課題

[原文](https://docs.moodle.org/39/en/Assignment_activity)

課題の活動に関するドキュメントページのインデックスです。
課題」カテゴリのページ

全32ページ中、このカテゴリには以下のページがあります。

[課題の活動](https://qiita.com/intrajp/items/3127ff027c73b7b31049)

A

[Assignment activity](https://docs.moodle.org/39/en/Assignment_activity) [(日本語訳:課題の活動)](https://qiita.com/intrajp/items/3127ff027c73b7b31049)
Development:Assignment development
Assignment FAQ
Assignment settings
Development:Assignment types
Assignment upgrade tool

C

Capabilities/mod/assign:addinstan

元記事を表示

Moodle 3.9 マニュアル – 管理ブロック

[原文](https://docs.moodle.org/39/en/Administration_block)

# 管理ブロック

管理ブロックは、ClassicテーマやClassicをベースにしたテーマを使用している場合に、設定ページへの文脈に応じたリンクを提供するために使用されます(標準的な[Boostテーマ](https://qiita.com/intrajp/items/30117c57e36d42595f99)は、ナビゲーションドローワを使っています)。なお、評定とコンピテンシーは管理ブロックではなく[ナビゲーションブロック](https://qiita.com/intrajp/items/3f0266053d01ea4e5e93)に表示されます。

管理ブロックに表示される内容は、ユーザーがどこにいるか、その場所でどのような役割を担っているかによって異なります。たとえば、フロントページのサイト管理者はフロントページの設定があり、コースの教師はコース管理のオプションが学生よりも多くなります。

ここでは管理ブロックの例を示します。
![201px-adminadminbl

元記事を表示

【VSCode×phpcs】WordPressコーディング規約の除外ルールを作る

プログラミングにおいてコードの可読性を保つ為にどの言語でも使われている**コーディング規約**。
WordPressにおいてもWordPressコーディング規約が存在し、このコーディング規約を守る事で同じWordPress開発者同士のコードレビューのしやすさや保守においても効果を発揮します。
(余談ですがコーディング規約に則った綺麗なコードを書く事は”他人から見やすい”はもちろんですが、**そのコードを見慣れる事によって”自分が他人のコードを見やすくなる”**事に繋がり、こっちの得が大きいと思っています。)

しかしPHPやJavaScript、Pythonといった言語そのものではなくWordPressやLaravel、VueやReact、Djangoのようなフレームワークの場合どうしてもレガシーな記述を求められる事があります。
これはそもそもCMSやフレームワークは言語を後追いするものだったり、後方互換性のためだったり理由は様々ですが個人的にはストレスになることも。

### WordPressはarray()の短縮構文が非推奨
今回WordPressプラグインを作るにあたり初めてW

元記事を表示

配列の中身を確認する方法

配列の中身は、関数を使うことによってブラウザに表示できます。
関数は`var_dump`,`print_r`,`var_export`の3種類があります。
それぞれの違いは下記の通りです。

###1.var_dump($変数名);
・変数の中身の値と型を表示。
・数値型→int(数値) 文字型→string(バイト数)

“`


array(3) {
[0]=>
string(4) “tori”
[1]=>
string(6) “sakana”
[2]=>
string(8) “niwatori”
}
“`

###2. print_r($変数名);
・変数の中身の値のみ表示。

“`


Array
(
[0] => tori
[1] => sakana
[2] => niwatori
)

元記事を表示

SQL SELECT文を覚えよう 初心者向け

データベースからデータを取得する際にSELECT文を覚えていないと、
思ったように取得出来ずに時間が経過した経験の持ち主です。

SELECT文では、
・特定のレコードを取得
・〇〇円以上の商品データのみ取得
・あるテキストデータ(例:Tシャツ)が含まれているデータのみ取得
等々覚える必要があることがわかります。

それではSELECT文を学習した内容をアウトプットしていきます。

前提

テーブル box

カラム id name message price time

で登録されていることを前提例で進めていきます。

テーブルから特定のカラムを取得

※テーブルboxからnameのみ取得する場合

“`php:sql

SELECT name FROM box;


②どのカラムを取得したいの?(SELECT name) ①どのテーブルの?(FROM box;)

“`

データベースには複数のテーブルがありますので、
テーブル(box)を指定してあげた上でカラム(name)を指定する必要があります。

例えば、

“`php:sq

元記事を表示

OTHERカテゴリの最新記事