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

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

【Laravel】NGワードを精度高く検知する機能を開発してみる

こんにちは!
サーバーサイドエンジニアからフルスタックエンジニアにテラ進化したいすぎちゃんです! :cat:

今回はNGワードを**精度高くマスキング**する機能についてお話ししたいと思います!

さて、このNGワードマスキング機能はどのような効果をもたらすでしょうか?

– サービス利用者の心理的安全性の向上
– カスタマーサポート対応の負担軽減
– エンジニアによるデータベースクリーニング作業の削減
([実際に被害にあった人の声](https://qiita.com/nasuB7373/items/10bebd8e9f0b3331f348))

などなど・・・
まさに三方良しの機能と行っても過言ではありません。

実際に配信サービスやオンラインゲームにも、NGワードに対してなんらかの処理をかける機能が搭載されています!

:::note info
– [**ニコニコ生放送**](https://dic.nicovideo.jp/a/%E3%83%8B%E3%82%B3%E3%83%8B%E3%82%B3%E7%94%9F%E6%94%BE%E9%80%81%3A%E9%81%8

元記事を表示

環境構築メモ – Laravel編

環境構築としてLaravelのセットアップについて記録しておく
今回はUbuntu上にLaravelをインストールする

[Ubuntuのインストールはこちら](https://qiita.com/aMASSO/items/c436339ad183a9dbb545)
[PHP・MySQLのインストールはこちら](https://qiita.com/aMASSO/items/08e1ee8b2245d0f524e4)

### 1.nodeのインストール
※sudo apt でインストールされるnodeは古い為、nvm(ノード バージョン マネージャー)でインストールする

nvmインストール
“`
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879789/6ec66be

元記事を表示

【デレステ】レアアイドルは本当に均等に出現するのか15901人調べてみた

アイドルマスター シンデレラガールズ スターライトステージ9周年おめでとうございます。

https://x.com/imascg_stage/status/1830621726352572503

ところで日課の納税をするたびに気になっていたことがあるんですよね。
レアアイドルって本当にみんな均等に出現するんだろうか?

![01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/fa1f6c63-ff23-d04f-5316-537e6df0ece1.jpeg)

デレステはガシャの出現率が全て表示されていまして、レアアイドルは全員0.825%で共通となっています。
ただ毎日引いていると、なんとなくそうではない気がしてくるんですよね。
西園寺琴歌やクラリスはわりとよく見かけるし、逆に楊菲菲や兵藤レナなどはあんまり見ない気がします。
これは単に記憶が偏っているだけなのでしょうか。
それとも本当に何らかの偏りが発生していたりするのでしょうかね。

調べてみたいですよね。
しかし調査するにしても

元記事を表示

2024年にPHP7.4を導入する最速の方法 — Servbay

[Servbay](https://www.servbay.com/ja) は、近年開発環境の構成に重点を置いたツールです。このチュートリアルでは、Servbay のデプロイメント哲学に完全に一致する迅速で安全かつ安定したデプロイメントを目指しているため、Servbay を使用して [PHP 7.4](https://www.servbay.com/ja) をデプロイします。

## 前提条件
– Servbay がインストールされている必要があります。Servbay の公式 Web サイトからダウンロードできます。

– Servbay が提供するインストール ガイドに従ってください。他のソフトウェアと同様に、インストールは簡単です。次へ → 次へ。

### 手順 1: アプリケーションの起動
Servbay アイコンをダブルクリックしてアプリケーションを起動します。

または、メイン画面で [管理インターフェイス] ボタンを見つけてクリックし、Servbay の管理インターフェイスを開きます。

### 手順 2: PHP 7.4 パッケージの選択
管理インターフェイスで、[サー

元記事を表示

新人PGのLaravel備忘録~論理削除の実装~

# はじめに
こちらは筆者がLaravelに関する知識の定着を図るための投稿です。
以下の点にご注意ください
* この記事の読者は私と同じ実務歴半年~1年程度の新人PGの方を想定しています
* 記事内において間違いや冗長な説明が多々あることをご容赦ください
* 公式ドキュメントと相違がある場合はそちらを参考にしてください
* 公の場で記事を引用していただく場合は予めご連絡ください
* コメント大歓迎です!!出来るだけ返信しようと思っております!!
# 今回のテーマ
この記事ではLaravelにおける論理削除の実装について具体的なコードを用いて説明します。[^1]
※今回の実装はlaravel8での実装となります。他のバージョン(特に5.x以前)のlaravelで実装する場合はコードが異なる可能性があるため[公式ドキュメント](https://laravel.com/docs/8.x/eloquent)の#Soft Deletingの項をご確認ください。
[^1]:今回の記事はあくまでも「論理削除の実装」に関する記事であり、導入を推奨するものではありません。
# 論理削除とは
そもそも論

元記事を表示

環境構築メモ – PHP・MySQL編

環境構築としてPHP・MySQLのセットアップについて記録しておく
今回はUbuntu上にPHP・MySQLをインストールする

[Ubuntuのインストールについてはこちら](https://qiita.com/aMASSO/items/c436339ad183a9dbb545)

### 1.PHPインストール
phpのバージョンを確認
“`
sudo apt show php
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879789/b17f0361-bc6b-ad0f-b8ea-91c15700be5c.png)

リポジトリを追加
“`
sudo apt install software-properties-common
sudo apt-add-repository ppa:ondrej/php
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/

元記事を表示

PHP Warning: PHP Startup: Unable to load dynamic library ‘curl’ …

まえがき

`xampp` で表題のエラーが出ていたので、それを修正するためのメモです。
(なお、他のすべてのエラーが無くなったわけではありません。)

:::note info
**私の環境**
+ Windows 10 Home(22H2)
+ `D`ドライブ直下に`xampp`をインストールしています(`D:\xampp`)。
:::

## 1. エラーの内容

以前に書いた記事
「**更新が止まった(?)XAMPPに新バージョンのPHPを導入する**」
で追加導入した`PHP8.3.10`は見た目はちゃんと動いたのですが、
`apache`の`error.log`(`D:\xampp\apache\logs\error.log`)に、`apache`を起動するたび、以下のような9行のエラーが記録されていました。

“`conf
[Sun Sep 08 17:52:10.100260 2024] [core:warn] [pid 4956:tid 696] AH00098: pid file D:/xampp/apache/logs/httpd.pid overwritten

元記事を表示

Laravelのテストコードでマテリアライズド・ビューのテーブルに対するクエリのテストをする

業務でマテリアライズド・ビューのテーブルに対して、クエリを実行する関数のLaravelのフレームワークを使ったテストを書きたいとなったときに迷ったので備忘録のために残しておきます。
珍しいケースかなとは思うものの、実際やってみるとそんなに難しくなかったのという感じでした。

ただ、マテリアライズド・ビューのもとになるSQLクエリが複雑だと元データの作成は大変なのでそこのハードルはあるなと思いました。

# マテリアライズド・ビューとは?

本来、SQLのビューは実体を持たない仮想テーブルのようなもので、SELECT文などで生成されます。
マテリアライズド・ビューはその点、実体を持つビューでクエリの結果をテーブルとして作成できる仕組みです。

このテーブルは登録、更新、削除などはできず、読み込みのみできるテーブルとなっており、通常のテーブルとは少し異なります。

参考

https://products.sint.co.jp/siob/blog/materializedview#:~:text=%E3%83%9E%E3%83%86%E3%83%AA%E3%82%A2%E3%83%A9%E

元記事を表示

PHPとMySQLの接続方法をわかりやすく解説【初心者向け】

# 1.はじめに
この記事では、PHPを使ってMySQLデータベースに接続する方法を解説します。
PHPの基本的な知識がある方、データベース接続に挑戦したい初心者の方は是非ご覧ください。

# 2.PHPとMySQLの接続とは?
まずデータベースとは何か、PHPがどのようにデータベースと通信するのかについて簡単に説明します。
接続方法として「PDO(PHP Datta Objects)」と「MySQLi」の2つの接続方法があります。
今回はより汎用的で推奨されているPDOを使用します。

# 3.PHPでのMySQL接続コードの解説
### 3.1 PDOを使用した接続方法
“`PHP:php
try {
$dsn = ‘mysql:host=localhost;dbname=test_db;charset=utf8’;
$username = ‘root’;
$password = ”;
$option = [
PDO::ATTR_ERRMODE => PDO::ERRRMODE_EXCEPTION,
PDO::AT

元記事を表示

[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](https://www.servbay.com/ja)
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管理画面にオプション画面を設置し、
問い合わせ種別に応じて、それぞれ複数のメー

元記事を表示

OTHERカテゴリの最新記事