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

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

オンライン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



元記事を表示

OTHERカテゴリの最新記事