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

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

積の最小化

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_boss

前回の問題を教訓に
どちらかが0の場合は問答無用に0が最小になるので
こんな感じで書いてみました。
つまり、最初の数値を基準に、小さくなったらそれを採用するみたいな感じですね。
で、A~Bの間をループさせると。負の数が含まれていても結局あんまり関係ないなということで
こうなりました。

“`py
A,B = map(int,input().split())
result = 0
for i in range(A,B+1):
for j in range(A,B+1):
if A == 0 or B == 0:
break
if result == 0:
result = i * j
elif result > i * j:
result = i * j

print(result)
“`
でも解答の場合は、もうちょっとロ

元記事を表示

タイルの敷き詰め

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step8

“`py
H,W = map(int,input().split())
if H > 0 and W > 0:
if H % 2 == 0 and W % 2 == 0:
print(‘YES’)
else:
print(‘NO’)
else:
print(‘NO’)

“`

最初は最初のif文なかったんだけど、
テストケースでHやWが0だったときにこれだめなんですよね。
で最初のif文を付け加えたら正解になりました。

ちなみに、上のは入れ子になってますが、最初のif文を逆にしたらelseがいらなくなります。
(ということに今気づいた)
ただし、この場合、andだとだめでorにしないとどちらかが0の場合にNoにならないです。

“`py
H,W = map(int,input().split())
if H == 0 or W == 0:

元記事を表示

IT業界未経験からPHP⇒Python⇒Java⇒VBA、XMLと学習ロードマップをうろうろして感じたこと

自分の学習ロードマップのうろうろ歴

無事とある**PHP、Laravel**を中心とする半年のカリキュラムを課す民間のプログラミングスクールを修了し、転職フェアなどにも何回か参加してみたところ、「**実はプログラミング言語の需要には地域差がかなりある**」ということを知り(下記参照)、エッ…(゚Д゚)と思いながら、時代はAIだろ(´д`)と思って、**Python**をやってみたら少しは分かったけど、居住地域の関係で **Java**も併行し始めたけど、Pythonを使うかな(´。`)と思って内定をいただいた会社の自分の所属する部署では一番使うのは **VBA、XML** とのことで、今は急遽ExcelやVBAを触りまくっています。

①実は地域によってプログラミング言語に需要ニーズに違いがある。(-_-;)

〇転職活動を通して感じた地域の言語ニーズの差異に関する私見

(1)求人がどの地域も万遍なく一番多いのは**Java、意外と

元記事を表示

終了判定 2 Python3編

https://paiza.jp/works/mondai/conditions_branch/conditions_branch__complex_step5

さて久しぶりにPythonから。
ここでwhileを使いました。たぶんpythonでPaizaやり始めてから初めてじゃないかな。

“`py
N,K = map(int,input().split())
cnt = 0
while N < K: cnt += 1 N = N * 2 print(cnt) ``` ところでなんで、+=は知ってるのに、*=はなぜしなかったの?と自分で自分を突っ込んでしまった。いやおっしゃるとおり。 こうですね。 ```py N,K = map(int,input().split()) cnt = 0 while N < K: cnt += 1 N *= 2 print(cnt) ``` とりあえずphpでもやっておきます。 ```php5

元記事を表示

クラスって結局何なのよ@PHP ~ふわっとイメージ共有~ 

## 背景
phpでCRUD処理を書いていると、`->`や`=>`や`::`といった記号が出てくる。調べれば意味は分かるもののを実際に意味を理解して使わないと気持ちが悪い!
のちにフレームワークを使用するとPHPの処理は大概の煩雑な処理は`よしなに`こなしてくれるらしいのですが、使いこなすためにはクラスについて知っておく必要がありそうです。

また、クラスって勉強してみても始めはよくわからない人が多いと思います。
まずはイメージするところから。。

## 簡単なクラスの例(使われ方を中心に考える)
### やってみて理解した->の意味
※厳密な言葉の定義は自信がないです。ちゃんとした説明が見たい方は調べてみましょう。
>**Don’t think, feel…**

でお願いします…まずは自分に都合の良いイメージで理解することから。違ったら正せばよいのです。

それでは、適当な例を出してみます。
#### 1. クラスを呼び出す!【インスタンス生成】
ここにとあるクラス`$Aclass`があるとします。

元記事を表示

PHPとPythonの比較勉強ー複数行にわたる入力 (paizaランク D 相当)

https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_std_in_out_step3

PHPを仕事であんまり使わなくなって今Pythonをやっているんですよね。
で、やらなくなっているとなんというか腕が鈍ってしまったりしまして。
それだとだめだなと思ったので今年から1日1回はPHPも解くようにしました。

ひとまずPythonで書いてみます

“`py

n = int(input())
for _ in range(n):
print(input())
“`
簡単ですね。
では次にPHP

“`php

“`
一応正解はしたのですが。
fgets(STDIN)で取得したものはtrimしないといけないみたいです。
なんでなのか調べたら、どうやら、入力されたときの改行を除去するため、という
意味があるそうです。
問題

元記事を表示

【Laravel】多言語化のための言語ファイルをコマンドで出力する

Laravel の多言語化対応をすることになったのですが、どうやら CakePHP とは違い標準で翻訳文字列を配列なり json なりで一括出力する方法は用意されていない模様。そんなことある…?

packagist で適当に「laravel trans」とか入れて検索し、適当にというか簡単に言語ファイルを出力できそうなパッケージを検索。それっぽいパッケージを見つけたので使いながらメモ。

## kkomelin/laravel-translatable-string-exporter

### インストール

通常、本番環境で使う事はないと思うのでオプション –dev でインストール

“`bash
composer require kkomelin/laravel-translatable-string-exporter –dev
“`

### 言語ファイルの出力

専用の artisan コマンドが使えるようになるので、そちらを実行する

“`bash
php artisan translatable:export

# example
# 英語の言語

元記事を表示

Laravel Sail – vscode devcontainer で xdebugを使う

## やりたかったこと

vscodeのdevcontainerでxdebugを使いたい(chrome)

## 備考

#### 読み手の対象:
すでにdevcontainerで開発している方
vscodeでxdebugを触ったことがある方

#### 環境:

“`
PHP 8.2.10 (cli) (built: Sep 2 2023 06:59:22) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies
with Zend OPcache v8.2.10, Copyright (c), by Zend Technologies
with Xdebug v3.2.1, Copyright (c) 2002-2023, by Derick Rethans
“`
Laravel Framework 10.23.1
Google Chrome バージョン: 120.0.6099.129(Official Build) (x86_64)
Dev

元記事を表示

【Laravel】サービスコンテナ・プロバイダ・依存性注入の仕組みを整理

## #0 書いた背景

サービスコンテナやサービスプロバイダ、ファサードなどフレームワークの仕組みを特に意識することなく開発はでき、それがフレームワークの良さとも感じる、ただ、そろそろちゃんと理解しようと思ったとき色々な概念や単語が交錯して障壁を感じた。

これから書く内容は

「サービスコンテナはオブジェクト間の依存解決をやってくれますよ」
「サービスコンテナを使うにはこんなプロセスを経ますよ」
「サービスプロバイダとサービスコンテナの関係はこんなですよ」
「サービスコンテナの主なメソッドにはこんなのがありますよ」

という話を並べているであるが、ソースコードまで見ると以下のように出てくる概念や単語が多いので、整理しながらサービスコンテナの機能を追っていくというのが趣旨である。

– サービスコンテナ
– 依存性注入
– 依存関係の解決
– サービスプロバイダ
– シングルトン(singleton)
– バインド(bind)
– 登録(register)
– 解決(resolve)
– 抽象(abstrat)/具体(concrete)

よって結論とかは特にない。

前提として現在

元記事を表示

Factoryクラスに何も書かなくてもいいケース

## はじめに
Laravelでテストを実装中に「Class “Database\Factories\MessageRoomFactory” not found」というエラーに遭遇しました。

今回は、database/factoriesに新しくMessageRoomFactoryクラスを作成することで対処ができました。」

https://readouble.com/laravel/10.x/ja/eloquent-factories.html

## 環境
Laravel 9.52.16

## 問題
* 次のようなテストを実行したい

“`php: MessagesControllerTest.php(該当メソッドのみ)
public function test_Messages_store()
{
// テストユーザを作成
$user = User::factory()->create();
// メッセージルームを作成
$message_room = MessageRoom::factory()->cr

元記事を表示

PHP: SMTP over SSL でメールの送信

こちらのプログラムを改造しました。
[PHP: PHPMailer の使い方](https://qiita.com/ekzemplaro/items/de40de3ac7f66a3e2a1b)
>Port は、465 です。

## プログラム

“`php:phpmailer_smtp_ssl.php
#! /usr/bin/php

元記事を表示

php.netの「Upcoming conferences」に「PHPカンファレンス福岡2024」も掲載してほしい

今年は「月刊PHPカンファレンス」といった感じで、[1月を皮切りに6月まで毎月どこかでPHPカンファレンスが開催される](https://qiita.com/akase244/items/c3f9855275ac77be39b3)ことをご存知でしょうか?

LaravelでGuzzleを使ってSpotifyAPIを叩く

# はじめに
LaravelでSpotifyのAPIを叩いた時にGuzzleを使ってみたので、備忘録的な感じでまとめておきます。

今回は、ユーザーに事前にSpotifyの認証を行ってもらい、各種Tokenを取得した上で処理を行なっているため、認証部分の処理は割愛させていただきます。(気が向いたら書くかも)

# Spotify APIとは
Spotifyが用意して公開してくれているもので、楽曲に関する詳細なデータを取得することができます。
登録が必要なので、事前に登録を済ませておいてください。
詳しくは、[こちら](https://developer.spotify.com/documentation/web-api)を参照してください。

# 手順
1. SpotifyのDeveloperに登録を行い、Appを作成し、Client IDを取得する。
1. Client IDを使い、ユーザーに認証を行ってもらい、Access Tokenを取得する。
2. 取得したアクセストークンを使い、プレイリストの曲を取得する。

# 実際に書いてみた

:::note warn
必要最低限のコー

元記事を表示

[PHP]PHPの基本まとめ

## はじめに
学習したことを自分用の参考書のようにまとめていきます。

## PHPとは
PHP (PHP: Hypertext Preprocessor を再帰的に略したものです) は、動的にWebページを生成することができるサーバーサイドのスクリプト言語です。

## 環境構築

PHPではPC内に動作環境を用意してあげなければなりません。
動作環境を構築するために、Macの方は下記URLより「MAMP」をインストールしましょう。

– MAMP公式

https://www.mamp.info/en/mac/

– MAMP インストール・操作方法 参考サイト

誰でもできる!MAMPのインストール方法【初心者向け】

## PHPの始め方

1. MAMPフォルダの中から”htdocs”という名前のフォルダを開く
2. htdocsフォルダの中に”php_test”というフォルダを新たに作成する
3. 作成したフォルダの中に”index.php”という名前のファイルを作成する
4. 作成したindex.phpを編集する
5.

元記事を表示

class.upload.php の XSS 脆弱性について

先日、CVE-2023-6551 として PHP のファイルアップロードライブラリ「class.upload.php」のクロスサイトスクリプティング脆弱性が発表されたので、使用しているプログラムを今一度確認しました。
幸い、外部ユーザーがアップロードする箇所では使用していなかったし、ちゃんと検証していたので、特に問題はありませんでした。

この脆弱性は、MIME タイプを評価するクラスが適正に機能しないことがあるというものです。

例えば、
“`php
$handle = new Upload($file, ‘ja_JP’);
$handle->allowed = array(‘image/gif’);
“`
と設定していても、中には悪意のあるファイルが通過してしまうことがあります。
.html などがアップロードされてしまうと、開いたときに中に書いてあるスクリプトが実行されてしまう可能性があります。
※ プログラムはまだ読んでいません(おい)

## 対処法
まだ詳細は調査中とのことですが、とりあえず記載されていた対策をまとめておきます。
### レスポンスに想定される MIME

元記事を表示

PHP入門 – 他言語からPHP触った時用

# 概要
他言語からPHPを触った時に戸惑うPHP独特の変数宣言や代入、処理についてまとめ

# 宣言関連
## 変数の宣言, 代入, 定数
“`
// 宣言
$a;

// 代入
$a = b;

// 定数
const $a = b;
“`
※ 変数名はアルファベット, もしくわアンダーバーから始まる必要がある

文字列は`’`か`”`で囲う

## boolean
“`
$bool = true
$bool = FALSE
“`
※ 小文字, 大文字は区別しない

## 配列, 連想配列
### 配列
“`
$array = [
‘要素1’,
‘要素2’,
‘要素3’,
‘要素4’
];
“`

### 連想配列
“`
$array = [
“id” => 1,
“name” => “日本 太郎”
];

// keyでの要素呼び出し
$array[“id”]
“`

## オブジェクト
“`
class object {
public $id = 1;
public $name = “日本太郎”

元記事を表示

【PHP】マイナーフレームワーク「Flow」を試してみる~参照可能ファイル編~

# 初めに
前回は[こちら](https://qiita.com/nnhkrnk/items/535811002aaee3134db3)の記事でファイルのダウンロード方法をまとめました。
今回はFlowにおける静的ファイルなどの参照可能なファイルの扱いについてまとめます。

# 事前知識
今回の記事は以下の記事に関連する内容を扱います。
必須ではないですが、必要に応じてご覧ください。

[【PHP】マイナーフレームワーク「Flow」を試してみる~ファイルアップロード編~](https://qiita.com/nnhkrnk/items/f06f40bf8e1159eff80d)
[【PHP】マイナーフレームワーク「Flow」を試してみる~ファイルダウンロード編~](https://qiita.com/nnhkrnk/items/535811002aaee3134db3)

# Flowにおけるファイル管理
前提として、Flowではファイルを保存する領域が2つ存在します。

|領域|用途|
|–|–|
|Storage|アップロードされたファイルが保存される領域|
|Target|

元記事を表示

スマホでペット用監視カメラを作ってみた

# はじめに
スマートフォンを使った監視カメラシステムを作ってみました
作ろうと思い立ったきっかけですが、昨年ワンちゃんを一頭飼い始めて
最近もう一頭増えたのと、その子が保護犬ということでなかなか目が離せないということもあり、スマホを使って外出先から自宅のワンちゃんの様子を確認出来る仕組みを作ってみようと思ったのがきっかけです

| 1頭目 | 2頭目 |
|:-:|:-:|
| 01_choco.jpg | 02_coronet.jpg

元記事を表示

Laravelのリレーションがやっとわかったので備忘録(え、いまさら?)

# 今回作成するモデル
“`mermaid
erDiagram

User{
id int
username string
email string
password byte
}

Profile {
id int
user_id int
name string
description string
}

User||–o|Profile:””

“`

# Modelの書き方

“`(親側)User.php

元記事を表示

OTHERカテゴリの最新記事