PHP関連のことを調べてみた

PHP関連のことを調べてみた
目次

[PHP] 可読性0の短めなbase64エンコード・デコード関数 (v2)

この記事は、以下の記事に書いたやつがさすがにゴミだったので、その改訂版です

https://qiita.com/UziDeer/items/a624bf1b06c17fc24fee

“`b64fn.php
$b64Arr = array_merge(range(“A”, “Z”), range(“a”, “z”), range(“0”, “9”), [“+”, “/”]);

function b64safe(string $b64, bool $dec = false, array $rep = [[“+”, “/”, “=”], [“.”, “_”, “-“]]):string {
return str_replace($rep[(int) $dec], $rep[(int) !$dec], $b64);
}

function blockPad(string $str, string $pad, int $len, bool|int $right = false) {
$i = 0;
while

元記事を表示

LaravelでGemini APIを使おう

## はじめに
ChatGPTもいいけどGeminiもアツいよね、ということで使おうとしたのですがどうにも資料が少なくずいぶん苦労したのでやり方をまとめました。

## 環境
“`
$ php -v
PHP 8.2.20 (cli) (built: Jun 4 2024 13:22:51) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.20, Copyright (c) Zend Technologies
with Zend OPcache v8.2.20, Copyright (c), by Zend Technologies

$ php artisan –version
Laravel Framework 11.22.0
“`

## 手順
### 1. Google Cloud Platformへの登録&APIキーの発行
・[Google Cloud Platform](https://console.cloud.google.com/)にユーザ登録
・「APIとサービス」の「Generative Lang

元記事を表示

【PHP/Docker/Twig】初めて生PHPのアプリケーション作成してみた【Pスク生必見!?】

# はじめに
初めまして。Ricccckです。

私は、ReactやJavaScriptには、以前触れたことがあるのですが、今回は、初めてのバックエンド言語。初めてPHPに触れ、わからないこと、難しいことも多くありました…。

そんな中で、初めてアプリケーションを作成したので、今回は、その備忘録を書き留めておこうと思います。

この記事では、コードの詳しい内容までは触れず、「全体のモデルの話」や「コードの書き方」に注目して記事をまとめていきます。DockerとPHPの連携、GDライブラリの使用などで詰まった点もあったので、他の初学者の方に、少しでも参考になればと思います!

今は、twigを用いたフロント実装はあまりないかとも思いますが、Laravelではない **「生のPHP」** を触る機会がある場合には、うってつけの教材になると思いますので、ぜひ触れてみてください。

以下敬略にて失礼します。

# ビルドイメージ
### ロゴ画像
Mac OSユーザーのための必須ソフトウェア

本日のテーマは、Mac OSにインストールすべき必須ソフトウェアです。オフィス、動画、システムに関する日常使用のための生産性ツールをいくつかご紹介します。

役に立ったら、いいねとフォローをお願いします。

## 効率ツール
[Homebrew](https://brew.sh/)
Homebrewは、コマンドラインのパッケージ管理ツールで、サードパーティのソフトウェアパッケージを簡単に管理できるように設計されています。macOSだけでなくLinuxにも対応しており、ユーザーにシンプルなインストールと管理体験を提供します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3878716/e25a5800-f04c-eaab-44e2-4a5500413129.png)

[ServBay](servbay.com)
ServBayは、開発者向けのワンストップ開発環境管理ツールです。その主な目的は、開発環境の設定と維持のプロセスを簡素化し、開発者が環境の構成に多くの時間を費やすことなく、すぐ

元記事を表示

PHP8.0復活!Homebrewのicu4cバージョンアップに対応する方法

# Mac の Homebrew で入れた PHP8.0 が使えなくなったので対処してみた

最近、PHP8.3 にアップデートしたら、突然 PHP8.0 が使えなくなったんです。どうやら、icu4c が 74 に依存するようになってしまい、PHP8.0 では icu4c のバージョンが 73 じゃないとダメみたい。なので、ちょっとした対処方法をシェアします!

## エラーの発生

まず、ターミナルで `php -v` コマンドを叩いたらこんなエラーが出ました。

“`bash
$ php -v
dyld[660]: Library not loaded: /opt/homebrew/opt/icu4c/lib/libicuio.73.dylib
Referenced from: <139D175A-03FF-30B0-926E-B3B5282021FF> /opt/homebrew/Cellar/php@8.0/8.0.30_1/bin/php
Reason: tried: ‘/opt/homebrew/opt/icu4c/lib/libicuio.73.

元記事を表示

高いジムなのに休館しててムカついた勢いでWebアプリリリースした話

## 自己紹介
皆様はジムに行かれてますでしょうか。私は健康を目指して週3で通っております。
大学生のときに、某24hジムでバイトしていたことをきっかけにジムに通い始めました。
その習慣は6年後の今でも続いており、転職を機に最高峰のジムと謳われるゴールドジムに転入しました。
しかし、ゴールドジムは会費が高いです。普通の24hジムの3〜4倍はするんじゃないでしょうか。

## ゴールドジムの問題点
早速ですが、ゴールドジムに文句をつけていきます。
ペルソナ設定ってやつです。

ゴールドジムには、休館日があります。
運営の視点からすれば、その間に掃除をしたり、スタッフの方もお休みも必要ですから、なんら問題はありません。

でも、私は夜型です!22時からやる気が出るのです。
そのため、普段は営業時間の長い大阪付近のゴールドジムで汗を流しています。
ジュラシック木澤さん や なかやまきんに君、横川くんの動画を見なから、フガフガとシムの前までくると。

**「本日は閉館しました。」**

![スクリーンショット 2024-09-04 21.28.45.png](https://qiita-im

元記事を表示

WordPressをローカル環境でDockerを使って一瞬で動かす備忘録

普段Wodpress関連をローカルで開発するときには、WSL2環境でApacheを使って行っています。
しかし、訳あってdockerで動かす必要があったのでその時の備忘録です。

正直、難しいんだろうな・・・
呪文の書(dcoker-compose.yml)かけるかな・・・
と不安だったのですが、 **一瞬でした。**
`docker-compose.yml`の書き方は後で覚える!今は開発環境作るのが先やで!という方はコピペ爆速でいけるはずです。
是非どうぞ!

# 環境
– WSL2
– Docker Desktop for Windows
– WordPress最新
– MySQL

# 爆速を求めてるあなたに
何も気にせず次の通りにしてください。
1. Dockerを起動(私はDocker Desktop for Windowsを使ってます)
1. プロジェクトを置きたいディレクトリに`dcoker-compose.yml`ファイルを作成
1. `docker-compose.yml`に以下をコピペ
“` docker-compose.yml
version:

元記事を表示

PhpStormで空行の空白が勝手に削除される 👿【Settings/Preferences | Editor | General | Remove trailing spaces on:】

原因はこいつじゃない
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435735/8647dd3c-c816-7019-64ce-9c29c5e0a3a8.png)

.editorconfigが原因

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435735/71f06f51-d726-c2fc-d5f7-233d5c204cc4.png)

“`ini:.editorconfig
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true ←削除するよ

[*.md]
trim_trailing_whitespace = false

[*.{yml,

元記事を表示

[Dompdf] LaravelでPDFを出力する

# 導入

これまでlaravelでPDFを出力する際にはlaravel-snappyを使用していました。
しかし、laravel-snappyを使うためのwkhtmltopdfのサポートが2023年に切れてしました😭😭

代替としてDompdfを使用することになったので、導入手順をまとめようと思います。

https://github.com/dompdf/dompdf

動作環境:Docker, laravel 10

# インストール
“`bash
# dompdfをインストール
composer require dompdf/dompdf

# config/dompdf.phpを作成
php artisan vendor:publish –provider=”Barryvdh\DomPDF\ServiceProvider”
“`

# 基本設定
#### 1.app.phpのproviders, aliasesへそれぞれ追加
“`app.php
‘providers’ => [
.
.
.
\Barryvdh\DomPDF\Servic

元記事を表示

静的なLPをdistをルートとして確認する

静的なLPをつくってるとルート相対パスなどサーバー上げないと確認できないことがある。
phpでlocalhost:8000でサーバー起動して確認できる!

“`
npm run build
cd dist
php -S localhost:8000
“`

http://localhost:8000/

元記事を表示

WordPress Contact Form 7 で問い合わせ種別に応じて複数の宛先に管理者向けメールを送る方法

# はじめに

問い合わせ種別に応じて、各担当のメールアドレス宛にメールを送りたいこと、あると思います。
Contact Form 7は以下のようにプルダウンのvalueにメールアドレスを設定すれば、やりたいことが出来るには出来るのですが…

“`php
[select* type id:type class:form-select include_blank “イベントに関する問い合わせ|test+event@example.co.jp” “求人に関する問い合わせ|test+recruit@example.co.jp” “ホームページに関する問い合わせ|test+web@example.co.jp” “その他|test+etc@example.co.jp”]
“`

valueにメールアドレスの一覧を羅列するのって結構抵抗ありませんか? 私はあります。

担当のメールアドレスが変わったら、メンテナンスが大変ですし、
担当のメールアドレスが複数あったら、実装も大変になります。

なので、Wordpress管理画面にオプション画面を設置し、
問い合わせ種別に応じて、それぞれ複数のメー

元記事を表示

エロ画像検出APIを用いてエロ画像のアップロードを阻止してみる【後編】

こんにちは!すぎちゃんです!

今回は前編に引き続き、Fargateコンテナと連携をした「エロ画像防止機能」をlaravelで作っていこうと思います! :muscle:

こちらの記事にも「いいね :heart: 」よろしくお願いします!

:::note info
[エロ画像検出APIを用いてエロ画像のアップロードを阻止してみる【前編】](https://qiita.com/sugichaaaan/items/738867e4bc3a1a0077d9)
:::

## :file_folder: ディレクトリ構造

今回の実装で使用する、クラス、bladeファイルを一挙公開いたします!

srcを起点にtreeを起動してしまうと枠に収まりきらなくなるので、直下のappディレクトリ、resourcesディレクトリでそれぞれコマンドを叩きファイル構造を可視化しました。

`(省略)`と末尾についているディレクトリについては、今回のエロ画像検出機能とは関係がないので配下のディレクトリ、及びファイルの表示は控えさせていただきます:sweat_drops:

### [src/ap

元記事を表示

Laravel8 新規作成したプロジェクトのMySQLにログインする方法

# 前提
以下のコマンドを実行し、Laravel8のプロジェクトを作成していること
“`
composer create-project laravel/laravel {プロジェクト名} “8.*” –prefer-dist
“`

# MySQLのサーバー起動
“`
$ sudo mysql.server start
“`

# ログインコマンド実行
“`
$ sudo mysql -u {ユーザ名} -h {ホスト名} -p
“`
.env の初期値から特に変更していないため、ユーザ名は「root」ホスト名は「localhost」を指定
正しいパスワードを入力するとログインに成功する
“`
$ sudo mysql -u root -h localhost -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.1.0 Homebrew

Copyright (c) 200

元記事を表示

Laravelのソート操作:usort、sortBy、orderByの違い

Laravelでは、データの並べ替え(ソート)を行うためのいくつかの方法があります。
– PHPのusort関数
– Laravel独自のsortByメソッド
– クエリビルダのorderByメソッド

本記事では、それぞれの使い所を紹介します。

## usortとは?
usortは、PHPの組み込み関数であり、ユーザー定義の比較関数に基づいて配列をソートするために使用されます。シンプルなソートから複雑なカスタムロジックに基づくソートまで、柔軟に対応できるのが特徴です。

### usortの基本的な使い方
“`php
usort($array, ‘callback’);
“`

– **$array:** ソート対象の配列、usortはこの配列を直接変更します
– **’callback’:** 2つの要素を比較するためのユーザー定義の比較関数。この関数は次の値を返します:
– 負の整数($a < $b の場合) - 正の整数($a > $b の場合)
– 0($a == $b の場合)
### usortを使った例
配列内のオブジェクトを特定のプロパテ

元記事を表示

XserverでPHPのバージョンを上げる時に困った話

# はじめに

こんにちは、エンジニアのkeitaMaxです。

今回はXserverでPHPのバージョンが上げられなくて困ったことについて備忘録として書きます。

# 困ったこと

XserverのサーバパネルでPHPのバージョンを上げたが、コマンドでPHPのバージョンを確認したら上がってなくて困りました。

![スクリーンショット 2024-08-29 13.06.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3715123/1c1fb5e8-5c3e-b435-a167-83680c8350e0.png)

“`
$ php -v
PHP 8.1.22 (cli) (built: Aug 15 2023 11:02:44) (NTS)
“`

# 解決策

`/usr/bin/`にあるphpのシンボリックリンクを修正したら直りました。

“`:/usr/bin/
$ unlink php
$ ln -s /usr/bin/php8.2 php
“`

“`
$ php -v
PH

元記事を表示

php-fpmの設定ファイルの場所を探す

`php-fpm -t` コマンドで探す

“`
$ docker run php:8.3-fpm php-fpm -t
[01-Sep-2024 19:57:29] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful
“`

“`
$ docker run php:8.3-fpm ls /usr/local/etc/php-fpm.conf
/usr/local/etc/php-fpm.conf
“`

見つかりました!

## 補足

“`
$ docker run php:8.3-fpm php-fpm -h
Usage: php [-n] [-e] [-h] [-i] [-m] [-v] [-t] [-p ] [-g ] [-c ] [-d foo[=bar]] [-y ] [-D] [-F [-O]]
-c | Look for php.ini file in this directory

元記事を表示

①Laravelのクエリビルダー

## クエリビルダーとは
SQLの命令文(クエリ)を作成して実行するための機能

## やりたいこと
・各月ごとに投稿されたブログ数の集計

まず

“`
$blogCounts = DB::table(‘blogs’) 
“`
Laravelのクエリビルダーを使用してblogsテーブルに対してクエリを構築します

“`
->select(
DB::raw(“DATE_FORMAT(created_at, ‘%Y-%m’) as month”),
DB::raw(“COUNT(*) as blog_count”)
)
“`
DB::raw 生のSQLを直接クエリへ組み込むために使用します
created_atを’2024-09-01 12:34:56’→’2024-09’として、monthというエイリアスにし、
その月のブログ投稿数をカウントして、blog_countというエイリアスにします

※DATE_FORMAT 関数を使用すると引数に指定した日付を
指定のフォーマットで整形した文字列にして取得することができます

“`
->groupBy(DB

元記事を表示

投稿アプリで本人以外が記事を削除できなくする (Laravel)

## はじめに
Laravel学習の一環でBreezeを利用した簡単な記事投稿アプリを作成しました。
その際、投稿した本人以外が記事を編集・削除できないようにする機能を実装してみたので、備忘のため記事に残します。

## 完成イメージ
投稿した本人の場合 → 編集・削除ボタンが表示される
![スクリーンショット 2024-09-01 19.17.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3362317/93182f55-f314-b928-a983-3545a0367a58.png)

投稿した本人**以外**の場合 → ボタンが表示されない
![スクリーンショット 2024-09-01 19.19.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3362317/e37fb7a5-5de7-9d3e-3985-30f83564ccd5.png)

## 実装フロー
1. ビューに記事の投稿者を確認するロジッ

元記事を表示

steamのAPIを使用して積みゲーを調べてみた.

まず前提条件としてsteamのAPIを使用するにはsteamの商品をある一定の金額以上購入している人しか使えないみたい.
APIの登録は下記のリンクから可能です.

https://steamcommunity.com/dev/apikey

登録が終わったら登録したドメインから下記のソースコードを実行します.
なお、コンフィグ値はご自身にあった値へ変更してください.

https://github.com/taoka3/steam

“`php:steam.php
APIKEY,
‘steamid’

元記事を表示

Laravel × Vue チュートリアル with PokeAPI(ポケモン)

# はじめに
初心者向けのチュートリアルとして Laravel 11 と Vue 3 を組み合わせたアプリケーションを作成する方法を説明しています。

また、本記事では Vue 3 の記法として Options API を用いて記述しております。
Options API は Vue 2 の記法と同じであり、少し手順を変更すれば Vue 2 を用いたチュートリアルとしても活用できると考えたためです。

# 完成イメージ
ポケモンのデータを取得できる無料のAPI「PokeAPI」を用いて、ポケモンの一覧を表示します。また、お気に入りのポケモンを登録/解除できる機能を作成し、気になるポケモンに目印を付けることを可能とします。

# 前提条件
– Docker が使用できる状態であること

# 用いる技術
– PHP 8.3

元記事を表示

OTHERカテゴリの最新記事