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

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

PHPxさくらサーバー デプロイ攻略_開発環境編~.env情報の取得~※Windowsベース

## 本稿の目的
PHPで作成したアプリをノーヒントでデプロイするのはわからないことだらけですごく大変でした…
自分の行ったデプロイまでの手順を示し、みんなのPHPアプリを世に解き放つお手伝いがしたい!

ということで、ここでは開発環境側の準備に関して解説します。
全体の流れはこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3562770/edcbfc4a-e30f-3558-d316-685c329e7d78.png)

## .envファイルの準備
このようなデータベースへのアクセス設定がphpファイルに記載されているとする。
“`php:初期状態php
$db_name = “sample_db”; //データベース名
$db_id = “root”; //アカウント名
$db_pw = “”; //パスワード:MAMPは’root’
$db_host = “localhost”; //DB

元記事を表示

ループメニュー1を解いていく4

https://paiza.jp/works/mondai/loop_problems/loop_problems__seq_reverse

### Python

“`py
N = int(input())
A = list(map(int,input().split()))
# reversed関数を使うなら
print((*reversed(A)),sep=”\n”)
# for文を使うなら
for i in range(N-1,-1,-1):
print(A[i])
“`

### PHP
$Aはtrimしないと後ろに改行がくっついたままexplodeしてしまうので注意。

“`PHP
=0; $i–){
print($A[$i] . “\n”);
}
//reverse関数を使うならこれでも。でもぶっちゃけ上の方が早い
$A =

元記事を表示

【PHP】取り込んだHTMLのaタグにDOMDocumentで任意の属性を追加する

DOMDocumentを使い、取り込んだHTMLのaタグに`rel=”nofollow”`や`target=”_blank”`を付けたかったのですが、文字化けなどに苦戦したので残します。

## 想定対象者
PHPでHTMLのaタグにrel属性やtarget属性を付けたい人、またそれに似た操作をしたい人。

今回の実装コードは以下のように``や``を含まないHTMLを取得し、中にあるaタグを処理するコードになっています。
``タグで囲まれているような**完全なHTMLを想定していない**ので、注意してください。
“`HTML

“`
## 環境
– PHP8.2.8
## 実装
“`PHP
/**
* @param $html
* @return false|string
*/
function add

元記事を表示

blueSkyのプロフィールURLからRSSを抽出するコードを書きました。

### blueSkyのプロフィールURLからRSSを抽出するコードです。
blueSkyがRSS対応という記事を見たので対応してみました。
php7系とphp8系なら恐らく動作すると思います。
動作環境はPHP8.2になります。

“`php

元記事を表示

【Laravel, InterventionImage】アップロードする画像の解像度(dpi)を設定する方法

あまり情報がないのでメモ。

画像を高画質印刷するようなアプリケーションを作成したい場合には、アップロード時に画質を高めておきたい。
phpでは画像のアップロード時にデフォルトで解像度(dpi)が96に設定されるため、仮に元画像のdpiが350でも96までダウンしてしまう。

### imageresolutionが便利

imageresolution()
(PHP 7 >= 7.2.0, PHP 8)
https://www.php.net/manual/en/function.imageresolution.php

↓dpiを350に設定したい場合

“`php

$image_data = request()->file(‘image’);
$image = Image::make($image_data->getRealPath());

//GDオブジェクトを引数に指定、第二引数には設定したいDPI値
imageresolution($image->getCore(), 350);

$image->save($image

元記事を表示

ループメニュー1を解いていく3

https://paiza.jp/works/mondai/loop_problems/loop_problems__seq_multi

### Python
“`py
N = int(input())
A = [int(i) for i in input().split()]
for i in A:
print(i * 2)
“`
### PHP
for文で、要素数−1しているのは
0から数えるので、
0,1,2,3,4で要素5個だけど、−1して4までにする必要があるからですね
Pythonと違うので注意したいところです
まあこの部分は$N-1 でもよいのですが

“`php

“`

https://paiza.jp/works/mondai/loop_problem

元記事を表示

laravel クライアントのIPアドレスを取得するヘルパ関数を書いてみる

## 概要

`$request->ip()`でIPを取得すると、ダイレクトにクライアントからサーバーにアクセスされている場合は問題ないが、リバプロやロードバランサーなどがあると「サーバー到達直線のリソースのIP」が取れてしまう。クライアントのIPを取得したい場合の処理を考えてみた。

## 注意

本内容は完璧ではない可能性があります。何なりとご指摘いただければと思っております。

## 処理

下記のような処理を考えてみた。今回は独自ヘルパ関数として登録している。

“`helpers.php
if (!function_exists(‘getClientIp’)) {
function getClientIp(): array
{
$forwardedFor = request()->headers->get(‘X-Forwarded-For’);
$realIp = request()->headers->get(‘X-Real-IP’);
$clientIp = null;
$isClientI

元記事を表示

ループメニュー1をやっていく3

https://paiza.jp/works/mondai/loop_problems/loop_problems__seq_sum

Python

“`py
N = int(input())
A = list(map(int, input().split()))
# 下記でもOK
# A = [int(i) for i in input().split()]
sum = 0
for i in A:
sum += i

print(sum)
“`
PHP
“`php

“`

https://paiza.jp/works/mondai/loop_problems/loop_problems__seq_partsum

各言語の挙動

元記事を表示

【PHP】setcookieでPartitionedを発行したい場合はどうすればいいか

# サードパーティCookieについて

サードパーティCookieは2024年以降、[基本的に禁止されます](https://qiita.com/rana_kualu/items/16383af7f6f56f6e982e)。

この理由の大きなひとつが、サイトAとサイトBの情報を紐付けされてしまうことです。

![01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/62e51047-c5a7-4e0f-7ada-4ac41b971c37.jpeg)

※画像出典:[Chrome 114 の新機能](https://developer.chrome.com/blog/new-in-chrome-114?hl=ja)

`tracking.com`は`a.com`上でのあなたの動きを監視することができますし、`tracking.com`は`b.com`上でのあなたの動きを監視することができます。
そして`tracking.com`は、`a.com`と`b.com`の情報を紐付けることが可能です

元記事を表示

良いコード悪いコードで学ぶ設計入門を読んで(その②)

# 前置き
今年の目標に小規模~中規模のリファクタリングができるようになることを設定しました。前回は1章で悪い構造の弊害を纏めました。2章の内容を纏めます。

## 2章 設計の初歩
– 省略せず意図が伝わる名前を設計する

“`unknown_logic.php
int $d=0;
$d=$p1+$p2;
$d=$d-(($d1+$d2))/2);
if($d<0){ $d=0; } ``` まったく意味が分からない。私も実務時foreach文内でほぼ同じものを見たことがあるので親近感感じる。 このコードの変数名を適切に記述すると・・・ ```rename_value.php int $damageAmount=0; $damageAmount=$playerArmPower+$playerWeaponPower; $damageAmount=$damageAmount-(($enemyBodyDefence+$enemyArmorDefence))/2); if($damageAmount<0){ $damageAmount=0; } ``` 実はゲームのダメージ

元記事を表示

JS (php smarty内 .tpl 記述) セレクトボックス、テキストボックス制御

## ■完成イメージ
・セレクトボックス入力可 、テキストボックス入力不可
![スクリーンショット (909).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/5d936710-fe1a-5cf6-0019-d8581b8a2b8c.png)

・セレクトボックス入力不可 、テキストボックス入力可
![スクリーンショット (910).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/39f14355-5018-9b6d-9a43-8ecf9a796baa.png)

## ■機能説明
・セレクトボックスに値が入っている場合は、テキストボックスは入力不可。

・セレクトボックスが「未選択(値がない)」の場合、テキストボックス入力可、かつテキストボックスへ文字が入っている場合は、セレクトボックス選択不可。

## ■ソースコード
“`JS main.js
document.addEventListen

元記事を表示

ループメニュー1をやっていく2

https://paiza.jp/works/mondai/loop_problems/loop_problems__rep_num_step1

Python
“`py
for _ in range(8):
print(3)
“`
PHP
Pythonと違うので未だに改行コードを入れないといけないことを忘れます汗
あと、改行コードは’’だとだめで””でないと展開されないみたいです

“`php

“`
https://paiza.jp/works/mondai/loop_problems/loop_problems__rep_num_step2

Python

“`py
N, K = map(int,input().split())
for _ in range(K):
print(N)
“`

PHP
“`php

元記事を表示

ざっくりとわかりやすくSOLID原則を学ぶ

## はじめに
社員の皆さんはこんな奴が最近エンジニアになって頑張ってるんだなと暖かい目で読んでいただければと思います。

社外の方やエンジニアを目指している方は少しでも学習の参考や、コネクター・ジャパンに興味を持っていただければと思います。

## 自己紹介
未経験から独学でプログラミング学習し5ヶ月でLaravelでポートフォリオを作成しました。そして現在は自社開発企業に入社し、WEBエンジニアとしてプロダクト開発に携わっています。

## この記事を書いた理由
エンジニアなりたての初心者の頃は、コードがごちゃごちゃになりがちでした。
しかし、オブジェクト指向の基本原則であるSOLID原則を学ぶことで、すっきりとしたコードを意識して書くようになりました。

オブジェクト指向は、うまく扱うことが出来れば保守性が上がり、修正対応や機能を新しく追加する時などに楽に対応できるようになります。

つまりコードの品質を保ちやすくなるんですよね。

しかしなかなか理解が難しいので、今回は私なりにプログラムをきれいに保つための「SOLID原則」を、初心者の方でも理解しやすいようにわかりやすい言葉で

元記事を表示

個人メモ

まとめ

[配列と繰り返し処理](https://qiita.com/imokenpi/private/554e44a00bd5d68b60b0 “配列と繰り返し処理”)

[名前空間(自分用メモ)](https://qiita.com/imokenpi/private/1e73234de4621d484d1a “名前空間(自分用メモ)”)

[クラス(自分用メモ)](https://qiita.com/imokenpi/private/29b2a36a2c9884b0a118 “クラス(自分用メモ)”)

[HTTP通信GET・POST(自分用メモ)](https://qiita.com/imokenpi/private/a31468af84f722c59ec5 “HTTP通信GET・POST(自分用メモ)”)

[データ型の宣言とstrictモード](https://qiita.com/imokenpi/private/f67aaff774c455e5ee25 “データ型の宣言とstrictモード”)

[issetとempty](https://qiita.com/imokenp

元記事を表示

PDOでデータベースにアクセス

PHPでDBに簡単に接続できるPDOというものを使ってデータベースにアクセスします。
MANPを起動させphpMyAdminにアクセスしてDBを作ります。

## データベース用アカウントの作成
まず初めにデーターベースにアクセス可能なアカウントを作成していきます。
phpMyAdminのトップページにアクセス→上のタブのDataBaseをクリック→アカウントを追加したいデーターベース欄の権限をチェックする→画面下の方にあるユーザーアカウントを作成するをクリックします。

ユーザー名を入力→ホスト名をローカル→パスワードを入力→もう一度入力→権限の付与の選択→実行で完了です

## アカウントを使いDBを扱っていく
ここからコードを書いていきます。やっていきます。
“`php
$dns = ‘mysql:host=localhost;dbname=study;charaset=utf8’;
$name = ‘user’;
$pass = ‘password’;

try{
//データベース、ユーザー名、パスワードから接続をする
$dbh = new PDO($dns,

元記事を表示

Laravel Macroを使ってみる

# 環境
Laravel10(sail)
https://readouble.com/laravel/10.x/ja/installation.html
↑↑この通りにやればサクッと環境が作れる

Mac
Apple M1 Max
sonoma 14.2.1

# Macroとは?

> A “macro” in Laravel refers to the ability to add additional methods or features to various classes or framework components without altering the original source code.
>
> Laravel’s macro feature enables developers to enhance the capabilities of fundamental Laravel classes such as Eloquent models, collections, query builders, and others.

Laravel の「マクロ」

元記事を表示

【PHP】マイナーフレームワーク「Flow」を試してみる~AOP編~

# 初めに
前回は[こちら](https://qiita.com/nnhkrnk/items/77048e47018e602870d1)の記事で参照可能なファイルの扱いについてまとめました。
今回はFlowにおけるAOPの実装についてまとめます。

# (ざっくりと)AOPとは
ざっくりとAOPとは何かを説明します。(「知ってるよ」って方はスキップ推奨ですmm)
chatGPT様に説明をお願いしました(丸投げ)。

> AOP(Aspect-Oriented Programming)は、プログラム内の共通な機能(ログ記録、エラーハンドリングなど)を取り出して、それらを別のモジュールとして管理するプログラミング手法です。これにより、コードがよりシンプルで保守しやすくなります。アスペクトと呼ばれるモジュールが特定の機能を担当し、アドバイスと呼ばれる処理がコードに挿入されるポイントを指定します。 AOPは特に大規模なソフトウェアプロジェクトで有用です。

まとめると『**似たような処理はまとめて、自動で実行されるようにしようね**』ってことですね。

## AOPの例
あるプロジェクトで、*

元記事を表示

【PHP】MySQLに接続する方法(mysqli)

この記事では、MySQLにPHPから接続する方法、そしてSQL文を実行する方法を紹介します。

# 注意

この記事には、コード内には**おかしいコメントが**、コード外には**おかしい文章が**書いてあります。
笑わないように**十分に警戒してください**。

そして、この記事ではPHPのモジュールでmysqliが有効化(コメントアウトされていない状態)されていることを前提としています。

# やっていこう

テレレッテッテ、テレレッテッテ、テレレッテッテッテッテ!
PHPクッキングのお時間です。
今回は、「PHP」に、「MySQL」というご馳走を食べさせるために、「MySQL」を作っていこうと思います。

まずは、PHPソースを1つと、プログラムエディタを1つ用意します。
おすすめのプログラムエディタは、VSCodeです!

まず、お好みのPHPソースを用意して、以下のソースをトッピングします!

“`php:接続.php

# 製品情報(接続情報)を入力

$mysqli = new mysqli(“発売元(正式には接続先)”, “生産者(正式にはユーザー名)”, “MySQL

元記事を表示

Oracle plsql ,PDFがアップデートされたかチェック 02

## ■環境
・PHP7.4
・Linux(RedHat 8.6)
・Smarty2.4.6
・oracle12
・PLSQL
## ■完成イメージ
1:アップロード
![スクリーンショット (904).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/0b5d64a5-4755-3a57-b089-263d5abd53c2.png)
2:アップロード後
![スクリーンショット (908).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/9b2b4c49-3fbd-f57d-4da1-bbdc569b393c.png)

## ■機能説明
### 機能
・PHPから plsqlのプロシージャを呼び。
・プロシージャで、一時テーブル(テンポラリーテーブル)へPDFのアップロード情報を格納。
・PHPでプロシージャの一時テーブルの情報をSELECTして、配列へ格納。
・.tplで配列とのチェックを行う。

元記事を表示

Testlink : テスト進捗をグラフ化する

Testlink の DB に記録されたテスト実施データからグラフを生成する手順について解説します。

# Testlink DB のアクセス

まず Testlink DB に接続する必要があります。
Testlink Root の config_db.inc に Testlink Database への接続情報が記載されています。

“`config_db.inc.php

“`

# グラフ化手順

テストの実行結果は Testlin

元記事を表示

OTHERカテゴリの最新記事