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

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

Azure App Service上のPHPにElastic APMを設定する方法

Azure App Service上で動かすPHPにElastic APMを設定する機会がありましたので、注意点など含めて紹介しようと思います。
# PHPでElastic APMを使う方法
公式ドキュメントはこちら
https://www.elastic.co/guide/en/apm/agent/php/1.x/intro.html
通常であればrpm/dpkg/apkでインストールするだけですが、今回はひと手間必要です。
## Elastic Cloud用の設定
この部分はApp Serviceでなくても必要になる部分です。

Elastic Cloudにデータを送る設定を`php.ini`に記載する必要があります。
https://www.elastic.co/guide/en/apm/agent/php/1.x/configuration.html#configure-ess
“`
elastic_apm.server_url=APM_SERVER_URL
elastic_apm.secret_token=TOKEN
elastic_apm.service_name=SER

元記事を表示

Larvelでランダムなパスワードを生成したい

# はじめに
Laravelでユーザー登録の際にランダムな初期パスワードをデータベースに保存し、その初期パスワードをユーザーにメールで通知するという場合があるかと思います。

その際に、ランダムなパスワードを生成する際にどうすればいいかを調べると、Str::randomメソッドが出てきたため、それを使えばいいかと思いました。
パスワードの条件としては、アルファベットの大文字と小文字と数字を少なくとも1文字は含み、8文字というものです。

Str::randomメソッドでコードを書いて、プルリクを出すと、上記のパスワードの条件を満たさないととことだったので、本当にそうか?と思い調べました。

# Str::randomメソッドとは
> Str::randomメソッドは指定した長さのランダムな文字列を生成します。このメソッドは、PHPのrandom_bytes関数を使用します。

[参考](https://readouble.com/laravel/8.x/ja/helpers.html#method-str-random)

> 生成されるランダム文字列には
大文字
小文字

が含まれ

元記事を表示

PHPの制御構造について

## 概要

PHPの制御構造について、ちょっとしたテクニックを紹介しています。

## do-while

do-whileはループ構造であり、breakが使えます。
かつ、絶対に1回は実行されるため、条件によって後の処理を実行しない
といった使い方が可能です。

“`php
100) {
break;
}

echo “Hello ” . $name;
} while (0);
?>
“`

## for

for (式1; 式2; 式3)
式1はループ開始時に無条件で実行、
式2は繰り返しの開始時に実行され、
式3は繰り返しの後に実行されます。

各式では、「,」区切りで複数の式を記述でき、
逆に空にすることもできます。

簡単な例として、

“`php

元記事を表示

PHP oci_connect で AWS(RDS) oracleDBへ接続方法

# AWS RDS へ接続。

## お使いのDBの値へ入れ替えてください。

#### コード
“`php:index.php

// エラーを出力する
ini_set(‘display_errors’, “On”);

$conn = oci_connect(‘TSU’,’TSU’,’orcl-03.cbmsqs9alrus.ap-northeast-1.rds.amazonaws.com/orcl’,’AL32UTF8′);

if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e[‘message’], ENT_QUOTES), E_USER_ERROR);
}else{
echo “接続完了!”;
}

?>

“`

元記事を表示

PHPのプログラムをDockerで立てたhttpdで動かしてみた

# はじめに
PHPを使い始めたこともあり、サンプルレベルのプログラムを動かす環境を構築してみました。

# 検証に使用した環境
OS:MacOS Monterey 12.3.1
Docker:Docker Desktop for Mac 4.7.1
PHP:7.2

# DOCKER公式のphpイメージをプルする
まず、イメージを取得します。
当初は、[httpdのイメージ](https://hub.docker.com/_/httpd)でやろうとしていました。
しかし、デフォルトでPHPは入っておらず、拡張が必要でした。

PHPとhttpdだけが必要な場合は、[PHPのイメージ](https://hub.docker.com/_/httpd)が良いとのこと。

DockerHubのページを参考にPHPとhttpdがセットになったイメージを取得します。

“`shell
% docker pull php:7.2-apache
“`

# 定義ファイルを作成
docker composeでコンテナを作るため、定義ファイルを作成します。

httpdを80番ポートで受け、公開する

元記事を表示

WindowsにApache+PHPの環境構築

# Apache

## Apacheのダウンロード

Apache Loungeというサイトからダウンロードする
https://www.apachelounge.com/download/#google_vignette

2022/8/19時点では「httpd-2.4.54-win64-VS16.zip 」となっている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100226/6b8a108b-6844-3a57-de81-03b28f9435b3.png)

解凍すると下記のようなファイル・フォルダ構成になっている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100226/7458aafd-88e1-fb97-685a-d200a23c9750.png)

「Apache24」というフォルダを「c:\var\」の配下にコピーする。
(varフォルダがなければ作る

元記事を表示

元プログラマーが、脳の記憶力低下にがっかりしている

# 概要
退役プログラマーが趣味で[**「なつかしの曲(ポータル)」**](https://tecoyan.blogspot.com/#btn_cntrl)サイトを構築していますが、特にメンテナンスで**特定の修正箇所を思い出す**ことが困難になってきた。昔であれば、瞬時に思い出すことができたのだが。
記憶の脳内ホルモンの低下が原因か。
情けない。目を閉じて、ソースコードをイメージしてみるが、そのソースコードが浮かんで来なくなった。これから、記憶力復活のトレーニングを検討してみたい。

# 事例
開発ツール(NetBeans IDE 8.2)を開いて、ソースコードを眺めていれば、徐々に特定のコードの箇所を記憶を頼りにたどって行けるのだが、一旦、目を閉じて思い出そうとしても、何も出てこない。これが困る。
元プログラマーとしては、プライドが許さない。
何とか、目を閉じていても、ソースコードがスラスラと目に浮かんでくるようにしたい。
少しづつ、関連付けて行けば、何とか、思い出すことはできる。
あのボタンのイベント処理はどこにあったかと

元記事を表示

PHP入門 その1

# はじめに
PHPの書き方についてまとめてみました。

# 検証に使用した環境
PHP:7.2

# PHPの書き方
PHPはHTMLに埋め込んで使うことができます。
\の中に具体的な処理を書いていきます。

## 例えば
### 例)ソースの状態のphpファイル

“`html


タイトル

‘; ?>


“`

### レンダリング後
\内で実装したh1タグがhtmlに変換されて表示されました。

“`html

タイトル



“`

## コメント
「//」で記述すると行末までコメントとして扱われます。

“`html
コメントサンプル

‘;
?>
“`

## 変数
変数名は、先頭に「\\$」からはじめます。
※変数名は、先頭文字に数字は使えません

元記事を表示

【PHP】多次元配列のカンマ区切りのカラムを1次元配列にまとめる

# コード
“`PHP
‘name1,name2,name3,name5’],
[‘staff’ => ‘name4,name5,name6,name1’],
];
$result = [];
foreach ($array as $value){
$result = array_merge($result,explode(‘,’,$value[‘staff’]));
}

または

$result = array_reduce($array,function($res,$v){return array_merge($res,explode(‘,’,$v[‘staff’]));}, []);

var_dump($result);
“`
# 結果2
“`
array(8) {
[0]=>
string(5) “name1”
[1]=>
string(5) “name2”
[2]=>
string(5) “name3”
[3]=>
string(5) “name5”

元記事を表示

【PHP】PHPで多次元配列を1次元配列にする

# コード1
“`PHP

int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
[5]=>
int(6)
}
“`

元記事を表示

AWS EC2環境でphp8.0とcomposerをインストールする

“`sudo amazon-linux-extras | grep php“`

php8.0の情報を見る
“`sudo amazon-linux-extras info php8.0“`

php8.0をインストールする
“`sudo amazon-linux-extras install php8.0“`

composerをインストールする
“`sudo curl -sS https://getcomposer.org/installer | sudo php“`

composerの移動
“`sudo mv composer.phar /usr/local/bin/composer“`

symbol linkを作成する
“`sudo ln -s /usr/local/bin/composer /usr/bin/composer“`

元記事を表示

Symfony(6.0) で Hello World!

## 概要

SymfonyのWebアプリでいわゆるHello Worldを行います。
SymfonyはPHPのMVCフレームワークの1つとなります。

Symfony6.0を対象としていますが、現行バージョンである6.1(PHP8.1以上)でも同様の操作で構築可能です。

## 環境情報

Windows10
[PHP8.0](https://windows.php.net/download#php-8.0)
[Composer](https://getcomposer.org/download)
[Symfony CLI](https://symfony.com/download)

(本記事ではDockerを扱いません。ローカルにインストールされているPHPを利用しております。)

### Symfony CLIのダウンロード

https://symfony.com/download

Windows > Binaries > amd64(または386)をクリックすると、zipでダウンロードされます。
![image.png](https://qiita-image-stor

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの文字列処理の比較

Python,Ruby,PHP,Java,JavaScript,Perlの文字列処理の比較

# Python

https://qiita.com/tomotaka_ito/items/594ee1396cf982ba9887

# Ruby

https://qiita.com/kyohei-horikawa/items/b3308601931c20074c31

# PHP

https://qiita.com/chimayu/items/9b9cb14548aa7dd8da1b

# Java

https://qiita.com/suema0331/items/a3c947076ee1a0c6037a

# JavaScript

https://qiita.com/saka212/items/11ce1f1d6316c1fbf15b

# Perl

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

元記事を表示

【PHP】スタックとは?【基本情報】

# スタックとは?
格納した順序とは逆の順序でデータを取り出すことのできる(LIFO)データ構造。
データをスタックに格納することをプッシュといい、PHPでは、array_push()がある。
データをスタックから取り出すことをポップといい、PHPでは、array_pop()がある。

array_push()
→一つ以上の要素を配列の最後に追加する
array_pop()
→配列の末尾から要素を取り除く

# 参考文献
PHPマニュアル(array_pushのページとarray_popのページ)
https://www.php.net/manual/ja/function.array-push.php
https://www.php.net/manual/ja/function.array-pop.php
栢木厚,栢木先生の基本情報技術者教室(令和2年版),技術評論社,2020

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの変数の比較

Python,Ruby,PHP,Java,JavaScript,Perlの変数の比較

# Python

https://qiita.com/G-Rape/items/854a51ef188cd5933bcc

# Ruby

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

# PHP

https://qiita.com/tokutoku393/items/72d2f3f8986c97c36a27

# Java

https://qiita.com/takahirocook/items/52298e13281e26e576ab

# JavaScript

https://qiita.com/andota05/items/238ff472a0e711b65275

# Perl

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

元記事を表示

VSCode 無限ループを止める方法(PHP)

# 無限ループの止め方。
Ctrl + cを押す(Windows)
そうすると、強制終了する(止まる)。

# 参考サイト
https://daeudaeu.com/infinite-loop/

元記事を表示

PHP8.1で登場した列挙型(Enum)とオブジェクト(object)を区別する方法

EnumかEnum以外か どうやって判断すれば良いんだ………!?とハマったのでメモ。

# ? 結論
Enumかどうかは、「***UnitEnum**インターフェイスのインスタンスかどうか*」で判定する。
“`php
if( $hogeEnum instanceof UnitEnum ) {}
“`
> このインターフェイスは、型チェックのためだけに存在しています。

と、以下のUnitEnumのページに書かれていますね。

https://www.php.net/manual/ja/class.unitenum.php

# ➕ 追記・・・PHPのドキュメントにもコメント載せた
(なんでEnumの説明ページに書かれていないんだ……!!!!)

ということで、Enumの説明ページの下の方にあるUser Contributed Notesに書いておきました!!

https://www.php.net/manual/ja/language.types.enumerations.php#127515

# ? ちなみに・・・Enumとオブジェクトの違い
Enumはオブジェクトとして扱わ

元記事を表示

PHP オブジェクトのクローン

# 概要

– オブジェクトのクローンについてまとめる

# やりたいこと

– Aクラスのオブジェクトを`$a`に格納してからそれを複製して`$b`に格納し別のオブジェクトとして扱いたい。
– 下記のようなコードを考えた。

“`php
str = $input;
}
}

// インスタンス化してオブジェクトを$aに格納
$a = new A();
echo $a->str . “\n”;

$b = $a;
$b->save(‘更新した文字列’);

// 「更新した文字列」が出力されてほしい
echo $b->str . “\n”;

// この時 intの1が出力されてほしい
echo $a->str . “\n

元記事を表示

とりあえず動く連動プルダウンを作った【Vue.js & axios】

# 材料
– PHP(7で動作確認)
– Vue3
– axios
– 連動プルダウンにしたいデータ(DBでも連想配列でも)
# 連動部分を作る

“`data.php

0,
‘sushi_neta’ => ‘マグロ’
),
array(
‘sushi_type’ => 0,
‘sushi_neta’ => ‘サーモン’
),
array(
‘sushi_type’ => 0,
‘sushi_neta’ => ‘しめサバ’
),
array(
‘sushi_type’ => 1,
‘sushi_neta’ => ‘いくら’
),
array(
‘sushi_type’ => 1,
‘sushi_neta’ => ‘うに’
),
array(

元記事を表示

ハッシュタグ検索機能を作る

## この記事について
CMSなどで記事内に含まれるハッシュタグを検索できる機能を実装したので、その方法を記載します。
画面までは作らず、バックエンドのポイントとなる部分だけの説明とします。

## 機能概要
前提としてはCMSの中に以下の機能に追加するものとします。
・おすすめハッシュタグ(記事内に含まれたハッシュタグを抽出する機能)
・ハッシュタグ検索(指定されたハッシュタグが付いている記事を検索する機能)

## 前提知識
### ハッシュタグの考え方
実装する前に世の中で展開されているハッシュタグには以下のようなルールがあることを押さえておきます。

■ 名付けルール
ハッシュタグはどんな文字でも使えるわけではなく、InstagramやTwitterでもハッシュタグとして認められるためのルールがあります。
【例】
・Twitter  → 記号や数字は禁止
・Instagram → 数字は許可されているが、記号は_(アンダーバー)のみ許可

■ 境界文字
複数ハッシュタグをつける場合や文中にハッシュタグを入れたい場合、区切りとなる文字のルールがあります。
TwitterやInst

元記事を表示

OTHERカテゴリの最新記事