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

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

PHP技術者初級認定試験のための基礎振り返り③

# ファイル操作
**1. ファイルの読み込み**
PHPでは、fopen、fread、fgets、file_get_contentsなどの関数を使用してファイルを読み込むことができます。

file_get_contents
file_get_contents関数は、ファイル全体を文字列として取得します。
“`

“`
**2. ファイルの書き込み**
ファイルにデータを書き込むには、fopen、fwrite、file_put_contentsなどの関数を使用します。

file_put_contents
file_put_contents関数は、ファイルにデータを書き込みます。ファイルが存在しない場合は新しく作成し、既存のファイルがある場合は上書きします。
“`

元記事を表示

PHP技術者初級認定試験のための基礎振り返り②

# 文字列操作
**1. 文字列の結合**
PHPでは、文字列の結合にドット演算子(.)を使用します。
“`

“`
**2. 文字列の長さを取得する**
strlen関数を使うと、文字列の長さを取得できます。
“`

“`
**3. 部分文字列を取得する**
substr関数を使うと、文字列の一部を抽出できます。
“`

“`
**4. 文字列の検索と置換**
文字列の中の特定の部分を検索したり、置換したりするためにstrposと

元記事を表示

Docker CentOS7にPHP7.1+MySQL+Apache環境構築

## 概要
Dockerでタイトルの環境を構築する設定ファイルを残しておく。
CentOS7上に構築すると躓くところが多かった…

## 環境
– OS
– CentOS 7
– 言語
– PHP 7.1.
– DB
– MySQL 8.0.32

## 設定ファイル

### docker-compose.yaml
“`docker-compose.yaml
services:
mysql:
image: mysql:8.0.32
container_name: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: mysql
MYSQL_PORT: 3306
ports:
– 3307:3306
volumes:
– type: volume
source: mysql_data
target: /var/lib/mysql
– type: bind

元記事を表示

PHP技術者初級認定試験のための基礎振り返り

# PHPとは何か
PHPは「Hypertext Preprocessor」の略で、動的なウェブページを生成するためのサーバーサイドスクリプト言語です。PHPはHTMLに埋め込んで使用でき、データベースと連携することで、インタラクティブなウェブアプリケーションを作成することが可能です。

# PHPの基本構文
***1. PHPタグ***
PHPコードはの間に記述します。以下は基本的なPHPタグの例です。
“`

“`
**2. 変数とデータ型**
PHPでは、変数は$記号で始まります。変数に値を代入することで使用します。PHPの主なデータ型には以下のようなものがあります。

整数型 (integer): 整数値を扱います。
浮動小数点型 (float): 小数点を含む数値を扱います。
文字列型 (string): 文字列を扱います。
配列型 (array): 複数の値を一つの変数に格納します。
ブール型 (boolean): trueまたはfalseの値を持ちます。
例:
“`

元記事を表示

初めての成果物作成と振り返り

# はじめに
約2ヶ月の制作期間を経て、Webアプリケーションのデプロイがひとまず完了しました。
今年の7月中旬からプログラミングスクールに通い、PHPやLaravelといった技術を習得しながら進めたプロジェクトです。

私はもともとWeb系言語未経験で、個人開発の経験もありませんでした。そのため、成果物を完成させるためには、疑問が生じた際にすぐに質問できる環境が必要だと感じ、プログラミングスクールに通うことを決意しました。

この記事では、自分の理解を深めるためにも、今回の成果物であるWebアプリケーションについて紹介します。制作過程で学んだことや、直面した課題とその解決方法についても触れていきたいと思います。

# 目次
1. [自己紹介](#自己紹介)
2. [アプリケーション概要](#アプリケーション概要)
3. [使用技術](#使用技術)
4. [制作過程と内容](#制作過程と内容)
5. [振り返り](#振り返り)
6. [おわりに](#おわりに)

# 自己紹介
地方国立大学院工学専攻情報系修士1年
プログラミングに関わる経歴
– 大学の講義にてJava、Python、S

元記事を表示

Laravel の 404 エラーページでログイン状態が正しく表示されない問題の解決

## 問題の発生
Laravel 10 で構築されたプロジェクトにおいて、未定義のルートにアクセスした際に 404 エラーページへ遷移する際、ログイン状態が正しく表示されない問題が発生。
具体的には、ログインしているにも関わらず、セッションが開始されていなかった。

## 結論
フォールバックルートで対応できました。
“`php
Route::fallback(function () {
abort(404);
});
“`

## 原因の調査
この問題は、404 エラーが発生した際に、`StartSession` ミドルウェアが実行されず、セッションが開始されないことが原因でした。
`StartSession` ミドルウェアは、通常、`web` ミドルウェアグループに含まれており、定義済みのルートにアクセスした際には実行される。
しかし、未定義のルートにアクセスした場合は、`web` ミドルウェアグループが適用されないため、セッションが開始されない。

## 解決策の検討

### 1. 例外ハンドラでの対応
当初は、例外ハンドラ (`app/Exceptions/Ha

元記事を表示

19個のLaravelパフォーマンス最適化必須テクニック

この記事では、Laravelアプリケーションのパフォーマンスを大幅に向上させるための19のテクニックを詳しく探ります。以下にそれぞれのテクニックを説明します。
![20240918152752.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3884228/25f43d2d-3eac-b3cf-4621-60519f6d03a5.png)

### 開発環境ツールを導入する
ServBayは、開発者のために設計された一体型開発環境管理ツールで、開発環境の構築と維持を簡素化します。PHP、Node.js、MariaDB、PostgreSQLなどの多くの人気開発言語やデータベースを統合しており、開発者はプロジェクトのニーズに応じて適切な技術スタックを柔軟に選択できます。このツールは、ローカル開発でカスタムドメインやトップレベルドメイン(TLD)を使用することをサポートし、これらのドメインに自動的に無料のSSL証明書を生成することで、開発プロセスの安全性を高めます。

Laravelプロジェクトのデプロイニー

元記事を表示

sentence-transformers を用いた情報検索システムについて

### 開発の動機

社内の規則などを記述した PDF のドキュメント群があり、それを一括して検索できるシステムを作ろうと考えた。

### 処理の手順

#### イントラウェブサイトから PDF ファイルを DL する工程。

今回、ウェブロボットのように、あるドキュメントからその中のリンクをたどって新しいドキュメントをダウンロードすることはしない。与えられた複数の URL の PDF ドキュメントを毎日ダウンロードする。

#### PDF をテキストファイルに変換する工程。

ダウンロードした PDF ファイルをテキストファイルに変換するのには、pymupdf を使う。

#### 変換したテキストファイルを sentence-transformers に読みこませる文章にする工程。

変換したテキストファイルは、一行が文章であったり、言い回しで完結するとは限らない。そこで、PDF から変換したテキストファイルを、spacy と ja-ginza を用いて、一行が文章になるように修正する。

#### テキストファイルを sentence-transformers に読み込ま

元記事を表示

【Wordpress】カスタム投稿をカテゴリーと投稿日で絞り込む機能を自作する

## 完成イメージ
投稿日とカテゴリー2つの条件で投稿を絞り込むことができます。
それぞれ片方でも、両方の条件で複合的に絞り込むこともできます。

![画面収録 2024-09-15 19.42.56 (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3783222/caed83b4-22bf-e139-b8ef-7acf59a1f272.gif)

## 実装のポイント
wordpressを多少理解できている前提で、この実装の肝となるポイントを先にご紹介します。

– **サブクエリに「“`date_qeury“`」と「“`tax_query“`」という2つの条件を設定する**
– **検索ボタンを押した際に、GETメソッドで上記2つのクエリに必要な投稿日とカテゴリーの情報をURLパラメータから取得する**

## 前提条件・準備
– 実装する検索機能についてはプラグインを使用せず自作する
– カスタム投稿、カスタムタクソノミーはAdvanced Custom Fieldsを使用

元記事を表示

sendmailでサーバーと同じドメインのメールアドレスへのメール送信に失敗する場合の対応

# 状況

Webサーバー`yukihirog.jp`に設置したPHPからsendmailを経由して`mail@yukihirog.jp`にメール送信すると失敗してしまう。

しかし、`mail@anotherdomain.com`など、**他のドメインのメールアドレスへのメール送信は成功**する。

そのため、**サーバーと同じドメインへのメール送信のみが失敗**していると考えられる。

また、`/var/log/maillog`に`User unknown`が記録されていた。

(以降、`yukihirog.jp`の部分は自分のドメインに読み替えてください)

# 原因

メール送信時、設置サーバーと同じドメインの場合は外部を経由せずに自サーバー内で解決されるらしい。

**実際のメールサーバーをGメールなどで運用している場合**、自サーバー内を探しても配信先が見つからずに失敗、あるいは見つかってもユーザーが利用しているアプリなどに**届かない**ことになる。

# sendmailの確認

“`shell:sendmailが入っているかの確認
which sendmail
#

元記事を表示

仮想化ソフトを使ってMac環境にLinuxを入れて動的サーバーを立てる

# 備忘録自分の学習用
## 学習の目的
– 動的コンテンツのWebサーバーを建てること
– Webサーバーがどのように動いているのかを学ぶ
## 学習の流れ
### 1. サーバー構築作業
– ローカルマシンに仮想環境(UTM)を導入
– 仮想環境にLinux(ubuntu)を導入
– Linux補助ツール導入
– nginx導入とphpファイル読み込み設定
– PHPとPHP-fpmインストール
– PHPファイルの作成と導入
– systmctlのnginxを再起動
### 2. 実装中に出てきた不明点をまとめて調べる

## UTM導入
– [UTM](https://mac.getutm.app/)は[QEMU](https://e-words.jp/w/QEMU.html)というオープンソースのマシンエミュレーターをベースとした仮想化ソフトウェア。macOS上でx86/x64用のアプリケーションを実行することが可能。
– マシンに直接OSを入れるわけではないので、ローカル環境が汚れない

元記事を表示

2025年、PHPはまだ学ぶ価値があるのか?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3861208/8fa6cc80-095d-5edf-8350-63183c25f36f.png)

2025年が近づくにつれ、多くの新しいWeb開発者が重要な問いを考えています:PHPを学ぶ必要があるのでしょうか?

Web開発の分野では、PHPは過去数十年にわたり重要な地位を占めてきました。その影響力は無視できません。現在、75%以上のウェブサイトがWordPress、Drupal、Joomlaなどのプラットフォームを使用しており、これらはすべてPHPを基盤としています。しかし、新たなプログラミング言語やフレームワークの台頭に伴い、PHPの未来は挑戦に直面しているように見え、その学習価値も疑問視されています。

この記事では、2025年にPHPを学ぶことの利点と欠点を深く探り、その未来の発展動向を分析します。

### 1. PHPの持続的な重要性

Python、JavaScript、Rubyなどの新興言語が急速に台頭しているにもかかわ

元記事を表示

『良いコード/悪いコード』第八章のJava言語で書かれたサンプルコードをPHPに書き直す

## 目的
『良いコード/悪いコード』第八章に記載されているサンプルコードのうち、以下の❶~❸をPHP言語のコードに直すことで、更なる理解を深める

❶定数クラス
❷通常割引価格クラス
❸夏季割引価格クラス

# ❶定価クラス
“`php
// ①本書で登場するサンプルコード
class RegularPrice {
final int MIN_AMOUNT = 0;
final int amount;
// Javaではクラス名と同じ名前のメソッドをコンストラクタとして使用できる
RegularPrice(fainal int amount) {
// JavaはPHPよりも静的な構文がしっかりしており、直接アクセスできる。
if (amount < MIN_AMOUNT) { throw new ILLegalArgumentException("価格が0以上でありません。"); } this.amount = amount; } } // ②PHPに

元記事を表示

PHP8.1 Enums 導入

PHP8.1のEnum導入方法を学習の為、アウトプットします
# 導入の経緯
今までプロジェクトではBenSampo/laravel-enumを使用してましたが、PHP8.1でEnumsが実装され、BenSampo/laravel-enumのリポジトリで

:::note info
「Using this library is no longer recommended, especially for new projects. PHP 8.1 supports enums natively.」
このライブラリの使用は、特に新しいプロジェクトでは推奨されなくなりました。PHP 8.1 は enum をネイティブにサポートします。
:::
と書かれていた為、PHP8.1のEnumsを導入することにしました
# 導入方法
enum と宣言して列挙型を宣言する
case を使って列挙する
~~~Fruit.php

元記事を表示

#57 isset() vs empty() What’s the differences?

# isset() vs empty() What’s the differences?

While start learning PHP, there are always some points which is confusing. Today I would like to make a simple note to descript the differences between `isset()`, `empty()`, `if()`

## What is isset()?

>Determine if a variable is declared and is different than null

Simply saying it checks whether a variable is set and NOT equal to `NULL`

## What is empty()?

>Determine whether a variable is empty

All the variables including ` `, `0`,`false` and `

元記事を表示

テスト済みで実証済み!生産性を向上させる6つのツール!

## 情報管理

### [Document360](https://document360.com/)
**概要**: Document360は、ドキュメントの保存、共有、編集、ディスカッションを統合したチームコラボレーションおよびナレッジ管理プラットフォームです。

![画像説明](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/52n6i52dor5zycd5stq0.png)

**特徴**:

– 複数ユーザーによるリアルタイム編集とディスカッションをサポート。
– 強力な検索および分析機能により、ユーザーは必要な知識や情報を迅速に見つけることができます。

### [ChatGPT](https://openai.com/)
**概要**: ChatGPTは、OpenAIによって開発されたAIチャットボットで、強力な自然言語処理機能を備えています。これ以上の紹介は不要でしょう。

![画像説明](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/

元記事を表示

【PHP】nullの扱い方

nullに対する四則演算や型変換を実行すると0に変換されてしまうケースがあり、条件分岐などが想定通りにならない場合がある。
その場合にどうすればよいか、もしくはnullをどのように扱えばうまくいったかを書いていく。
# nullどうしの加算、減算、乗算
“`php
$plus = null + null;
$minus = null – null;
$multiply = null * null;
“`
“`php
// nullにはならず、全て数値型の0に変換される
int(0)
int(0)
int(0)
“`

# nullどうしの除算
“`php
$division = null / null;
“`
“`php
// エラーが発生
PHP Fatal error: Uncaught DivisionByZeroError: Division by zero in XXX
Stack trace:
#0 {main}
thrown in XXX
“`
# nullと数値の四則演算
“`php
$plusOne = null + 1;

元記事を表示

Laravel2024年Laravel開発者に必須のツールトップ10

Laravelは、その優雅な構文と強力なエコシステムにより、PHPフレームワークの中で際立っています。経験豊富な開発者でも新参者でも、適切な開発ツールを選択することは、生産性を向上させ、ワークフローを効率化し、高品質なWebアプリケーションを構築する上で重要です。2024年に向けて、Laravel開発者がその開発の旅を高めるために考慮すべき10の必須ツールを紹介します。
![20240918152752.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3878716/19a0f467-14c2-0684-527f-82845cc845a3.png)

### 1.**[Laravel Forge](https://forge.laravel.com/)**
Laravelの公式デプロイメントツールであるLaravel Forgeは、サーバー設定を簡素化し、デプロイメントを効率的かつシームレスにします。DigitalOcean、AWS、Linodeのいずれを選んでも、Forgeはすべてを処理し、サーバー管理

元記事を表示

Fuel\Core\PhpErrorException [ Fatal Error ]: The configured locale(s) “en_US” can not be found on your system.

Fuel\Core\PhpErrorException [ Fatal Error ]:
The configured locale(s) “en_US” can not be found on your system.

fuelPHPを設置する段階でもうローカルで開くことさえできないエラーが出されます。
(vscode, xampp使用)

「http://localhost/[プロジェクトフォルダ名]/public/」 
を開こうとしたらエラーが出ます。

対処法です。

fuel/app/config/config.php をひらきます。

そこから「language」を検索します。

/**
* The default language.
*/

// ‘language’ => ‘en’,

/**
* Fallback language when file isn’t available for default language.
*/

// ‘language_fallback’ => ‘en’,

/**
* PHP set_

元記事を表示

【AWS】EC2 インスタンス上で GitHub からクローンした PHP アプリを動かす

# はじめに
この記事では、EC2 インスタンス上で GitHub からクローンした PHP アプリを動かす方法を記載します。

# 開発環境
開発環境は以下の通りです。

– Apache 2.4.62
– PHP 8.3.7
– Git 2.40.1

# 事前準備
以下の2点を事前準備しておきます。

## PHP アプリの作成
以下のファイルを持つ PHP アプリを GitHub 上に作成します。

“`index.php




PHP Samples

PHP Samples

Hello PHP!




“`

“`clock.php

“`

## EC2 インスタン

元記事を表示

OTHERカテゴリの最新記事