- 0.0.1. PHP 関数の引数にデフォルトの値を設定
- 0.0.2. 【Laravel】取得した配列が空かどうかを判別し、空の場合メッセージを返すメソッド
- 0.0.3. 【メモ】Composerのインストール
- 0.0.4. [Drupal]この画面を閉じるボタンの作り方
- 0.0.5. [OCI]Oracle Autonomous Linux 7.9にOracle Instant Client 21c+SQL*Plus+Apache+PHP+php-oci8をセットアップしたときのメモ
- 0.0.6. ヒアドキュメント 「
- 0.0.7. 【メモ】XAMPPの同梱物確認とインストール
- 0.0.8. 【備忘録】.phpから別の.phpを実行する
- 0.0.9. EC2上のLaravelプロジェクトでmbstringが使えない
- 0.0.10. PHPのパスを変更
- 0.0.11. PHP、Laravelのbladeファイルの中でプルダウン形式を使用した
- 0.0.12. [php] filter_input って便利
- 0.0.13. PHPのcomposer,オートロード(autoload),名前空間(namespace)について
- 0.0.14. Laravel環境にPHP-CodeSnifferを導入する
- 0.0.15. 【PHP】数値じゃない要素にintvalをかけるとエラーが出ると思っていた
- 0.0.16. PHPerKaigi 2022 PHPerチャンレンジ問題解説
- 0.0.17. PHPのexec関数でエラーメッセージを取得する
- 0.0.18. 【備忘録】文字列の中の変数展開について
- 0.0.19. PHPで乱数の生成
- 1. PHPで乱数の生成の備忘録
PHP 関数の引数にデフォルトの値を設定
## 用途
– functionの引数にデフォルト値を設定したいときに使う。
– 関数内で変数を宣言することが省ける場合がある。## 使用方法
“`php:書き方
function 関数名 ( 引数 = 設定したいデフォルト値 ) {
// 関数が呼ばれた時の処理を書く
}
“`
関数の引数に `=` をつけてデフォルト値を設定する。“`php:例
function hoge ($hoge1 = 1, $hoge2 = 2) {
$add = $hoge1 + $hoge2;
var_dump($add);
}hoge();
// 引数を指定しないで呼び出した結果
// 3 (1+2が行われた)hoge(2, 3);
// 引数に 2 と 3 を指定して呼び出した結果
// 5 (2+3が行われた)
“`
※関数を呼び出すときに引数を指定すると、デフォルト値ではなく呼び出し時に指定した値が使われる。
**デフォルト値を設定した引数と、指定していない引数を混合で使うこともできる**
“`php:例
function 関数名 ( 引数, 引
【Laravel】取得した配列が空かどうかを判別し、空の場合メッセージを返すメソッド
## 1. confirmEmptyArrayメソッド
“`App/Lib/MyFunc.php
【メモ】Composerのインストール
web系のサーバーサイドエンジニアを目指す奴のメモ書きです。
インストール環境:Windows10# Composerのインストール手順
公式サイトから最新のインストーラー(v2.3.4)をダウンロード
インストーラーがあればいつでも最新のComposerをダウンロードインストールできるよ。
https://getcomposer.org/
堂々たるホーム
Downloadクリックすると別画面に遷移
画像では日本語がおかしいところがあるので書き直す
“`
インストーラー(PHPが既にインストー
[Drupal]この画面を閉じるボタンの作り方
## やりたいこと
クリックすると現在の画面を閉じるボタンを作りたい
## やり方
### ボタンの作成
フォームもしくはレンダリング配列にボタンの配列を追加する。JS側で目印にするため任意のクラスを付与しておく[class Button](https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Render%21Element%21Button.php/class/Button/8.2.x)
“`php
$form[‘actions’][‘close_tab’] = [
‘#type’ => ‘button’,
‘#value’ => ‘この画面を閉じる’,
‘#attributes’ => [
[OCI]Oracle Autonomous Linux 7.9にOracle Instant Client 21c+SQL*Plus+Apache+PHP+php-oci8をセットアップしたときのメモ
rootユーザにスイッチ
“`
sudo su –
“`Oracle Instant Client 21cとSQL*Plusをインストール
“`
yum install -y oracle-instantclient-release-el7
yum install -y oracle-instantclient-sqlplus
“`環境変数の設定
“`
cat <<'EOL' >> /etc/profile
export ORACLE_HOME=/usr/lib/oracle/21/client64/lib
export NLS_LANG=Japanese_Japan.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
EOL
“`Apache + PHP + php-oci8のインストール
“`
yum install -y oracle-php-release-el7
yum install -y php php-oci8-21c
“`Apacheの.phpファイルのハンドラー
ヒアドキュメント 「<<<」 PHP
## 用途
– 変数に複数行の文字列を代入する時に使う。## 使用方法
“`php:例
// 結果
おはよう
こんにちは
こんばんわ
“`
– ヒアドキュメントを使う際には、`=` + `<<<` + `ID`の順で書く。 例ではABCがIDにあたる。 - IDからIDまでの文字列を代入する。 例ではABCからABCの間に書いてある文字列が代入される。 - IDはルール内であれば自由につけることができる。(ABCに意味はありません) ### 文字列の中で変数を使用する場合 ```php:例// 結果
varの値はtrue
“`
– 変数を使用する際は、開始のIDをダブルクオートで囲う。
※シングルクオートだと変数名がそのまま表示される。
下記の記事を参考に執筆しました。
– https://www
【メモ】XAMPPの同梱物確認とインストール
web系のサーバーサイドエンジニアを目指す奴のメモ書きです。
インストール環境:Windows10# XAMPPインストール
XAMPPのダウンロードサイトにアクセス
https://www.apachefriends.org/jp/download.html### 何が含まれていますか?
XAMPPに同梱されているものはこんな感じ↓
|ソフト名|バージョン|概要|
|—|—|—|
|Apache|2.4.53|Webサーバ|
|MariaDB|10.4.24|データベース管理システム|
|PHP|8.1.4|プログラミング言語|
|phpMyAdmin|5.1.3|MySQL/MariaDBをブラウザで管理するためのソフト|
|OpenSSL|1.1.1|暗号通信プロトコルSSLおよびTLSの機能を実装した、ライブ
【備忘録】.phpから別の.phpを実行する
web開発初心者の備忘録です。
ガラパゴスでも自家消費用だからへーきへーき。
# ポイント
include関数とrequire関数を使用することで、外部の.phpを参照する事ができる。(.phpに限らずファイルなら何でも読み込める?未検証。)
それぞれの違いは以下の通り。
– include関数 → ファイルを読み込めなかった際、E_WARNINGを発生させるが、処理は強行する。
– require関数 → ファイルを読み込めなかった際、E_COMPILE_ERRORを発生させて、処理も止まる。https://www.php.net/manual/ja/function.require.php
# ファイル構成
“`
IISでルートに設定しているフォルダ
└ test
├ main.html
├ main.php
├ lib.php
├ main.js
└ jquery-3.6.0.js
“`
# ソースコード
### main.html
“`html
EC2上のLaravelプロジェクトでmbstringが使えない
# エラー内容
EC2上にデプロイしたらパスワード変更メール送信時に以下のエラーが出た。
“`
Call to undefined function mb_strcut()
“`# 原因
ローカルで開発していた時にはデフォルトでmbstringがインストールされていたが、EC2上ではmbstringをインストールしないといけないらしい。# 対策
①php-mbstringをインストール
②php.iniを編集
③php-fpmを再起動### ①php-mbstringをインストール
“`
sudo yum install php-mbstring
“`### ②php.iniを編集
php.iniは記述量が多いので/mbstringで探す。
“`/etc/php.ini
;mbstring.language = Japanese
↓
mbstring.language = Japanese;mbstring.internal_encoding =
↓
mbstring.internal_encoding = UTF-8;mbstring.http_i
PHPのパスを変更
# バージョンを確認
PHPのバージョンを確認するには“`php
taro@MacBook-Pro % php -v
PHP 8.1.4 (cli) (built: Mar 18 2022 09:46:02) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.4, Copyright (c) Zend Technologies
with Zend OPcache v8.1.4, Copyright (c), by Zend Technologies
“`使用する PHP を確認するには
“`php
taro@MacBook-Pro ~ % which php
/usr/local/bin/php
“`# .bash_profile の変更
MAMPのPHP にパスを通すには、次のコマンドを実行するみたいです。“`
$ export PATH=/Applications/MAMP/bin/php/php*.*.*/bin:$PATH
“`
1点注意点で “`*.*.*“` は使用するバージョン番
PHP、Laravelのbladeファイルの中でプルダウン形式を使用した
select文の中にif文を記述して、
プルダウン形式を記述したときの内容をまとめます。行いたい処理。
3種類の会員(無料会員 id=1、トライアル会員 id =2、プラミアム会員 id=4)
がコントーローラーから配列渡せれてきて、
プルダウン方式で選択し更新できるようにしたい。結果のコード。
“`show.blade.php
[php] filter_input って便利
# filter_input 使ってみた
PHP5系で書かれたコードってPHP8にすると結構、変数の未定義や値が空って事でエラー出ちゃいますよね。
こんな時、`isset` の様なチェックをしてくれて、更にバリデーションも行ってくれる `filter_input` は超便利。
今回、PHP5.6で動いてたツールのコードを PHP8で動く様にして欲しいと頼まれました。
まぁ何年も前に書かれた様で、こんな感じ↓
“`
$flg = $_GET[“flg”];
$status = (!isset($flg) && $flg == ”) ? 0 : $flg;if ($status !== 0) {
何かの処理;
}
“`当然、PHP8になると `$_GET[“flg”]` が空だと、そんなキーはない!と怒られますよね。
“`
Warning: Undefined array key “flg” in Your Path
“`エラー回避する為には、`$_GET[“flg”]` に値が入ってるか `isset` したり、値のチェックしたりと少々面倒。
PHPのcomposer,オートロード(autoload),名前空間(namespace)について
# composerとは
***PHPのライブラリを管理するツール***です。
これを使うことによって別のファイルを読み込む時に***オートロード(自動クラス読み込み)***してくれる
便利なツールです。詳しい説明は下の記事にあります。
https://qiita.com/atwata/items/d6f1cf95ce96ebe58010# composerの導入
composerは公式サイトからダウンロードができます。
Macの場合は“`
$ brew install composer
“`
でインストールできます。とは言っても公式サイトは見る習慣は大事だと思います。下の写真は2022/4/22現在

上記のコマンドを実行した後に、lsコマンドでターミナルで確認する
Laravel環境にPHP-CodeSnifferを導入する
# 概要
– Laravel環境にてPHP-CodeSnifferを導入する方法をメモ的にまとめる。
# 詳細
– PHP-CodeSnifferにてPSR-12に準拠しているかどうかチェックする。
– 筆者はDocker環境でPHP-CodeSnifferを導入する。
– `/var/www/html`直下に直接laravelの構成ファイル(.envやconfigディレクトリ、appディレクトリ等が存在しているものとする。)# 方法
1. PHPのコンテナにログインしてドキュメントルートまで移動する。
1. 下記コマンドを実行して当該のライブラリをインストールする。(ローカル環境にのみ入れたいので `–dev`オプション付与)“`terminal
$ composer require –dev squizlabs/php_codesniffer
“`1. 下記コマンドを実行して使用する事のできるコーディング規約を確認する。
“`terminal
$ /var/www/html/vendor/bin/php
【PHP】数値じゃない要素にintvalをかけるとエラーが出ると思っていた
こういう処理を書いた時、数値じゃない文字は整数に出来ないからエラーを吐くんじゃないかと思ってたんですが、
“`php:
$hoge = [‘あ’,’い’,’う’];
$huga = null;
try {
$huga = array_map(‘intval’, $hoge);
} catch (\Throwable $exception) {
dd($exception);
}
dd($huga);
“`出力結果、エラーになりませんでした。
[PHP公式ドキュメント:intval](https://www.php.net/manual/ja/function.intval.php)
> 成功時は value の整数値、失敗時は 0。 空の配列の場合は 0、空でない配列の場合は 1 を返します。#
数値以外の文字列が入っ
PHPerKaigi 2022 PHPerチャンレンジ問題解説
## はじめに
[PHPerKaigi](https://phperkaigi.jp/2022/)とは
>PHPerによるPHPerのためのお祭り[参加記事はこちら。](https://qiita.com/yamamoto_hiroya/items/da8189c74e3dab0fdba0)
## PHPerチャンレンジ
開催期間中に公式ページ、スポンサーブログ、会場、twitterなどにシャープから始まる文字列が記載されており、それを探し出して専用のフォームに投稿して点数を稼いで準備を競うゲームです。
過去にも開催していて大変盛り上がりました。
僕も過去に参加したことがありましてその時の[記事はこちらです。](https://qiita.com/yamamoto_hiroya/items/d60846f1837e94d059d9)今年は健闘し4位まで上がることができました!
では返り値や引数でコマンドの出力を取得できるが、エラーは取得できない。
“`php
// 存在しないディレクトリをlsする.
// $resultと$outputともに空
$result = exec(‘ls my-directory’, $output);
“`
なぜかというと、**execコマンドで拾えるのは標準出力からの出力のみ**で、エラーの場合たいてい標準エラー出力からの出力になるため。エラーを拾うには最後に`2>&1`をつけて標準エラー出力の内容を標準出力にリダイレクトする。
“`php
$result = exec(‘ls my-directory 2>&1’, $output);
“`
“`
// $result
“ls: cannot access ‘my-directory’: No such file or directory”// $output
[
“ls: cannot access ‘my-directory’:
【備忘録】文字列の中の変数展開について
## はじめに
変数展開について理解を深めたい。
シングルコーテーションとダブルコーテーションの違いを全く理解していなかったので、
備忘録を兼ねてまとめていく## 変数展開とは
PHPにおける文字列の変数展開とは、文中における変数の値出力のこと。## ダブルクオートを使った文字列展開
ダブルクオートを使うことによって、文字列の中で変数を展開することができる。
“`
PHPで乱数の生成
PHPで乱数の生成の備忘録
PHPで乱数を生成するひつようがあったので自分用にまとめです。
mt_rand()で生成できる知識があったので、使い方を見ようと調べました。
詳しく書くのもあるですが自分用なので簡単にまとめます。mt_rand()じゃなくてrandam_int()
調べているとmt_rand()よりrandam_int()の方がセキュリティが高いらしいのでmt_int()を使っていきます。
“`
$number = random_int(0, 2); //0から2の間の数で乱数生成し$numberに格納
echo $number; //0から2の値のどれかが入っている$numberを出力
“`最後に
簡単でしたね。これからも勉強内容を忘れないためにqiitaに残していきたいと思います。
【メモ】Laravel開発環境の必要物を学ぶ
web系のサーバーサイドエンジニアを目指す奴のメモ書きです。
Laravelの開発環境を構築をしたいので何が必要かを調べる。
開発環境構築ので必要なのは
・XAMPPインストール
・Composerインストール→Laravelインストール# XAMPPとは
XAMPPは頭文字をとってる。
「X」:様々なOSに対応する「クラスプラットフォーム」を意味する「X」を使用
「A」:Webサーバソフトウェアの「Apache」の頭文字を使用
「M」:データベース管理システムの「Maria DB」の頭文字を使用
「P」:アプリ開発で多く使われるプログラミング言語の「PHP」の頭文字を使用
「P」:アプリ開発で多く使われるプログラミング言語の「Perl」の頭文字を使用### XAMPPのメリット
PHP開発環境構築 = XAMPP これが過言ではない
WebサーバーやDB、PHPを個別にインストールしなくてもXAMPPをインストールすればすべてそろうので超らくちん。XAMPPだけあれば開発できる。さらに便利にしたい場合、これに加えてLaravelとかのフレームワークをインストールする。
W