- 1. タイトル
- 2. タイトル
- 3. コメントサンプル
- 3.0.1. 【PHP】多次元配列のカンマ区切りのカラムを1次元配列にまとめる
- 3.0.2. 【PHP】PHPで多次元配列を1次元配列にする
- 3.0.3. AWS EC2環境でphp8.0とcomposerをインストールする
- 3.0.4. Symfony(6.0) で Hello World!
- 3.0.5. Python,Ruby,PHP,Java,JavaScript,Perlの文字列処理の比較
- 3.0.6. 【PHP】スタックとは?【基本情報】
- 3.0.7. Python,Ruby,PHP,Java,JavaScript,Perlの変数の比較
- 3.0.8. VSCode 無限ループを止める方法(PHP)
- 3.0.9. PHP8.1で登場した列挙型(Enum)とオブジェクト(object)を区別する方法
- 3.0.10. PHP オブジェクトのクローン
- 3.0.11. とりあえず動く連動プルダウンを作った【Vue.js & axios】
- 3.0.12. ハッシュタグ検索機能を作る
- 3.0.13. PHP Enumについて
- 3.0.14. 2022-08-16 log_errors を off としているのに、 PHP のエラー出力が行われる
- 3.0.15. Python,JavaScript,PHP,Ruby,Perlのインストールの比較
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_vignette2022/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)サイトを構築していますが、特にメンテナンスで特定の修正箇所を思い出すことが困難になってきた。昔であれば、瞬時に思い出すことができたのだが。
記憶の脳内ホルモンの低下が原因か。
情けない。目を閉じて、ソースコードをイメージしてみるが、そのソースコードが浮かんで来なくなった。これから、記憶力復活のトレーニングを検討してみたい。# 事例
開発ツールを開いて、ソースコードを眺めていれば、徐々に特定のコードの箇所を記憶を頼りにたどって行けるのだが、一旦、目を閉じて思い出そうとしても、何も出てこない。これが困る。
元プログラマーとしては、プライドが許さない。
何とか、目を閉じていても、ソースコードがスラスラと目に浮かんでくるようにしたい。
少しづつ、関連付けて行けば、何とか、思い出すことはできる。
あのボタンのイベント処理はどこにあったかとか、あのポップアップのPHPスクリプトはどこへおいたか。あのdbテーブルの更新はどのモジュールで行っていたか。
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
PHP Enumについて
# 概要
– PHPのEnumについてちゃんと理解してまとめる
# Enumって?
– 取りうる値を限定した独自の型を定義できるクラスに似ているもの。
– 似ているだけでクラスではない。クラスやオブジェクトの上に構築されている。# Enumのルール
– コンストラクタ、デストラクタは書けない。
– 継承をすることも継承されることもできない。
– プロパティーは許可されていない。
– caseをcloneすることはサポートされていない。
– 使う前に宣言しないといけない。
– newを使って直接インスタンス化できない。
– `__call`と`__callStatic`と`__invoke`以外のマジックメソッドは許可されていない。
– `__CLASS__`と`__FUNCTION__`以外のマジック定数は許可されていない。
– インターフェースの実装可能
– アトリビュートを深する事が可能
– 定義可能メソッド
– public
– private
– protected
– 定義可能staticメソッド
– public
– pr
2022-08-16 log_errors を off としているのに、 PHP のエラー出力が行われる
関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた