- 1. オンラインIDEのRepl.itでGoogleニュース検索を作りました
- 2. FuelPHPしか触ったことないPGがLaravelで実装してみた所感
- 3. PHPのswitchで複数条件分岐をしてみましょう!
- 4. PHPの論理演算子を使ってみよう!
- 5. [504 Gateway Time-out エラー対処] データが大きいSQLファイルを、phpmyadminやadminerでインポートする方法
- 6. [PHP 7.4] CSVダウンロード
- 7. phpenvでUbuntu 20.04にphp7.4環境構築
- 8. [チュートリアル]AWSにEC2,RDS,S3の環境を作ってWEBアプリケーションを動かす
- 9. PHPの i f 文を使おう!
- 10. PHPで定数を扱っていこう!
- 11. PHPで数値の計算方法★
- 12. PHPヒアドキュメント
- 13. PHP変数ターミナル出力方法
- 14. 【Laravel】PDFから選択したページを切り出して1つのファイルに保存する
- 15. Laravel Sanctumでユーザー認証APIを作成する
- 16. Laravel8を始めるにあたっての参考サイト、学習過程
- 17. PHPにおけるstrictモードを使った厳密な型宣言
- 18. 【Laravel】Macで「Laravel Sail」を利用した環境構築を行う
- 19. 【CakePHP3】指定したキーの値を配列で取得する
- 20. PHPでフォームに入れたデータを、MySQLのデータベースに追加したい
オンラインIDEのRepl.itでGoogleニュース検索を作りました
## 0.はじめに
Google ニュースを簡単に検索したくなったので、オンラインIDEの[Repl.it](https://replit.com/)でPHPで検索画面を作ってみました。
Repl.itの説明は、以下の記事あたりに紹介されてます。
[60以上の言語が使用可能なブラウザ実行型IDE – Repl.it – ばいばいバイオ](https://www.kimoton.com/entry/20201115/1605449573)
## 1.実際の画面やコード
Repl.itで実際に動いているので、そちらをご覧ください。
https://replit.com/@basictomonokai1/Google-News-Search
## 2.参考にした記事
ほぼ丸パクリです…
* [google NewsをRSSで取得してjsonで返却するPHPプログラム](https://www.zip358.com/2018/12/22/google-news%E3%82%92rss%E3%81%A7%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6js
FuelPHPしか触ったことないPGがLaravelで実装してみた所感
###はじめに
※FuelからLaravelに乗り換えて、まだシステムの実装途中でこの記事を書いているため、ところどころおかしなことがあると思いますが目をつむってくだされば幸いです。###なぜFuelからlaravelに乗り換えたのか
以前に保守を行っていたシステムでちょっと古いFuelとPHPを使ってました。
そろそろPHPのバージョンを上げなきゃなって時にまさかのFuelの開発が止まっており、最新のPHPのバージョンでFuelが動くのかわからない状態に…
その時は別の優先度が高い案件が入り、ペンディングになっている間にFuelPHPのバージョンがリリース(1.8.2)されわりと新しいPHPのバージョン(7.3系)に対応したため事なきを得ました。
しかしながら、古いPHPのサポート終了は次々とやってきます。なので今後なにか新しいものを作る場合は学習コストを払ってでも、更新が頻繁でモダン的、使用しているユーザーも多くドキュメントが豊富なフレームワークを使おうということになり、Laravelを選択しました。###とりあえず触ってみたが…
PHPのフレームワークはFuelしか触った
PHPのswitchで複数条件分岐をしてみましょう!
複数条件がある時はswitchを使ってコードを書いていきます!
“`php:index.php
PHPの論理演算子を使ってみよう!
PHPの論理演算子で条件をまとめてみましょう!
“`php:index.php
=20) {
if($name === ‘kana’) {
echo ‘素晴らしい!’ . PHP_EOL;
}
}
“`ターミナルで以下を実行すると…
“`
~ $ php index.php
“`
このように表示されました!“`
~ $ php index.php
素晴らしい!
~ $
“`ではこちらの処理をもっと見やすく、
「&&」と言う論理演算子でまとめて書いていきます。
「&&」は、なおかつやandという意味です!
“`php:index.php
$score = 30;
$name = ‘kana’;
if ($score >=20 && $name === ‘kana’) {
echo ‘素晴らしい!’ . PHP_EOL;
}
“`
先程と同じようにターミナルに以下を入力します!“`
~$ php index.php
“`
[504 Gateway Time-out エラー対処] データが大きいSQLファイルを、phpmyadminやadminerでインポートする方法
#はじめに
3GBのsqlファイルをadminerでインポートする際、`413 Request Entity Too Large`や`504 Gateway Time-out`のエラー対処に手間取ったため、方法をまとめます。基本的に、データ量が多いと、`データの送受信の時間を伸ばす`、`データファイル容量の上限を増やす`必要があります。
sqlファイルのインポートに限らず、PHPで実行時の`504 Gateway Time-out`エラー対処に使用できる記事になります。
#前提条件
– DB管理はadminerを使用。phpmyadminでも問題なし
– nginxを使用
– EC2にadminerを導入(以下の記事参考https://qiita.com/holdout0521/items/d559ed8ab24aaaafd876
#sqlファイルのインポート方法
1. adminer.php が配置されているディレクトリ内に、エクスポートしたsqlファイルをそのまま、アップロードします。私の場合、圧縮タイプの`.gz`タイプだとインポートできませんでしたので、ファイ
[PHP 7.4] CSVダウンロード
# コード
“`php:download_csv.php
/**
* CSVダウンロード
*
* @param array $data
*
* @return void
*/
function downloadCsv(array $data) {$fileName = “hogehoge.csv”;
header(“Content-Type: application/octet-stream”);
header(“Content-Disposition: attachment; filename=” . $fileName);
header(“Content-Transfer-Encoding: binary”);$csvStr = “”;
$csvStr = fopen(“php://output”, “w”);// 文字コード変換
stream_filter_append($csvStr, “convert.iconv.UTF-8/CP932//TRANSLIT”, STREA
phpenvでUbuntu 20.04にphp7.4環境構築
2億回くらい同じハマり方をしているので、いい加減にメモ
# 手順
[phpenv](https://github.com/phpenv/phpenv)をセットアップする
“`bash
$ git clone git://github.com/phpenv/phpenv.git ~/.phpenv
“`phpenvにパスを通してphpenvを使えるようにする。
bashrcとかに書いとくといい“`bash
$ export PATH=”$HOME/.phpenv/bin:$PATH”
$ eval “$(phpenv init -)”
“`php-buildのプラグインを追加
“`bash
$ git clone https://github.com/php-build/php-build $(phpenv root)/plugins/php-build
“`phpのビルドに必要なパッケージをインストール
“`bash
$ sudo apt install \
libxml2-dev \
libkrb5-dev \
libssl-dev
[チュートリアル]AWSにEC2,RDS,S3の環境を作ってWEBアプリケーションを動かす
#0. はじめに
「AWSの基礎を理解したいのですがどうしたらいいでしょう?」と知人に聞かれて、「こんなことやってみたらいいんじゃないでしょうか!」と提案したものの、自分ではやったことなかったのをきっかけに作り始めたチュートリアルです。
WEBサービスもサーバレスになっていく時代の流れもありますが、このチュートリアルではAWSを勉強し始めたら最初に出てくるEC2(サーバー)とRDS(データベース)とS3(ストレージ)を使ってWEBアプリケーションを作ることを通して、AWSの基礎を理解することを目的にしています。
筆者も何度も環境を作ったり壊したりするうちに、自然とAWSの理解が進みました。このチュートリアルが、みなさんのAWSの理解の一助になれば幸いです。
また、初心者が書いたチュートリアルですので、抜け落ちや間違い等ありましたらご指摘いただけたらと思います。よろしくお願いいたします。
##自己紹介
* WEBエンジニア2年目(インフラは未経験)
* 2年前にAWSのSAA(ソリューションアーキテクトアソシエイト)という設計の資格は取得したものの、その後AWSにまったく触
PHPの i f 文を使おう!
PHPで条件分岐をしていこう!
“`php:index.php
= 90) {
echo ‘よく出来ました!’;
}
“`macターミナルで以下を実行します!
“`
~$ php index.php
“`ターミナルで以下が実行されました!
“`
~ $ php main.php
よく出来ました!
~ $
“`$scoreを85に変えて、条件を増やしてみましょう!
“`php:index.php
= 90) {
echo ‘よく出来ました!’ . PHP_EOL;
} else {
echo ‘グッド!’ . PHP_EOL;
}
“`ターミナルで以下が実行されました!
“`
~ $ php main.php
グッド!
~ $
“`$scoreを100に変えてさらに条件を増やすと….
“`php:index.php
= 90)
PHPで定数を扱っていこう!
PHPで定数を定義していきましょう!
変数は中の値を何度も代入できるけど、
定数にすると値を変える事が出来なくなります!
定数は大文字で書いていきます。
“`PHP:index.php
PHPで数値の計算方法★
PHPで四則演算のやり方を見ていきましょう!
+ (足し算)
- (引き算)
* (掛け算)
/ (割り算)
% (割った時の余り)“`php:index.php
echo 20 + 1 . PHP_EOL;
echo 20 – 1 . PHP_EOL;
echo 10 * 2 . PHP_EOL;
echo 30 / 3 . PHP_EOL;
echo 40 % 3 . PHP_EOL;“`
ターミナルで以下を実行します!
“`
~$ php index.php
“`ターミナルに以下が出力されました!
“`
~ $ php index.php
21
19
20
10
1
~ $“`
文字列の時は”(シングルクオーテーション)や、
“”(ダブルクオーテーション)で囲みましたが、数値の場合囲まなくてokです!
PHPヒアドキュメント
ヒアドキュメントを使って長めの文章を表現していきます!
“`php:index.php
PHP変数ターミナル出力方法
index.phpファイルの
$nameにkanaを代入します!
. で文字列を結合し、PHP_EOLで改行します!“`php:index.php
【Laravel】PDFから選択したページを切り出して1つのファイルに保存する
複数ページのPDFから、任意のページだけを動的に抜き出して、単一ファイルとして保存したいとき。
PHPだけで使えますが、ここではLaravelを使ってます。#動作環境
* Windows 10
* FPDI 2.3.6
* Laravel 6#FPDIのインストール
composer.jsonに以下を追記して、composer updateを実行。“`json:composer.json
“require”: {
“setasign/fpdf”: “1.8.*”,
“setasign/fpdi”: “^2.3”
}
“`[FPDI公式サイト](https://www.setasign.com/products/fpdi/)
#プログラム
PDFから1ページ目と2ページ目だけを切り出して、1つのファイルとしてダウンロードする。“`php:Pdf.php
use setasign\Fpdi\Fpdi;$pdf = new Fpdi();
$pdf->setSourceFile(“target.pdf”);$pdf->AddPage();
Laravel Sanctumでユーザー認証APIを作成する
### Laravel Sanctumとは…
SPA(シングルページアプリケーション)、モバイルアプリケーション、およびシンプルなトークンベースのAPIに軽い認証システム
Reference: https://readouble.com/laravel/8.x/ja/sanctum.html### 実装準備
“`
$ composer require laravel/sanctum
$ php artisan vendor:publish –provider=”Laravel\Sanctum\SanctumServiceProvider”
“`### Http/kernel.phpで下記を書き換えます
“`
// sanctumをAPImiddlewareグループに追加する。
// SPAからの受信リクエストがLaravelのセッションクッキーを使用して認証できるようになります。
‘api’ => [\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreSt
Laravel8を始めるにあたっての参考サイト、学習過程
来年にLaravel9(LTS)が出るそうなので準備としてLaravel8に触れておこうと思い勉強を始めました。参考サイトや学習過程を記録していきます。
#環境構築
PHPにおけるstrictモードを使った厳密な型宣言
[zenn](https://zenn.dev/mo_ri_regen/articles/php-strict-mode)でも同じ記事を投稿しています?
[zenn](https://zenn.dev/mo_ri_regen)ではフロントエンドのことも含め、いろいろ投稿しているのでぜひご覧ください?以前、zennでPHP の型について[記事](https://zenn.dev/mo_ri_regen/articles/php-about-types)を書きました。今回は型を強制できるというおはなしです。
## strict モードについて
strict モードを有効にすることで厳密な型宣言ができます。
strict モードが有効でないとき、エラーが出ずに実行できてしまうことがあります。[^1]
有効にするには declare 文 に strict_types=1 をセットします。[^1]: ‘1’+2 といった「数値に変換できる文字列+数値」に対して、計算結果(この例では 3)が出力されます。
### 例
“`php
【Laravel】Macで「Laravel Sail」を利用した環境構築を行う
## はじめに
本記事では、Laravel Sailを使った開発環境の構築手順を解説していきます。
Laravel Sailは、Laravelが公式で紹介している開発環境となります。Dockerを利用して開発環境を構築することができるので、ぜひお役立てください。
#### 構築イメージ
| 場所 | 項目 | パス |
|:——–:|:————|:————|
| 仮想環境 |ドキュメントルート| /var/www/html/public|
| 仮想環境 |Laravelのプロジェクトディレクトリ| /var/www/html/|
| 仮想環境 |物理環境との共有ディレクトリ|/var/www/html/|
| 物理環境 |仮想環境との共有ディレクトリ| ユーザー/laravel_sail/sample|
| 物理環境 |Laravelのプロジェクトディレクトリ| ユーザー/laravel_sail/sample|
【CakePHP3】指定したキーの値を配列で取得する
普段、Laravelを主に使っていたのですが、CakePHPを業務で使用する機会があったので、備忘録として残します。
テーブルの`$item_id`で検索を立てて、該当するレコードの`name`を取得したいとします。
“`php
$results = $this->DataBases
->find()
->where([
‘item_id’ => $item_id,
]);
foreach ($results as $result) {
$arrayData[] = $result->name;
}
dd($arrayData);
//結果:arrayData[名前1, 名前2, 名前3]
“`
とりあえずこれでもうまくいったのですが、せっかくなのでCakePHPを使い倒したい!
ということでCakePHPの場合、下記の方法でも取得することができます。“`php
use Cake\Collection\Collection;
.
.
.
$results = $this->DataBases
->find
PHPでフォームに入れたデータを、MySQLのデータベースに追加したい
# 前提条件
MySQLのデータベースが用意できていること# 入力フォームをHTMLで書く
.phpファイルを作成していかを書き込む。“`html
“`
# 投稿内容をサーバに送って表示できるようにする
とりあえず、データベースに送る前に、送信ボタンを押したら、上にその内容が表示される仕組みを作ってみる。
(送信ボタンを押したら、サーバに送って、サーバ上でPHPが処理した内容を表示させるだけでデータベースにつながっていないので、リロードするとすぐ消えちゃう。)さっき書いていた.phpファイルのフォームの上あたりに以下を追加
“`php
“`phpにはPOSTメソッドを受ける$_POSTという