PHP関連のことを調べてみた2022年09月06日

PHP関連のことを調べてみた2022年09月06日

Laravel Log::infoの使い方 ~ ログ出力

# 動作環境
・PHP: 8.1.10
・Laravel:9.27.0

# ファサード
“`php:Laravel
use Illuminate\Support\Facades\Log;
use Log; // エイリアスでもいける環境もあるみたいですが、私のは無理でした。
“`

# ログの基本
“`php:Laravel
Log::info(“ログ”);
Log::info($request);
“`

これでいけます。

# 出力先はこちら
storage/logs/laravel.log

他にもいろいろできるみたいです。
使用することがあったら追記します。

元記事を表示

【PHP】`firebase/php-jwt`でトークンをdecode時に { “status”: “\”kid\” empty, unable to lookup correct key” }のエラーが発生

## 概要
PHPでJWTの仕組みを実装する場合、[firebase/php-jwt](https://github.com/firebase/php-jwt)のライブラリが使用されることがあると思います。このライブラリを使用して、JWTのトークン作成からdecodeまでの実装は[PHP: JWT を使った認証](https://blog.sarabande.jp/post/123018347873)の記事が、参考になると思います。
さて、実際にトークンのdecodeを行う時に以下のような実装を行ったところ、` { “status”: “\”kid\” empty, unable to lookup correct key” }`というエラーが発生しました。
“`php
$decodedResult = JWT::decode($token, env(‘JWT_SECRET_KEY’), [‘HS256’]);
“`

なお、今回使用したライブラリのバージョンは`v6.3.0`です。

## 原因
[こちら](https://stackoverflow.com/a/7231065

元記事を表示

PHPの日付取得方法まとめ

# はじめに
主に自分用に、PHPで日付を取る方法をまとめています。
特に、前月や次月の日付を取得したいという場合、取得に注意が必要なので、以下にまとめておきます。

## 念のたPHPのバージョン
“`
PHP 7.3.29
“`

## 日付の取得・加算・減算
主にstrtotimeを使用した取得の仕方をまとめます。
“`php
//現在の日付のtimestamp
strtotime(“now”)

//現在の日付をyyyy/MM/dd HH:mm:ssの形式で(デフォルトはUTC。変更したい場合はphp.iniのdate.timezoneを変更)
date(‘Y/m/d H:i:s’, strtotime(‘now’));

//1年前・1年後
date(‘Y/m/d H:i:s’, strtotime(‘-1 year’));
date(‘Y/m/d H:i:s’, strtotime(‘+1 year’));

//1ヶ月前・1ヶ月後
date(‘Y/m/d H:i:s’, strtotime(‘-1 month’));
date(‘Y/m/d H:i:s’, strt

元記事を表示

【PHP基礎復習5】文字列から数値のみを抽出する

[問題]
入力された文字列から数値の部分だけ取り出して出力しなさい。

# コード
“`PHP
$input = fgets(STDIN);
echo preg_replace(‘/[^0-9]/’, ”, $input_line), PHP_EOL;
“`

↓ 15kgと入力
# 結果
“`
15
“`

☆文字列から数値のみを抽出する
preg_replace(正規表現, 置換後の文字列, 対象の文字列);

元記事を表示

9月5日

9月5日 プロゲートのアプリでPHPの内容を1から8まで完了。内容が難しので復習が必要。

元記事を表示

【PHP基礎復習4】引き算②

[問題]
ユキさんは、あるアイドルグループのファンです。
そのグループは西暦A年に結成されました。現在は西暦B年ですが、今年で何周年でしょうか。

# コード
“`PHP
$input1= fgets(STDIN);
$input2= fgets(STDIN);
echo $input2 – $input1, PHP_EOL;
“`

↓ 2015、2022と入力

# 結果
“`
7
“`

元記事を表示

作業メモ 20220905

今日作業で参考にしたサイト

https://into-the-program.com/display-block-none/

https://qiita.com/TakePro/items/0faee19101a02aeb5f7a

https://www.delftstack.com/ja/howto/javascript/javascript-get-input-value/

Laravelでredirect(リダイレクト)させる方法【初心者向け】

http://kayakuguri.github.io/blog/2017/12/06/laravel-ajax-csrf/

https://sota1235.hatenablog.com/entry/2015/10/11/213000

https://qiita.com/toontoon/items/7634f8a3905bad79b38d

要素の中身を変える!JavaScriptでinnerHTMLの使い方【初心者向け】

【JavaScript入門】Ajaxの使い方とGET・POST通信まとめ!

https://qiita.co

元記事を表示

【PHP基礎復習3】掛け算

[問題]
ユキさんは、スーパーでアルバイトをしています。
時給A円でB時間働くと、何円お給料をもらえるでしょうか。

# コード
“`PHP
$input1= fgets(STDIN);
$input2= fgets(STDIN);
echo $input1 * $input2, PHP_EOL;
“`

↓ 990、5と入力

# 結果
“`
4950
“`

元記事を表示

【PHP基礎復習2】引き算

[問題]
ユキさんは、400ページある本を読んでいます。
昨日はAページ、今日はBページ読みました。残りは何ページか出力させなさい。

# コード
“`PHP
$input1 = fgets(STDIN);
$input2 = fgets(STDIN);
echo 400 – $input1 – $input2, PHP_EOL;
“`

↓ 110、87と入力

# 結果
“`
203
“`

元記事を表示

【PHP基礎復習1】割り算の余り

[問題]
入力値AをBで割った余りを出力する。(A>B)
余りが0の場合も0と出力されるようにする。

# コード
“`PHP
$input1 = fgets(STDIN);
$input2 = fgets(STDIN);
echo $input1 % $input2, PHP_EOL;
“`
↓ 17、5を入力
# 結果
“`
2
“`

元記事を表示

ゆめみの採用試験サンプル問題をPHPで解いてみた

[新卒・中途採用におけるコードチェックの実施とチェック時の観点について(株式会社ゆめみサーバサイドの場合)](https://qiita.com/taruhachi/items/0318c1a603478058d863)という記事を見ていたら[採用試験サンプル](https://www.yumemi.co.jp/serverside_recruit)が公開されていて、そしてその選択肢にPHPがあったので解いてみることにします。

べつに転職するつもりとかは全くありませんが。

# [問題](https://www.yumemi.co.jp/serverside_recruit)

“`csv
create_timestamp,player_id,score
2021/01/01 12:00,player0001,12345
2021/01/02 13:00,player0002,10000
2021/01/03 12:00,player0021,100
2021/01/04 12:10,player0031,200
2021/01/05 12:00,player0041,300

元記事を表示

LaravelのPHPUnitテストでキャッシュ一覧を取得する(CACHE_DRIVER=array編)

## PHPUnitでキャッシュドライバを配列するときの設定

“`xml:phpunit.xml

“`
## キャッシュ一覧を取得する方法

“`php:test.php
$store = Cache::getStore();
$reflection = new \ReflectionClass(get_class($store));
$property = $reflection->getProperty(‘storage’);
$property->setAccessible(true);
$cache = $property->getValue($store);
“`

これですべてのキャッシュされたキーと値の配列が取得できる。

## Example

“`php
// キャッシュ
Cache::add(“hoge”, “value1”);
Cache::add(“hoge2”, “value2”);

// すべてのキ

元記事を表示

Docker上でLaravelのプロジェクトを作成するまで 前半

この記事ではDocker上にLaravelプロジェクトを立ち上げる方法を解説していきます。
今回の記事を理解する上で大事な用語が多いですが、随時解説していきますので安心してついてきてくださいね!

なお、自分のPCは
・MacBook Pro
・M2チップ
なので、予めご了承ください

## まずはDockerのインストールから
なにはともあれ、まずはDockerのインストールをしないと始まらないので、
[公式サイト](https://www.docker.com/get-started/)から、ご自身のOS用のDockerをダウンロードしてください。
DockerDesktopをインストールしてくださいね。Docker Hubの方ではないので注意してくださいね。
指示通りインストールできたらターミナルを開いて
“`
docker version
“`
と叩いて、Dockerに関する情報が出てきたらインストールは無事完了です!

Macをお使いの方で何か不具合があったら、再起動することで動くことがあるので試してみてください!

## 実際にDocker上にLaravelプロジェクト

元記事を表示

【環境構築】 「memory_limit」が足りないと言われた!

環境構築時にコードを“`clone“`してきた後

ターミナル上で“`$ php init“`したら下記のようなエラー文が表示されました

“`
Allowed memory size of xxx bytes exhausted (tried to allocate xxx bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/RuleSetGenerator.php on line 129
“`
メモリが足りないとのこと。。

## 解決策1 「cloneしてきたphp.iniを編集する」
1. “`$ php init“` で作成されたdockerをdeleteする
1. “`php.ini“`内の「memory_limit」を編集する
“`
memory_limit=256M

memory_limit=-1
“`

3. 再度“`$ php init“`で環境構築する

→変化なし。。

## 自PC内ディレクトリのphp.iniを編集
1. cloneして

元記事を表示

文字コードの5C問題について解説

最近直面した5C問題をメモとしてまとめておこうと思います。

## 5C問題とは
日本語は、ひらがな、カタカナ、漢字など文字数も多く、1バイト(256種類)では
すべての文字を表現することは難しいため、`ShiftJIS`では、漢字を**1文字当たり2バイト**を
使って文字情報を表します。

ここで問題なのが、`「¥」`、`「 \ 」`の文字コードが「**5c**」であり、
**一部の漢字の文字コードが重複している**ため、コンピュータはその箇所を
**エスケープ記号**として解釈することにより正常に読み取れなくなっている。

文字 Shift-JISコード
89 5c

Python,Ruby,PHP,Java,JavaScript,Perlの演算子の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの演算子の比較

# Python

https://qiita.com/G-Rape/items/cd3f2f284ba990164564

# Ruby

https://www.tohoho-web.com/ruby/operators.html

# PHP

https://qiita.com/mzmz__02/items/8bfbcf2cd48d9e9f2806

# Java

https://qiita.com/suema0331/items/7045e3ce3e2f5faa9acf

# JavaScript

https://qiita.com/uhyo/items/cc92a553059274d85403

# Perl

https://perlzemi.com/blog/20161005147566.h

Laravelでサイト構築

今日の開発で参考にした記事

https://johobase.com/create-table-primarykey-sql/

LaravelのModelを初心者向けに解説!作成方法や使い方、実践までを即理解


https://qiita.com/usayamadausako/items/f53a24ada4c22e1a2cc9
https://qiita.com/yukibe/items/7bab0d596ae9a0930f18

【MySQL入門】INSERT文を使いこなす!基本からSELECT句まで一挙紹介


https://qiita.com/ryo2132/items/63ced19601b3fa30e6de
https://qiita.com/aoaoao/items/623bf40a1c317fc45a8f
https://note.com/hotate52/n/n7819e25bc700
https://programmercollege.jp/column/2663/
https://webukatu.com/wordpress/blo

そのif文もっと見やすくしてみません?

# 基本
“`
if($priceA > $price B){
$message = ‘Aの方が高い’;
}else{
#message = ‘Bと同じかBの方が高い’;
}
“`
というコードがあったら
“`
$price = $price > $price
? ‘Aの方が高い’
: ‘Bと同じかBの方が高い’;
“`
と書けるよというのがこのお話の基本
(?とか:を先頭にしておくと、三項演算子の処理が続くよ、とわかるのでおすすめ)

循環複雑度が下がるので不具合の発生度が下がるはず

# 応用
基本があれば応用があるのが世の習い
もっと複雑な処理でもこんなふうに綺麗になる
## 汚いif文
“`

if ($paymentTotal > $salesTotal) {
$differenceBetweenPaymentsAndSales = $paymentTotal – $salesTotal;
if ($price1) {
$result1 -= $diff

Laravel8のJetstreamでAPIの発行をhasTeamPermissionでコントロールする

Laravel入門中です。

今回はJetstreamのAPI Token発行を制限してみます。
あまりよくわかっていないので、この方法が適切かどうかわかりませんがとりあえずやってみました。

### 前提

– Laravel8.x
– Jetstream team版導入済み

### roleを追加

まず、teamに閲覧専用のpermissionを追加します。

app>Providers>jetstreamServideProvider.phpの

“`php:jetstreamServideProvider.php
protected function configurePermissions()
{
Jetstream::defaultApiTokenPermissions([‘read’]);

Jetstream::role(‘admin’, ‘Administrator’, [
‘create’,
‘read’,
‘update’,

【サボりたいエンジニア向け】コーディングに役立つチートシートまとめ

# はじめに

こんな人が役に立つ記事
* コーディング業務の効率を上げたい。
* コーディングに関するチートシートを知りたい。
* 打つのもめんどいからコピペでなんとかしたい(笑)

今回は、コーディングに役立つチートシートをまとめました。

## VSCODEチートシート
エンジニアなら必ず使うであろうVsCodeのショートカットチートシート。これはよく使ってます!