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

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

【第五回】コロナ禍だから何かできることをー 自宅療養者連絡ツール ー

#前回までのあらすじ
[【第四回】コロナ禍だから何かできることを](https://qiita.com/STYLE-D/items/8af17d7f94f5c351ede0)

####実装イメージ図
LINEを利用して保健所の担当者の負担を軽減するとともに、自宅療養者はいつでもつながっている安心感を持たせるためのツールイメージです。
![メイン.00_00_51_12.Still002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/744261/cf85391e-aef8-5a59-0a1d-63d8e15412ce.jpeg)

##ユーザー登録の仕組みを作ろう
![システム構成-ユーザー登録.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/744261/a834c741-8adf-06af-6c5b-a5ce167aa55a.jpeg)

LINE Developers
[LIFFアプリを開発する](https://

元記事を表示

PHPConference2021に初参加しました。

PHPConference2021に初参加しました。
こういったイベント毎に参加したこと自体が初めてで不安な部分は大きかったですが、参加してよかったです!

##参加した経緯
参加した経緯はLINEのオープンチャットでmukakenさんが今回のイベントの告知をしてくださっており、もともとPHPが大好きなのでもっと勉強したい!と思い参加しました。

##始まってみると
始まってみると一人で何も分からず参加したのでボイスチャットに入ってもいいのか分からず、どうしようかあたふたしてました。

少しして、koyhoheさんが雑談しようという書き込みをしていたので、’ここは入っていいんだ’と分かり試しに入ってみました。入ってみたはいいものの、どうしようかと迷っていると声をかけてくださり、自然と話せる空気を作ってくださり、なんとか話すことができました!

ここで勇気を出して声を出したことで、koyhogeさんやちゃちいさんと知り合う事ができましたし、そこから様々な人と知り合う切っ掛けになりました!

##内容について
学校ではPHPはそこそこできるつもりだったので、分かるかな?と思っていましたが、

元記事を表示

文字列から数字だけを取り出すor消す

いつもググってた
ttp://djcase.jp/app/mywiki/post/172
に有った記事のコピーです
どうもサイトがなくなってしまったようで・・(泣)

#文字列から数字だけを取り出すor消す
##数字のみを「消す」場合

“`
$target = ‘アッカリーン0120はーい!0930’;
$target = preg_replace(“/[0-9]/”, “”, $target);
echo $target;
“`

上記の結果は

“`
アッカリーンはーい!
“`

正規表現を使って置換できるpreg_replaceを使用。[0-9]は「0から9までの数字」という意味。

$targetに対して「0から9までの数字」を空文字で置換(=消す)している。

preg_replace関数について
https://www.php.net/manual/ja/function.preg-replace.php

##数字のみを「取り出す」場合

“`
$target = ‘アッカリーン0120はーい!0930’;
$target = preg_replace(“/

元記事を表示

【PHP8.1】PHP8.1で削除される機能

Nikitaをはじめとする一部のstrictぺちぱー達は、PHPのレガシー機能の削除に[熱心に](https://qiita.com/rana_kualu/items/db1ce401df627c46544a)[取り](https://wiki.php.net/rfc/deprecations_php_7_4)[組ん](https://wiki.php.net/rfc/deprecations_php_7_3)[でい](https://wiki.php.net/rfc/deprecations_php_7_2)[ます](https://wiki.php.net/rfc/remove_deprecated_functionality_in_php7)。
まあ実際、初期のPHPには特にですが、いったいなんでこんなものをという思い付きのような機能がたくさんありましたからね。

そのあたりはPHP7からPHP8.0にかけてだいぶ綺麗に片付けられてきたのですが、まだまだおかしなものも残っています。
そんなわけで以下は、それらを削除しようというRFC、[Deprecations for PHP 8

元記事を表示

PHP Conference Japan 2021に登壇しました。

## はじめに

[PHP Conference Japan 2021](https://phpcon.php.gr.jp/2021/)というイベントに参加・登壇してきました!
僕が所属している[Hamee株式会社](https://recruit.hamee.co.jp/)は本イベントのスポンサーをしており、弊社からも何名か登壇しておりました。
(茶室のCMの会社です!)

## 登壇

以前にbuilderscon tokyo 2019にて飛び込みLTの発表はしたことがありましたが
プロポーザル採択による登壇は初めてでした。
(ポコン プロポーザル採択による登壇の実績を解除しました٩( ‘ω’ )و)
社内での勉強会でも散々登壇しているのでそこまで緊張することはなかったですが、LTの控室zoomで待ってる間はさすがにちょっと緊張しました。
発表資料はこちらです。

https://speakerdeck.com/yamamotohiroya/kanhuarensuhahuidobatukugada-shi

フィードバックの大切さを伝えるために登壇してきました。
実行委員長が発表

元記事を表示

Laravelで画像を素材として使う時に、画像が出てこないときの対処法

Laravelで画像をHTMLファイルに読み込ませて使いたいと考えたのですが、やり方を知らなかったので、今ここで共有していきたいと思います。

### 現象
画像が入ったフォルダをviewファイルが有るフォルダに置いて、画像パスを指定したのに動かない。
というのがありました。
何度も何度も画像パスを確認していったのですが、うまく動きませんでした。

### 解決策

Laravel8系では、resourcesディレクトリに画像を入れておくと、表示されません。
わたしはresourcesディレクトリに素材の画像を入れて使おうとしていたのでどんなに画像パスが合っていても表示されないというわけですね。
resourcesのプログラムは、いったんコンパイルされてそれがpublickに反映されているので、ブラウザ上に反映させようとしたらpublickディレクトリに置かないといけないみたいです。
なので、publickディレクトリに画像フォルダを入れておくディレクトリを起きましょう。
そうしたら、resourcesディレクトリのHTMLファイルにパスを書けばきちんと反映されます。

皆さんよかった

元記事を表示

【PHP / Laravel】Storage の基本操作まとめ

## 対象読者

– Laravel の使用を考えている方
– Storageクラスについて基礎を抑えたい方
– Storageクラスの使用方法をざっくりでいいから知りたい方

## 環境

– Laravel 6系

## 目次
– [対象読者](#対象読者)
– [環境](#環境)
– [目次](#目次)
– [Storageクラスとは](#storageクラスとは)
– [storageクラスの設定ファイル](#storageクラスの設定ファイル)
– [ディスクとは](#ディスクとは)
– [disk](#diskメソッド)
– [シンボリックリンクの作成](#シンボリックリンクの作成)
– [Storageクラスの使用](#storageクラスの使用)
– [ファイルの読み込み](#ファイルの読み込み)
– [get](#get)
– [ファイルの保存](#ファイルの保存)
– [put](#put)
– [putFile](#putfile)
– [putFileAs](#putfileas)
– [ファイルへ書き込み](#フ

元記事を表示

【PHP】PHPでスクレイピングをする

php-simple-html-dom-parserというライブラリを使う。

[https://sourceforge.net/projects/simplehtmldom/files/:embed:cite]

↑からライブラリをダウンロードしてプログラムを書くファイルと同じディレクトリに保存する。

“`php
find(“p”, 0)->plaintext);
“`

元記事を表示

【PHP】【メモ】文字列連結の「.」「,」の違い

echoは「.」「,」両方使える
printは「.」のみ使える

「.」は連結した結果を出力する
「,」は連結せずに順次出力する

「.」は連結してから出力するため、「,」よりもやや遅い。

元記事を表示

【PHP】エルビス演算子

# エルビス演算子
**PHP5.3から導入**
**三項演算子の第二項が省略できるもの**

“`
三項演算子
$a ? $a : $b;

エルビス演算子 // 第二項が省略されている
$a ?: $b;

上記の2つは同じ動きをする
“`

[公式](https://www.php.net/manual/ja/language.operators.comparison.php#language.operators.comparison.ternary)から抜粋
> 式 expr1 ?: expr3 の結果は、expr1 が true と同等の場合はexpr1、 それ以外の場合は expr3 となります。

例えば

“`
$a = ‘Aです’;
$b = ‘Bです’;

echo $a ?: $b;

//出力

Aです
“`
“`
$a = false;
$b = ‘Bです’;

echo $a ?: $b;

// 出力

Bです
“`
という感じで、第一項がtrueなら第一項が評価され、第一項がfalseだったら第二項が評価される。

# 様々な値で試してみる

元記事を表示

【Laravel】モデルの作成(初心者向け)

#はじめに
今回は、Laravelでのモデル作成方法について見ていきます。

#モデルとは
MVCモデルのMの部分で、データベースとのやりとりを行い、必要なデータをコントローラーに渡します。

#モデルの作成方法

“`php:ターミナル
php artisan make:model Models/モデル名
“`

モデルが増えてきたときのために、Modelディレクトリを作ってその中にモデルを作成しています。
実際には、`Menu.php`のように`モデル名.php`というファイルが作成されます。

#オプション
オプションを付けることで、モデルの作成と同時にマイグレーションやファクトリなども生成することができます。

“`php:ターミナル
php artisan make:model Models/モデル名 -f //ファクトリを同時に生成
php artisan make:model Models/モデル名 -m //マイグレーションを同時に生成
php artisan make:model Models/モデル名 -c //コントローラを同時に生成
php artisan

元記事を表示

ネットワーク攻撃とその対策

###SQLインジェクション
対策:SQLを実行する際にプリペアドステートメントを使用

###OSコマンドインジェクション
対策:OSコマンドを実行する関数を使用しない。
(exec、passthru、proc_open、shell_exec、system等)

###セッションハイジャック
対策:ログインする毎にセッションIDを更新。
URLにセッションIDを含めない。

###セッション固定化攻撃
対策:ログインする毎にセッションIDを更新。

###XSS(クロスサイトスクリプティング)
対策:htmlspecialcharsを使って、入力された値をサニタイズ。

###CSRF(クロスサイトリクエストフォージェリ)
対策:正しいページからのリクエストか、ワンタイムトークンを使って検証。

###クリックジャッキング
対策:header関数でX-FRAME-OPTIONS: DENYを指定。

元記事を表示

LaravelとBootstrapで作るアプリケーション開発にトライ2

## はじめに
YouTubeでぽんたさんの動画を発見して、動画が短時間で複数回に渡って解説していたので、こちらを見ながらハンズオン。
おまけに、Zennで解説書も提供されているので、不明点が無いくらい、有料でも良いくらいな資料だと思いました。
見よう見まねですが、手を動かさないことには覚えられませんのでレッツトライ!


前回の記事は環境構築まででしたので、いよいよLaravelの操作に入ります。

PCを止めましたので開発環境も停止中。ですので、以下のコマンドで立ち上げます。
 ■コマンド実行 docker-compose up -d

開発サーバが起動、トップページにアクセスできるかを確認します。
 ■docker-compose exec php php artisan serve –host=0.0.0.0 –port=8000

## 1.Laravelについて
##### MVCについて
##### ルーティングについて
![MVC.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.co

元記事を表示

【第四回】コロナ禍だから何かできることをー 自宅療養者連絡ツール ー

#前回までのあらすじ
[【第三回】コロナ禍だから何かできることを](https://qiita.com/STYLE-D/items/345e9142948c00330e71)

####実装イメージ図
LINEを利用して保健所の担当者の負担を軽減するとともに、自宅療養者はいつでもつながっている安心感を持たせるためのツールイメージです。
![メイン.00_00_51_12.Still002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/744261/cf85391e-aef8-5a59-0a1d-63d8e15412ce.jpeg)

##取得したデータをもとに、データベースへの更新までの流れを考えよう
![システム構成.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/744261/ac5262ba-5db6-bdc3-d7f1-6c007182fce8.jpeg)

今回は、体温や体調の報告の場合はユーザー状態をDBへ保存

元記事を表示

【Laravel】Storage::disk(‘local’)->append() で out of memoryする

# Storage::disk(‘local’)->append() で out of memory
正確には何度も繰り返しappend()していたらout of memoryとなりました。
原因は少し前のissueになりますが、githubにありました
[Storage::disk(‘local’)->append method run out of memory #24439](https://github.com/laravel/framework/issues/24439)
issueによるとライブラリの関係でappendを呼ぶ度に、ファイルの中身をメモリに読み込んでいるのが原因のようです。

## 対応
これはローカルファイルに書き込む場合に起きるのでLaravel使わずにやります。

“`php:example.php
$handle = fopen(storage_path(“app/hoge.csv”), “a”); // aで追記モード
fwrite($handle, “,”);
fclose($handle);
“`

むちゃくちゃ簡単な対応ではあるのですが、メ

元記事を表示

様々な言語での日時表記

#背景
日時表現は割とよく使うけど、言語で書き方統一されてなくて正直やり辛いな~~
似てるけどちょっと違う、が多くてよくミスってしまうな〜〜
と思ったので覚書程度にまとめます。

というわけで、いろんな言語で現在の年月日・時刻を「2021年10月02日 23時00分00秒」の形式で出力します。
とりあえずはJava, Ruby, Python3, Go, php。適宜更新します

#Java(8以上)
SE8から加わったDate and Time APIのおかげで実装がぐっと楽になりました。

“`Java:Main.java
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Main {
public static void main(String[] args) {
// SE8から加わったクラス。現在の日時を取得
LocalDateTime dateTime = LocalDateTime.now();

// 独自のフォーマットを準

元記事を表示

【初心者向け】LaravelでYoutubeのお気に入りCuration(まとめ)アプリを作る【第3回: 新規ユーザ登録実装】

(この記事はまだ作成中です。)

こんにちは。
ITエンジニアの濱辺(ハマベ)です。

前回に引き続き、お気に入りの動画を共有できる、SNSのようなアプリを作っていきます。

前回は、DB周りをやりました。

第3回は、主に、新規登録機能周りを作成していきます。

↓第一回はこちら
[LaravelでYoutubeのお気に入りCuration(まとめ)アプリを作る【第2回】](https://qiita.com/dogabon20/items/bd376085f4fdecdaeb99)

↓こちらの画面定義書のものを作っていきます。
[Youtube-Curation 画面定義所 (googleスプレッドシート)](https://docs.google.com/spreadsheets/d/1BglTVpnsappqNFoNTnmr1NfkRqT47VFF_u4Z4MvAu3w/edit#gid=68179162)

## トップページを作る

まずは**router**を作成します。

routerの作成とは、このURLにアクセスしたら、このページを表示してね、という決まり事を決め

元記事を表示

LaravelとBootstrapで作るアプリケーション開発にトライ1

## はじめに
YouTubeでぽんたさんの動画を発見して、動画が短時間で複数回に渡って解説していたので、こちらを見ながらハンズオン。
おまけに、Zennで解説書も提供されているので、不明点が無いくらい、有料でも良いくらいな資料だと思いました。
見よう見まねですが、手を動かさないことには覚えられませんのでレッツトライ!

## 概要
Laravelを使用したCRUD(登録・表示・更新・削除)機能の開発

## 操作環境
 Windows10 21H1
 Visual Studio Code
 Docker Desktop for Windows

### 使用する言語・フレームワークなど
・PHP 7.4
・Laravel 6
・Bootstrap 4.5
・MySQL 5.7
・Docker
Dockerは入っていなかったので、ダウンロードしてインストール。

### 作業用フォルダ作成
 ・Laravel_todo
### ファイル作成
 ・docker-compose.yml
 ・Dockerfile

### 開発環境立ち上げ
コマンド実行 docker-compose

元記事を表示

PHP Conference Japan 2021 スライドまとめ

## PHP Conference Japan 2021

– 公式サイト: https://phpcon.php.gr.jp/2021
– 公式YouTubeチャンネル: https://www.youtube.com/user/PHPConferenceJP
– 公式ツイッター: https://twitter.com/phpcon
– ハッシュタグ: [#phpcon](https://twitter.com/hashtag/phpcon) [#phpcon2021](https://twitter.com/hashtag/phpcon2021)
– 日時: 2021/10/2(土) 〜 2021/10/3(日)

## YouTube

### 10/2(土)

Track 1 https://youtu.be/gdCE-UGqeSM
ハッシュタグ: [#phpcon2021 #track1](https://twitter.com/search?q=%23phpcon2021%20%23track1&src=typed_query)
Track 2 https://youtu

元記事を表示

【初心者】Laravelのミドルウェアって

##はじめに
「Laravelのミドルウェアって何者?」というレベルの初学者が
ざっくり調べてざっくりまとめました。(Laravel6系です。)

##ミドルウェアって
Laravelにおけるミドルウェアは、コントローラークラスの処理前後に位置し、主にHTTPリクエストのフィルタリングやHTTPレスポンスの変更を担う。認証やCSRF保護などのミドルウェアが用意されていて`app/Http/Middleware`ディレクトリに設置されている。

![middleware.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969534/5132df31-b820-a7f3-be66-d9bb8e9dfab4.png)

そして、ミドルウェアは自作できる..!!
##作成手順 (Laravel6)
1.artisanコマンドでミドルウェアクラスを作成
2.ミドルウェアクラスの編集
3.ミドルウェアクラスの登録

### 1.artisanコマンドでミドルウェアクラスを作成

“`.php
php arti

元記事を表示

OTHERカテゴリの最新記事