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

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

Build a network tunnel using Python and the LAMP(PHP) stack.

## Getting Started
Hosting services based on the LAMP stack (Linux + Apache + MySQL + PHP), commonly known as shared hosting, can be obtained at an affordable price in any country. If you are lucky, you can get the infrastructure for one-hundredth the cost of acquiring a virtual server.

I was interested in creating a proxy (also known as a VPN) using shared hosting, and I recently succeeded. I considered an implementation similar to [Shadowsocks](https://shadowsocks.org/) as the most ideal and

元記事を表示

頻繁にランダム番号が重複しないようにするクラス.

頻繁にランダム番号が重複しないようにするクラスです.
ご自由にコピペでご使用ください.

“`php:randomizeClass.php

元記事を表示

STYLYがPHPカンファレンス香川2024でのPico4とApple Vision Proの体験展示してみた:準備とスキルトランスファー編

こんにちは、uechanです。

2024年5月に開催されたPHPカンファレンス香川2024に参加し、STYLYのデモ展示を行いました。
本記事では、デモ展示の下準備として行ったスキルトランスファーや技術のブラッシュアップについて詳しく紹介します。

## イベント概要
PHPカンファレンス香川は、PHPを中心としたWeb技術に関するカンファレンスです。PHPユーザーやPHPに興味がある、あるいはWeb技術全般に興味がある方々が集まり、さまざまなトークセッションや交流を行うイベントを目指しています。
自分はSTYLYのスポンサー展示を行うために参加しました。

## 展示内容の紹介
今回は、Pico4を使ったセッション機能でのMR/VR作品の体験と、
Apple Vision Proを使った作品の体験を展示しました。
Apple Vision Proは四国初上陸です!!

元記事を表示

急いですぐにLaravelの作業がしやすい環境をDockerのDebianで作る

今回は急いでLaravelの動く環境が欲しいので急いですぐになんとかします!

## すぐ着手

まずDockerをパパッと起動します。

“`bash
cd oisogi-laravel
docker run -it –rm -p 8080:8080 -v .:/opt debian
“`

必要なものまとめてインストールします。

“`bash
apt-get update
apt-get -y install php php-sqlite3 php-curl php-fdomdocument composer
“`

MySQLのためだけにdocker-composeする時間はもったいない印象です。
時短のため.envをSQLite3で使うよう一旦ちょっと変えます。
gitを使っている場合はここで`.gitignore`によって無視されるパスを指定するのが時短ポイントです。

`DB_`の部分は例えばこんな感じです。

“`bash
DB_CONNECTION=sqlite
DB_DATABASE=database/db.sqlite
“`

ほぼいつものコマンド

元記事を表示

WordPressにおける動的ルーティングの実装方法

# はじめに

WordPressで動的ルーティングを実装する方法のサンプルです。

# 問題

WordPressの修正案件。
地域の出し分けをカスタム投稿でやってほしいとのこと。
差分少ないし、記事を何十も作るのダルメシアンだったので、動的ルーティング使って解決。
ただLaravelやReactの感覚でいたから、予想の10倍は苦労した。

# 解決方法

“`functions.php

function custom_rewrite_rule()
{
add_rewrite_rule(
‘^area/([^/]*)/([^/]*)/?’,
‘index.php?pagename=city&prefecture=$matches[1]&city=$matches[2]’,
‘top’
);
}
add_action(‘init’, ‘custom_rewrite_rule’);

function custom_query_vars($vars)
{
$vars[] = ‘prefecture’;
$vars[] = ‘city’;
$vars[] =

元記事を表示

STYLYがPHPカンファレンス香川をスポンサーしてみた。

# PHPカンファレンス香川のスポンサー出展の経緯

 AppleVisionProが2/2に発売され、いろいろなルートを使って会社で数台調達することができました。そのときに、「そういやPHPカンファレンス関西に行くし、その時に被ってったら、たぶん注目されて、おもろいことになるから借りていこう」と思いつき、@afjk から会社のAppleVisionProを借りて、単身PHPカンファレンス関西に突っ込むことを画策しました。
 この時、参加登録はしてたものの、登壇ではなかったので、まぁどうすっかなーという気持ちはありつつ、あまり不安もありませんでした。というのも、こういうカンファレンスでは登壇の裏でLTイベントをしていることが多く、そういう時には飛び込みもOKだという感触がありました。したがって、飛び込めれば何とかなるだろう。という気持ちで突っ込みました。で、そのようなLTイベントが予定通り?発生していたので、とりあえず適当な自己紹介をして、

**まぁ、俺が誰であるかとか、どの会社の人間であるかは興味ないと思うんだ。
でも、俺は10日前にアメリカでしか販売されてない最新のApple

元記事を表示

怠けるための必需品!2024年の生産性向上のための効率的な開発ツール

> プログラマーであることは、絶え間ないコードの流れと要求で挑戦的です。仕事とリラックスのバランスを取ることは難しいですが、作業負荷を軽減する強力なツールがあります。「適材適所」—この記事は、便利なツールを発見するのに役立ちます。

### DevDocs – オフラインドキュメントのコンパニオン

[DevDocs](https://devdocs.io/)は、オフラインAPIドキュメントブラウザで、多言語対応しており、開発者に技術ドキュメントへの迅速かつ効率的なアクセスを提供します。フロントエンドからバックエンド、モバイル開発まで、公式ドキュメントを統合し、洗練されたユーザーフレンドリーなインターフェースを提供します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782463/8b2f7f75-8f28-cbd1-39d5-855539096af8.png)

### ServBay – 開発者の夢

[ServBay](https://www.servbay.com)は、ウェ

元記事を表示

二分探索法(バイナリサーチ)

## 二分探索法(バイナリサーチ)とは

探索する範囲を半分に絞り込みながら探索を進めるアルゴリズム。
あらかじめ昇順か降順に整列されているデータが対象となる。

### 対象データ

以下のように昇順か降順に整列されているデータ
“`php
$array = [11, 13, 17, 19, 23, 29, 31];
“`

### フローチャート

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733055/8a75e4d2-1df8-47f8-51be-13b0cc8d445f.png)

### 解説

以下の変数を用意する
`head`:先頭のデータの添字
`center`:真ん中のデータの添字
`tail`:末尾のデータの添字

①真ん中の要素を選ぶ
→`(head + tail) / 2`で求め、`center`へ代入する
②真ん中と目的のデータを比較する
→データが目的のデータと一致した場合は、探索終了
→データが目的のデータと一致しない場合は③へ移る
③探索の

元記事を表示

WordPressでJavaScriptを埋め込む方法

## はじめに
今回はWordPressでモーダルを実装する際にJavaScriptをどこに埋め込めばいいか悩んだのでその解決策をまとめる
## 問題点
WordPressでJavaScriptのコードをどのphpファイルに埋め込めばいいのか
## 解決策
footer.phpの“`“`の直前に埋め込むことで解決する
ただしこれは非推奨な方法のようなので別の方法は後日追記する

“`footer.php




“`

元記事を表示

mysqliを使ってPHPからMySQLに接続する方法

# はじめに
`mysqli_connect`を用いて、MySQLに接続する方法と切断する方法のみを説明します。
本記事では、データの取得や挿入などは触れていません。

# 事前知識
### mysqliとは
`mysqli`(MySQL Improved)とは、PHPでMySQLデータベースとやり取りするための拡張機能のこと。
### MySQLデータベースとは
MySQLデータベースは、データを効率的に保存、管理、検索するためのシステムのこと。
ユーザー情報、商品情報、ブログ投稿など、ウェブサイトの様々なデータを保存するために使われる。
# mysqliを使ってデータベースに接続する
### `mysqli_connect`を使ってデータベースに接続する
`mysqli_connect` 関数を使ってMySQLデータベースに接続する。
“`php
mysqli_connect(
$hostname,
$username,
$password,
$dbname
);
“`
上のように、ホスト名、ユーザー名、パスワード、データベース名の順で書く。

続いて、接続を確認するために、変

元記事を表示

【PHP】PHP勢の自分がどうしてもシャットダウンをしたくない理由

## はじめに
こんにちは! 中学3年生のWardHamamatsu67です! 今回は、PHPをよく使う自分がとある事情でシャットダウンをやりたくなくなった話をしようと思います。
## なぜ??
なぜ、自分がシャットダウンをしないようになったのかは、単純にXAMPPが原因です。 XAMPPとは、以前別の投稿で説明した通り、PHPの開発環境となるもので、PHPを始める方には絶対必要となります。

XAMPPの使い方についてはこちら

https://qiita.com/WardHamamatsu67/items/ed4e812132e0297ccd8e

説明がかなり短くて雑ですがご了承ください。(本当にすみません。)

で、このXAMPPくんなんですが、シャットダウンするとそれまで動いていた、**Apacheや、MySQLなどが停止**してしまうんです。そして、この状態でPHPを実行しようとすると、次のように「localhostで接続が拒否されました」と出るんです。
![20210223

元記事を表示

【PHP】西暦から和暦・和暦から西暦を算出する

[西暦から干支・干支から西暦を算出する](https://qiita.com/Kokusui/items/79da562e4e979aea1825 “西暦から干支・干支から西暦を算出する”)に続き暦ネタ。
#### 西暦→和暦
“`sei2wa.php
function sei2wa(string $datestr = NULL) {
//datestrで与えられた年月日(の属する暦年)の和暦年を返す ただし明治元年以降
//datestrを年だけにした場合はその年の1月1日の和暦を算出
//datestrが空欄の場合は今日の和暦
//datestrが日付として正しくない場合はNULLを返す
if ($datestr) {
$datestr = mb_convert_kana($datestr, ‘n’);
if (is_numeric($datestr)
&& preg_match(‘/^[12][089]\d{2}$/’, $datestr)
&& intval($datestr) >= 1868
&& intval($datestr) < 2

元記事を表示

【攻略】ServBayでわずか3分でWeb開発環境を構築

> ServBayは、統合されたユーザーフレンドリーなローカライズされた[Web開発環境](https://www.servbay.com)を提供します。ServBayを使用すると、開発者は数分でローカル開発環境をセットアップできます。これは、PHPやNode.jsのようなインストールとメンテナンスの問題に効果的に対処し、テストエンジニアや小規模チームにとっても便利です。さらに、迅速な環境アップグレードと継続的なメンテナンスも可能にします。

このガイドは、ServBayのセットアッププロセスを簡単に理解できるように設計されています。初心者でも複雑さに悩むことなく、スムーズで簡単にServBayをデプロイできるようにします。

### 準備

まず、ServBayをダウンロードしてインストールする必要があります。ダウンロードする前に、システムが以下の要件を満たしていることを確認してください:
– オペレーティングシステム: macOS 12.0 Monterey以上
– プロセッサ: IntelまたはApple Silicon (M1/M2/M3) チップ
– ストレージ: 10GB以

元記事を表示

入力フォームの整数判定【PHP】

# はじめに
bdrccです。
ポートフォリオに掲載する、PHPの制作物を作っています。
今回の記事は、フォームに入力された内容で四苦八苦した経緯を書いていきます。

# 整数がほしい
パスワードの桁数と個数をフォームに入力し、PHPで実行することで、英数字から作成されたパスワードを、複数個自動生成するWebアプリを作成しています。
数字入力の枠のエラー対応を行いました。

### 入力されていない 場合
-> HTML の inputタグに `required` を追加して対応
### 数値ではない または 負の数 の場合
-> PHP の `is_numeric(入力内容)` で判定可能

ここまでは順調でした。
問題はここからです。

桁数を6〜10、個数を1〜10としていたのですが、範囲内小数の場合、小数部分を切り上げて自動判断していました・・・。

# 対応
1.`is_int()` を使用
->文字列扱いで認識され、正しい自然数でも作動せず
2.`is_numeric() and \\$x==intval($x)` を使用
->無事、範囲内

元記事を表示

線形探索法(リニアサーチ)

## はじめに

線形探索法についてまとめる

### 線形探索法(リニアサーチ)とは

先頭から順番に調べて探す探索アルゴリズム。
リニアとは一直線という意味。探索が片方からもう片方へ一直線に進んでいくイメージ。
検索エンジンで使われている。
探索効率はそれほど良くない。

### 例

#### 対象データと探す値

以下の配列から5という整数データが入っているかを探す。

“`php
$array = [4, 2, 3, 5, 1];
“`

#### フローチャート

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2733055/f0c94493-f474-1758-4309-abafc92af027.png)

元記事を表示

HEIC(HEIF)画像をJPEGに一括変換する

# はじめに
 iOS(11以降)では写真を撮影したときに、特に設定をしていなければHEIFと呼ばれる方式で画像を保存します。拡張子はHEICです。この方式は高画質かつファイルサイズが小さいので便利そうなのですが、Apple系のOS以外ではまだサポートが充実していません。今回はHEIC画像を一括(バッチ)でJPEGに変換する方法をいくつか試してみます。

# Windows版ImageMagickを使う
 ImageMagickは様々なフォーマットに対応したツールで、最近HEICを読み込めるようになりました。Windowsバッチで次のように書くと、batファイルを設置した場所と同じ階層のHEICファイルを全てJEPGに変換できます。PATHを通すことができない場合はImageMagickの場所をフルパスで書くことで実行できます。

“`bat
for %%f in (*.HEIC) do (
start convert.exe “%%~nf”.HEIC “%%~nf”.JPEG
)
“`
この例はマルチプロセスで、処理するファイル数と同じ数のプロセスが実行されま

元記事を表示

非JS系フロントエンド環境でのパフォーマンス改善

様々な制約により、ReactやVue、SvelteのようなナウいJS系フレームワーク(or ライブラリ)の導入が難しい場面があります。しかし、そういった状況であっても、サーバーサイドだけではなく、フロントエンドでのパフォーマンス改善を求められることもまたあります。奇縁により、私はそういった仕事が多く、知見が溜まってきたので皆さんにシェアしたいと思います。

## ルール1:自前のCSSは書かない、読み込ませない

BEMやFLOCSSのようなルールでなるべくCSSファイルを簡素化させたとしても、「CSSを書かない」より軽くなることはありません。

### じゃあスタイリングはどうしたらいい?

– 高速CDNで配布されているCSSフレームワークを使いましょう。ただし、React前提だよねみたいなCSSフレームワークが多いのでそのあたりのリサーチは入念に。自分はBootstrapを使っています。イケてるとは思わないですが、汎用性も高く、また読み込みパフォーマンスも及第点なので選んでいる感じです。
– それでも足りない場合はstyleタグを用いましょう。CSS in JSの展開後のイメ

元記事を表示

【PHP】西暦から干支・干支から西暦を算出する

小ネタ。
PHPで西暦から十二支を出す必要があったので、ついでに十干十二支(干支=えと)を出す関数を作ってみた。

#### 西暦→干支
“`getEto.php
function getEto(int $yyyy = NULL, bool $with_jikkan = TRUE) {
// yyyyに西暦を入れるとその年の干支(十干十二支)を返す
// yyyyが空のときは今年の干支
// 第2引数を0にすると十二支のみ返す
$yyyy = $yyyy ?: date(“Y”);
if ($yyyy > 0) {
$jikkan = [
‘庚’,
‘辛’,
‘壬’,
‘癸’,
‘甲’,
‘乙’,
‘丙’,
‘丁’,
‘戊’,
‘己’,
];
$juunishi = [
‘申’,
‘酉’,
‘戌’,
‘亥’,
‘子’,
‘丑’,
‘寅’,
‘卯’,
‘辰’,
‘巳’,
‘午’,
‘未’,
];
return ($with_j

元記事を表示

自動テストの更新日時を現在日時にするな学園

# 学園校歌
自動テストを行う際は~更新日時に気をつけよ~
更新日時は過去にせよ~現在日時とするなかれ~
現在日時にするならば~データ作ったら少し待て~
更新前後のテストデータが~別となるデータを持て~
あぁわれら~われらの学園~
自動テストの更新日時を現在日時にするな学園~

# ここから真面目な話
## 先に結論
MySQLの仕様として「更新前後の値が全く同じデータは更新したものとして扱われない」というのがあるため、更新日時が現在だったり実際のデータをコピーしたりして、テスト前後のデータが同じになってしまう状況は作らないようにすべきである
## いきさつ
PHP(Laravel)で作成していたプロジェクトのテストがべらぼうに多かったため、自動テストで対応することにした
なんとか全て作成し、いざテストするぞというタイミングで、特定のテストだけ失敗するという結果になった
それ以外の類似テストは全て合格だし、何ならデバッグモードで実施しても問題なかった。だが、デバッグモードでのテストと自動テストで結果が変わってしまっては自動テストの信頼性が低くなってしまう
さすがにこのエラーのためだけに

元記事を表示

トラブル対応メモ:PHP画面から外部サーバへのファイル転送不良

いつものように基本的知識の不足ゆえ、久々にドハマりしてしまったのでメモ。

### (前提) ###
+ やりたいこと:PHPプログラム(Web画面)からexec関数を実行し、SCPを使って外部サーバへファイルをリネームしながら転送
+ SCPの実行に当たっては、本来は公開鍵方式でやるべきだが、相手先サーバの事情によりパスワード認証方式で実行せねばならない。
 ⇒シェルのexpectコマンドを使ってSCPを実行し、疑似対話イメージでパスワードを指定することにした。
“` shell
expect -c ”
set timeout 30
spawn /usr/bin/scp (転送元ディレクトリ)/hoge.txt root@(転送先サーバ):(転送先ディレクトリ)/hogefuga.txt
expect default { exit 10 } \”root@(転送先サーバ)’s password: \” ; send \”(転送先サーバパスワード)\n\”
interact

“`
### (発生した事象) ###
+ PHPプログラムを実行したところ、転送先サーバにリネ

元記事を表示

OTHERカテゴリの最新記事