PHP関連のことを調べてみた2022年08月29日

PHP関連のことを調べてみた2022年08月29日

【PHP】ランダムな値を生成する

今回はランダムな数字を取得できるrandメソッドについて解説します。

## ランダムな数値
はじめに、1から100までの中でランダムな数値が作成してみます。
引数に最小値と最大値を渡すことで、範囲を指定することが可能です。

“`php
$random_number = rand(1, 100);
“`

奇数や偶数の乱数を生成したいときは次のようにします。

“`php
$random_number = rand(1, 50)*2; //1から100までの中の偶数

$random_number = rand(1, 50)*2-1; //1から99までの中の奇数
“`

## 配列の中のランダムな値
数値以外の指定した配列の中からランダムに取り出すときは以下のようにするといいでしょう。

“`php
$hash = array(‘田中さん’, ‘山本さん’, ‘高橋さん’,’鈴木さん’);
$key = array_rand($hash);
$random_person = $hash[$key];
“`

## ランダムな文字列
一文字ずつランダムな文字列を

元記事を表示

Guzzleを使用してSSLクライアント証明書(p12)を送る

# はじめに
やりたいことは外部サービスのAPIを叩きたい!
APIトークンとクライアント証明書(p12形式)とパスワード渡すから認証してね。ってことなのでやっていく
# 実際のコード
“`php
private function getData($verification_token)
{
$token = env(‘API_TOKEN’); // Authorizationヘッダーに指定するBearerトークン
$ssl_pass = env(‘SSL_PASS’); // 証明書のパスワード
$ssl_path = storage_path(‘app/private/test/ssl_file’); // クライアント証明書を配置した場所
$headers = [
‘Authorization’ => ‘Bearer ‘ . $token,
‘Content-Type’ => ‘application/json’,
];
$ba

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの配列の比較

Python,Ruby,PHP,Java,JavaScript,Perlの配列の比較

# Python

https://qiita.com/gouwan/items/c83b47ce1b7c77cce7c5

# Ruby

https://qiita.com/may88seiji/items/ce9396a4c267a3d449ae

# PHP

https://qiita.com/tokutoku393/items/ea2a61765eda1dee8f2e

# Java

https://qiita.com/sentral1110728/items/532de46714b7215a2e99

# JavaScript

https://qiita.com/takeshisakuma/items/b23b1a748098f30e2ff2

# Perl

https://perlzemi.com/blog/20161012147627.html

元記事を表示

【Laravel】ViewでのErrorException count()への対処

# ErrorException count(): Parameter must be an array or an object that implements Countable

某アカデミーでTwitterクローンを作っている際に発生しました。
#### 結論:count()の引数にカウントできないものを入れている。
結論から言うと、私の場合はcount()の引数にBelongsToMany, HasMany等のクラスのオブジェクトを入れていたことが原因でした。
それらをget(),first(),pagenate()などでCollectionクラスにしてやることでcount()できるようになりました。

Controller
“`diff_php:app/Http/Controllers/UsersController.php
class UsersController extends Controller
{
/**
* ユーザのお気に入り一覧ページを表示するアクション。
*
* @param $id ユーザのid
*

元記事を表示

ポートフォリオ「ToDoリストアプリ」

# 初めに
はじめまして。
今回は、Webアプリ開発の基礎のアウトプットを兼ねて、作成致しましたのでご紹介いたします。
何かアドバイス・コメント等ございましたらコメント欄に宜しくお願い致します。
(2022.8.4現在)

# 目的
・フレームワークを使用せず、素のPHPで開発する。
・MVCモデルを利用した開発
・システムの動きをイメージングできるようになるため(現在の仕事では、開発部分に携わることが少ないため)

# ポートフォリオの概要
一般的なAppleのリマインダーのようなシンプルにタスクが管理できるアプリを想定しております。
また、サイトの基本機能であるCRUDの実装し、どの端末でもアクセスできるようにレスポンシブデザイン
となっております。総作製時間は、PHPの勉強も含め90H程度です。

# ポートフォリオの機能
### ■機能一覧
・タスク一覧表示
・完了タスクの一覧表示
・タスクの新規作成
・タスクの完了処理
・タスクの削除処理
・完了タスクの復元処理
・タスクの詳細内容編集機能
・セキュリティ対策(SQLインジェクション・XSS対策)

### ■使用している技

元記事を表示

Uninitialized string offsetとは(PHPのエラー)

Uninitialized string offsetとは、文字列型の変数に対して、存在しないキー名を呼び出したときに発生するエラー。
(例)
“`PHP
$a = ‘PHPを勉強中です。’;
echo $a[100];
“`
この場合、Uninitialized string offset: 100 というエラーが出る。

# 参考文献
PHP | Uninitialized string offset エラーの原因と修正案
https://1-notes.com/php-error-uninitialized-string-offset/

元記事を表示

PHP で GCP を利用する際の認証設定

PHP から GCP を利用するときの credentials の設定について調べてみると「サーバーの環境変数に設定しましょう」という記事が見つかる。
必ずしもサーバーの環境変数を設定できる環境とは限らないので、今回は別の方法も調べてみた。

基本的には [githubの公式](https://github.com/googleapis/google-cloud-php#authentication) や、 [AUTHENTICATION.md](https://github.com/googleapis/google-cloud-php/blob/main/AUTHENTICATION.md)に書いてある。

## putenv を利用する
サーバーを直接操作できないなら PHP から操作すればいいじゃない、でお馴染み `putenv` さんの登場。
動作としてはサーバーの環境変数を設定したのと同じになる。
絶対パスで設定する。

“`php
putenv(‘GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json’);

元記事を表示

【自分用メモ】CLI版PHPのバージョンを確認しようとすると発生するエラーの解決方法

実行環境: MacOS Monterey

MAMPをインストール後、ターミナルでCLI版PHPのバージョンを確認しようとすると下記のエラーが発生。

“`
% php -v
zsh: command not found: php
“`

原因はPATHが通っていないことによるエラーらしく、その後noteの記事を参考に.zprofileに

“`
export PATH=/Applications/MAMP/bin/php/php7.4.21/bin:$PATH
“`

を追加し、再度エラーの発生したコマンドを実行すると、

“`
% php -v
PHP 7.4.21 (cli) (built: Sep 30 2021 13:37:02) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies
“`

無事バージョンを確認

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの繰り返し構文の比較

Python,Ruby,PHP,Java,JavaScript,Perlの繰り返し構文の比較

# Python

https://qiita.com/atsui-ocha/items/5b8e4f973b36e78fdaf1

# Ruby

https://qiita.com/beanzou/items/6231d3d0a926765ddbb4

# PHP

https://qiita.com/rana_kualu/items/0abd2b6f69527b0b4b92

# Java

https://qiita.com/morioheisei/items/e686e33b60c6a60e87f0

# JavaScript

https://qiita.com/tetsuyakojima/items/fd63f91a4e34d6bad28b

# Perl

https://perlzemi.com/blog/20170521149524.html

元記事を表示

wp に関するサイト(それ以外にも)

wp に関するものと、それ以外諸々
自分用なので重複あるかもしれません

* WordPressで特定の投稿タイプのみエディターを丸ごと無効化する方法
> https://dezanari.com/wordpress-disable-editor/

* WordPressのコメント(comments.php)をカスタマイズする
> https://bambooworks.co/wordpress-comments-customize/

* CSSのflexboxで最後の1つだけ右寄せ、または最初の1つだけ左寄せにする方法
> https://wemo.tech/2320

* コメント欄を追加する手順を解説
> https://go-journey.club/archives/2554

* wp membership plugin
> https://rocketgeek.com/

* wp redirect
>https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%

元記事を表示

AtCoder160(ABC)の B問題を解いた(PHP)

問題文の要点:
高橋君が持っている “500 円硬貨 1 枚につき 1000″、5 円硬貨 1 枚につき 5 の 嬉しさ を得ます。
高橋君の嬉しさが最大になるように両替したとき、高橋君の嬉しさはいくらになりますか?

“`PHP
= 500) {
$fiveHundredCount = floor($num / 500); //500円玉の枚数を求める
$num = $num – (500 * $fiveHundredCount);/*標準入力の数値から500円の枚数分を引き、
残りの金額を出す(500円玉を最大枚数分使う)。*/
$fiveCount = floor($num / 5); //5円

元記事を表示

PHP 関数の引数 2種類のnullableな型(null許容型)の宣言を両方とも書く

## デフォルト値を設定するnull許容型の宣言
PHP7.0から使える デフォルト値にnullを指定する
引数にnullを渡してもエラーにならない
“`php
function showName(string $name = null) {
var_dump($name);
}
“`

## 型名の前に?を書くnull許容型の宣言
PHP7.1から使える 引数の型名の前に?を書く
デフォルト値が無いケースでは、エラーが発生する
“`php
function showName(?string $name) {
var_dump($name);
}
“`

## null許容型の宣言を両方とも書く
PHP7.1から デフォルト値にnullを指定し、引数の型名の前に?を書く
両方とも記述して、デフォルト値が無いケースでも、エラーが発生しなくなる
“`php
function showName(?string $name = null) {
var_dump($name);
}
“`

元記事を表示

オリジナルのyoutubeページを作成してみました

# 概要
[「なつかしの曲(ポータル)」](https://tecoyan.blogspot.com/2020/05/0.html#btn_cntrl)は、[youtubeページ](https://www.youtube.com/watch?v=bFQyYwWV58M&t=106s)のオリジナルページです。
特長としては、国内、海外の昔なつかしい歌や曲を再生リストにして再生することができます。
再生リストはGoogleブログとサーバーのデータベースに保存しています。
このサイトのブログ記事を開くと月日別の投稿記事で再生リストの再生が始まります。
また、リスト選択でデータベースの再生リストを選択して再生できます。
# ページ詳細
このページは、基本要素とオプション要素から構成されています。以下、順に追って説明いたします。

## (1) 基本要素
このページの基本要素は、プレーヤーと再生リストです。
ページを開くと再生リストの先頭から再生がスタートします。あとは、ほったらかしにしておくと連続してリストを再生します。
イージーリスニングサイトをイメージしています。

## (2) オプショ

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの条件分岐の比較

Python,Ruby,PHP,Java,JavaScript,Perlの条件分岐の比較

# Python

https://qiita.com/Morio/items/1e06e7ac768758af5ffe

# Ruby

https://qiita.com/sagawashu/items/0f08266d5f72229423d9

# PHP

https://qiita.com/Hashimoto-Noriaki/items/dfb76d440a64eccba95d

# Java

https://qiita.com/setonao/items/ebc341ddf6d95295c48e

# JavaScript

https://qiita.com/taiju_suzuki/items/e2bf11fcf1645623235f

# Perl

https://perlzemi.com/blog/20161023147731.html

元記事を表示

ホームページのバナーはバニラのjsよりslick.jsを使った方が早いかつ品質が良い話(1)

初めて記事を書いていみました。
外国人かつ日本語学科ではないので、日本語がグダグダかもしれませんが、大目に見ていただければ幸いです。
コメント、指摘などはご自由にどうぞ。
※この記事には前編と後編があります。slick.jsは後編にて紹介します。

本記事対象

本記事は本人のキャリア経験を踏まえ、下記の方を対象に想定し、作成いたしました。

  • Javascript初心者
  • フロントエンド初心者
  • 非IT系会社の社内SE、情報システム部
  • サイト保守会社との窓口担当者
  • ウェブサイトデザインに興味のある方

環境

会社の公式サイトが2013年にウェブサイト制作会社に依頼し、
多分値引きをしたか、フレームワークを使わず、バックエンドのPHPはバニラ、フロントエンドも全部バニラで開発されました。
PHPは「Template P

元記事を表示

PHP 基礎文法

## \

– HTMLの中にPHPを埋め込む
– ファイル内に複数記入可能

## echo

– 引数を結合して文字列を表示
– 改行文字がなければ当然改行されない

## 大文字と小文字の区別

– echo、if、whileなどPHPのキーワードや、ユーザー定義関数やクラス名:大文字だろうが小文字だろうがどっちでもいい
– ユーザー定義の変数名や定数名:文字が完全一致していなければ別物

## コメント /* ~ */,// ~

– // ~ :1行のみコメントアウト
– /* ~ */ :複数行コメントアウトできる。コードの途中に挟むのも可能。

## 空白と改行

無視される

## 数字が含まれてる文字列を使った計算

– 例: 2+”15″のように数値と数値文字列を足すと数値同士の計算に変換される
– 例:”250円”*2のように数値以外の文字があっても数値同士の計算、つまり250*2に変換される

## インクリメント

– 例:$b=++$a; の場合、加算(+1)→代入の順に処理される。つまり$bの値と$aの値は等しくなる

## ポストイン

元記事を表示

ユニットテスト導入のメリット・デメリットまとめ

# はじめに

株式会社ナイトレイの和田です。
普段、自社サービスの開発に取り組んでいます。
現在私が関わっているプロダクトにユニットテストを導入しました(そのプロダクトではユニットテストが省略されていました)。
その際に、改めてユニットテストのメリット・デメリットを学んだので、それをまとめたものをここに共有します。

# メリット

## ①バグによるダメージを減らせる

### 早期発見

一般的に、不具合が発生した時の改修コストは、発見が遅れるほどに上がっていく。

例えば、リリース前に見つかるのとリリース後に見つかるでは改修の影響範囲やユーザーへの対応含め大きな差がある。逆に言えばQA段階ならもっとコストが下がり、手元での動作確認時ならさらに下がり、コードレビュー段階ならさらに…

テストコードは開発段階で不具合を発見することに貢献してくれるため、改修コストが最小で済む。

### 原因特定

テストコードが書かれていれば、どこが壊れてどこが正常なのかという問題の切り分けができるので、問題箇所の特定がしやすくなる。結果的に不具合の解消を早めることができる。

### 減少

元記事を表示

Laravelのテスト時にDB内のデータを吹き飛ばさないために

# はじめに

株式会社ナイトレイの和田です。
普段、自社サービスの開発に取り組んでいます。
現在私が関わっているLaravelのプロダクトにPHPUnitテストを導入しました(そのプロダクトではユニットテストが省略されていました)。
その際に上記のタイトルに関する問題で少し悩んだので記事にして共有したいと思います。
前提として、この問題はテストDBを用いるテストに限ったものになります。

# 環境

Laravel 8.83.14
PHP 7.3.33
PHPUnit 9.5.20

# テスト時にDB内のデータが吹き飛んでしまうケース

以下の条件が揃った時に発生する。

– `config: cache`コマンドを打つなどして、設定ファイルがキャッシュされた状態でテストを実行
– 実行されるテストファイル内で`RefreshDatabase`などのテーブル、もしくはテーブル内のデータを一回削除するような処理が施されている場合

理由としては、**Laravelにおいて設定ファイルがキャッシュされた状態でテストを実行すると、phpunit.xml よりそのキャッシュが優先的に参照さ

元記事を表示

PHPUnitの公式ドキュメントを全部読んだので大事なところをまとめてみた

# はじめに

はじめまして株式会社ナイトレイの渡辺です。

現在私が関わっているプロダクトでPHPのユニットテストを導入した際、PHPUnitを利用するにあたって公式ドキュメントを一通り読んだので、この記事では個人的に重要な箇所を備忘録としてまとめます。

? 本記事で記載されている内容はこちらのドキュメントから引用させていただいております

https://phpunit.readthedocs.io/ja/latest/

## 対象読者

– 少しPHPUnitを使ったことがある
– PHPUnitをもっと上手く使いたい

## 環境

PHPUnit 9.5.20

# 内容

## ****PHPUnit 用のテストの書き方****

この章では、PHPUnit を使ったテストを書く際の基本的な決まり事や手順を紹介しています。

最低限、PHPUnitでテストを書く上で必要な情報なので一通り目を通すことを推奨します。

[https://phpunit.readthedocs.io/ja/latest/writing-tests-for-phpunit.html](

元記事を表示

PHP8.0からの便利な機能 ~3選~

PHP8.0の新機能でよく使う機能を3つ紹介します:point_up::v:

## 1. match式
簡単な条件分岐処理はmatch式を使いましょう!
### BEFORE:frowning2:
“` php:if文
$hoge = 1;
if ($hoge === 1) {
$fuga = ‘イチだよ’;
else if ($hoge === 2) {
$fuga = ‘ニだよ’;
else if ($hoge === 3) {
$fuga = ‘サンだよ’;
} else {
$fuga = ‘チガウヨ’;
}
“`
“` php:switch文
$hoge = 1;
switch ($hoge) {
case 1:
$fuga = ‘イチだよ’;
break;
case 2:
$fuga = ‘ニだよ’;
break;
case 3:
$fuga = ‘サンだよ’;
break;
default:

元記事を表示

OTHERカテゴリの最新記事