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

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

【PHP】シングルクォーテーションとダブルクォーテーションの違い

## はじめに
この記事は、PHPを勉強し始めたばかりの初心者向けの記事になります。

PHPを勉強していて、
**シングルクォーテーションとダブルクォーテーションに明確な違いがある**
ことに驚いたので今回記事を書いてアウトプットしようと思います。

結論はこちら⏬
– シングルクォーテーションで囲うと、変数が入っていようが**絶対に文字列になる**
– ダブルクォーテーションで囲うと、**変数が展開される**

## 実際に見てみる
“`$hensuu“`という変数を用意して、実際に確認してみます。
“`php:hello.php
$hensuu = ‘Hello World!’;
echo $hensuu.’
‘; # Hello World! と表示される
echo ‘$hensuu
‘; # $hensuu
と表示される
echo “$hensuu
“; # Hello World! と表示される
“`

実際にWebで確認したところ、以下のように表示されました。

![screenshot 2023-12-05 16.31.12.

元記事を表示

PHPSpreadSheetで3桁カンマで円マーク表記をする方法

PHPSpreadSheetはPHPでExcel等のファイルを生成するためのライブラリです。

https://github.com/PHPOffice/PhpSpreadsheet

こちらで円マークと3桁カンマを使って表示する方法がちょっと分からなかったので調べました。

結論としては`'”¥”#,##0’`と表記すると良いようです。**ダブルクォーテーションがないと、正しく認識してくれないので注意しましょう!**

“`php
$sheet->setCellValue(‘A1’, 1000);
$sheet
->getStyle(‘A1’)
->getNumberFormat()
->setFormatCode(‘”¥”#,##0’);
“`

メモ程度ですが、忘れがちなので書いておきました。

元記事を表示

codecamp第3章‐7 課題(中級)

## 変数$valueに代入されている値を「切り捨て」「切り上げ」「四捨五入」「小数点以下第三位四捨五入」した値を計算し表示するよう、以下のプログラムへ追記してください。

“`php:




課題

元の値:

小数切り捨て:

元記事を表示

codecamp第3章‐6 課題(初級)

## 「printf」という関数を使い、変数$intの値を5桁の数値として表示するよう、以下のプログラムへ追記してください。

“`php:

“`

元記事を表示

codecamp第3章‐5 課題

## 「data」という関数を使い、本日の日付を表示してください。

“`php:

“`

元記事を表示

税込金額から消費税額を算出してみた

# 概要
2023年10月よりインボイス制度が開始されました。

それにより、これまで税込金額で取り扱われていたシステムに対して、
「消費税額」を計算する必要が出てきました。

ちょうど仕事柄、税込金額から消費税の計算をする必要ができましたので、
消費税の計算プログラムを作ってみました。

# 計算プログラム

“`php

元記事を表示

開発時のエラー箇所発見のお手伝い、”ErrorHandler”

[Symfony Component Advent Calendar 2023](https://qiita.com/advent-calendar/2023/symfony-component)の5日目の記事です。

## 開発時のエラー箇所発見のお手伝い、”ErrorHandler”

`ErrorHandler`は、開発時にエラー箇所の特定を容易にするコンポーネントです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9882/131e0018-e795-0abb-07fb-5daa1dcb2303.png)

Symfonyを使っている人であれば、見たことあるエラー画面だと思います。この画面の出力のお手伝いをしているコンポーネントです。Symfony以外でも動作します。

### インストール

“`
composer require symfony/error-handler
“`

### 使い方

Symfonyにはすでに仕込まれているので、意識することないとは思いま

元記事を表示

正規表現を簡単に書きたいっ

## はじめに
– 正規表現ってむずかしいですよね。
– そんなあなたにおすすめなライブラリがあるのでご紹介します。

## 今回やること
– phpで正規表現をわかりやすく書けるライブラリ `VerbalExpressions/PHPVerbalExpressions` の紹介
– GitHub: https://github.com/VerbalExpressions/PHPVerbalExpressions
– 適当にpostした値をライブラリを利用して構築した正規表現でチェックしてみる

## 使い方
– `VerbalExpressions/PHPVerbalExpressions`のインストール
“`
composer require verbalexpressions/php-verbal-expressions
“`
– コントローラだったりモデル、サービスなど使いたいところで使うだけ

### 使用例
– URLの形式のに沿っておるか正規表現でチェックしたい時
普通に書くとこんな感じ ↓↓↓↓↓↓ むずかしい…
“`
$regex = ‘https?:/

元記事を表示

【PHP8.3】PHP8.3がリリースされたので新機能全部やる

[PHP8.3](https://qiita.com/rana_kualu/items/f03efb9810c3ac5b2ab6) / [PHP8.2](https://qiita.com/rana_kualu/items/64bd73ad3d314a1cccdc) / [PHP8.1](https://qiita.com/rana_kualu/items/e350b8ff80f929626eb9) / [PHP8.0](https://qiita.com/rana_kualu/items/c110cb244c3ee38c6859)

2023/11/23に[PHP8.3.0がリリースされました](https://www.php.net/)。
大きな新機能については、PHP8.0以降公開されるようになった[ランディングページ](https://www.php.net/releases/8.3/)で見ることができます。
[マイグレーションガイド](https://www.php.net/manual/ja/migration83.php)も既に日本語化されています。

また、採用された

元記事を表示

フレームワークを改修した話

みなさん、こんにちは!

長く開発をやっていると、使用した技術がいつのまにか古くなっている、というのがよくあります。
言語のバージョンもそうですが、フレームワークも同じです。

今回は、フレームワークが古くなった時の体験談です。

# 背景
過去に、とあるショッピングカートの開発を担当してました。
当時Ethnaというフレームワークを利用していたのですが、入社して3年ほど経ったときに、フレームワークの開発がストップしているのが発覚。

PHPのバージョンはどんどん上がっていき、フレームワークのPHPバージョンはもうすぐEOL。
さあ、どうする??という場面に直面し、色々と調査することに。

# 調査内容
## 他のフレームワークを調査する
当時の状況から、候補となったのは、以下の3つでした。
・CakePHP
・FuelPHP
・Zend Framework

使いやすさから考えると、一旦、CakePHPがいいのではないか、という結論に。

## 開発工数を見積もる
当然ですが、作り直した場合に、どのくらいのコストがかかるのか、という調査をします。
担当は私一人の前提で、機能数や画面数

元記事を表示

WordPressの諸々

今週のWordPressでハマったところ。
かなり初歩的な内容なんだろうけど。。。

## 記事とページネーションの数が一致しない
アーカイブページで1ページに12個ずつ投稿を出すように管理画面から設定をして、コードの方でも12件取得するように書いていた。
出力されてる記事が48件でページネーションが4つ表示されるのが正解なんだけど、何故かページネーションが5つ表示される。。。
原因は非表示にしている投稿まで取得していたこと。

以下が解決法でした。
“`PHP
function custom_posts() {
global $wp_query;
if($wp_query->is_admin) return;
if(is_post_type_archive()){
$wp_query->query_vars[‘post_status’] = ‘publish’;
}
}
add_filter(‘pre_get_posts’, ‘custom_posts’);
“`

元記事を表示

【メモ】Laravel API エラーフォーマットの上書きと注意点

## APIのエラーの上書き

### 概要
– 今回の要件
– POSTやPATCHなどの引数エラーなどなど、すべてのエラーはJSON形式でレスポンスをしたい
– Laravelのデフォルトでは、HTML形式でエラーがレスポンスされてしまう。
– エラーレスポンスも含めてレスポンスの形式を制御したい。

### 状況説明
“`
Illuminate\Database\QueryException: SQLSTATE[HY000]: General error: 1364 Field 'unique_text' doesn't have a default value (Connection: mysql, SQL: insert into `card_formats` (`payment_name`, `updated_at`, `created_at`) values (rakuten, 2023-12-03 09:46:59, 2023-12-03 09:46:59)) in file /var/www/html/vendor/lar

元記事を表示

PHP memory_get_usage() の引数 $real_usage とは?

# 序文
PHP で開発をしていると一度はこんなメッセージを見たことがあるかと思います。

“`log
Fatal error : Allowed memory size of xxx bytes exhausted …
“`

上記エラーは許容されているメモリサイズを超えてしまった場合に発生するものです。
このエラーの対処法を調べると、主に以下のような方法がヒットすると思います。

– 許容メモリ量を増やす( [memory_limit](https://www.php.net/manual/ja/ini.core.php#ini.memory-limit) を変更する)
– php.ini で設定を変更する
– .htaccess で設定を変更する
– ini_set() で一時的に設定を変更する
– コードをチューニングする(不要なメモリ使用を減らす)
– unset() で明示的に変数を解放する
– [gc_collect_cycles](https://www.php.net/manual/ja/function.gc-coll

元記事を表示

PHP/LaravelでFCMpush通知を実装した件

こんばんは!
アドベントカレンダー4日目を担当します、サーバーサイドエンジニアの@takapon21です
よろしくお願いします。

今回は、**PHP/Laravelを使用してFCM Push通知を送信する**
という実装についてのまとめを記載したいと思います。

firebase公式でサポートしてくれないPHP/Laravelを用いてどうしても実装したいんだ!!
という方向けに書いていきます。
実際私も参考文献が乏しすぎて苦労しました。備忘録に近いです

## やりたいこと
**LaravelからiOSデバイス、Androidデバイスにpush通知を送りたい**
今回はWeb Push通知ではなく(googleカレンダーが10分前くらいに会議を教えてくれるアレ)
Laravelを起点として、FCMを利用し、google, appleが提供するpush通知サーバーを経由して各デバイスにpush通知を送信する
という実装をします。

## 今回省略すること
push通知を送信するために、**デバイスのトークン**が必要です
このトークンは、「誰に送信するか」を指定するために

元記事を表示

【PHP】if($a == 1) と if(1 == $a) って何が違うの?

PHP の if 文の条件式の記述方法で、バグ対策になるような書き方があったので記事にしたいと思います。

例えば、以下のような2つのコード例があるとします。

“`php:例1のコード
$a = 2;
if($a == 1){
echo “one”;
}else{
echo “not one”;
}
“`

“`php:例2のコード
$a = 2;
if(1 == $a){
echo “one”;
}else{
echo “not one”;
}
“`

上記の2つのコード例を見て分かるように、違いがあるのは **条件式の変数と定数の順序** だけです。出力される内容に変化はありません(`not one` と出力されるはずです)。

「じゃあ、2つのどちらの例でも一緒なら、別にどちらの条件式で記述しても良いじゃん!」と思うところですが、**条件式の誤り** を防ぐ役割を含めた書き方をする場合では「例2のコード」が良いかもしれません。

### もし間違って「==」を「=」と書いたら…

少し極端なケースですが、**上記の2つのコード例の条件式で使用されている「

元記事を表示

PHPからMySQLへPDO接続

# PHPからDBへアクセスしたい!
PHPでデータベースの情報を参照したいときに使える
## PDOとは
PHP5.1.0以降で動作するデータベース接続クラス。PEAR:Dbより高速。
## 実際に接続する
基本これ
~~~PHP:code.php
try {
// DB接続
$pdo = new PDO(
‘mysql:host=localhost;dbname=データベースのテーブルの名前;’,
‘ユーザ名’,
‘パスワード’
);
$stmt = $pdo->prepare(‘SQL文’);
$stmt->execute();
} catch (PDOException $e) {
//エラー発生時の処理
} finally {
//正常時の処理
$pdo = null;
}
~~~
SQLをセットしたらOK

~~~PHP:code.php
try {
// DB接続
$pdo = new PDO(
‘mysql:host=loca

元記事を表示

独自のPHP用ソケット通信式メール送信ライブラリとその解説

バーチャルプログラマ・技術者 Advent Calendar 2023 4日目の初投稿記事からいきなり意味の分からない投稿をしていくフルスタックエンジニア系VTuberです。
今回の記事はタイトル通り、PHPでcomposerを使用せずにカスタム可能なメール送信関数を作って送信するという内容となっています。
コードのアイデアは秋雪 こおりが、実装は二人でやったISnow Novelsにて使用される実際のコードを用いて説明します。
この送信関数をまとめてSuccubus Wingと言います。また、ISnow NovelsはLilith Systemと言います。

# 対象読者
記事の内容が非常に限定的ですが、主に以下の人をターゲットしています
– 何故かcomposerが正常に動作しない
– composerでの依存解決ができない
– 競合や依存関係の破損が起こる
– クラスや名前空間を使用したくない
– composerを使用したくない
– カスタムしたい
– 不要な部分を削って少しでもリソース節約したい(出来るかはしらんが)
– 他人のライブラリに依存したくない方
– ライブラリを騙

元記事を表示

ファイルやフォルダを制御、”Filesystem”

[Symfony Component Advent Calendar 2023](https://qiita.com/advent-calendar/2023/symfony-component)の4日目の記事です。

## ファイルやフォルダを制御、”Filesystem”

`Filesystem` はファイルやフォルダを制御する行うコンポーネントです。OS依存を汲み取ってくれます。Symfony以外でも動作します。

### インストール

“`shell
composer install symfony/filesystem
“`

### 使い方

“`php
use Symfony\Component\Filesystem\Exception\IOExceptionInterface;
use Symfony\Component\Filesystem\Filesystem;

$filesystem = new Filesystem();
try {
$filesystem->dumpFile(‘data.txt’, ‘Hello world!’); // フ

元記事を表示

【XAMPP】phpMyAdminに接続できない場合の対処法

XAMPPのコントロールパネルから、phpMyAdminに接続できなかった時に試したことをまとめています。
結論から言うと、phpMyAdminの設定ファイル (config.inc.php) を諸々いじる必要があります。
特に、**MySQLに特定のポート番号を割り当てている場合は、特別な設定が必要**でした。

## 困っていたこと
XAMPPのコントロールパネルから、phpMyAdminに接続しようとすると以下のようなエラーが出る。
![スクリーンショット 2023-12-04 015346.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3634172/cdbb7865-8d89-8fd0-26db-fd11dfa7dbc4.png)

## 動作環境
– Windows 11 Home
– XAMPP for Windows 8.2.12
– Apache/2.4.58 (Win64)
– PHP 8.2.12
– 10.4.32-MariaDB

## エラー発生までの前提
– M

元記事を表示

制約で固められた環境をできるだけモダンに踏み倒す

# はじめに
こちらは[**klis(筑波大学情報学群知識情報・図書館学類) Advent Calendar 2023**](https://adventar.org/calendars/8957) 4日目の記事です!
klisのアドベントカレンダーに参加するのは初めてです!よろしくお願いします〜

## 自己紹介

本年度から長野高専より3年次編入しました**Bony_Chops**と申します!Web系の技術に興味があります

https://bonychops.com

# 前置き
自分は[データベース技術](https://kdb.tsukuba.ac.jp/syllabi/2023/GE70901/jpn)という科目を履修しており、その授業では最終成果としてDBを用いたWebサービスを開発します。
成果物は授業で提供されるVPSを使って動かします。以下のような環境・制約です(一部セキュリティの都合上あえて曖昧な表現をしています)。

– VPS
– OS: Linux系統(amd64)
– 接続方法: SSH
– PHP/HTML/CSS/JS

今回は、この授業の環境でなるべ

元記事を表示

OTHERカテゴリの最新記事