- 1. 正規表現の修飾子
- 1.1. BeanstalkでLaravelのシンボリックリンク設定を起動時に済ませたい
- 1.2. 23歳フリーターが、ライブ会場の座席検索サービスを作ってみた
- 1.3. Kali Linux2022.1 でハッキングラボをつくってみる10 ウェブアプリハッキング3 bee-boxの導入とPHPコードインジェクション攻撃
- 1.4. namespaceってなんやねん
- 1.5. 【PHP】echoとprintの違い。シングルクォーテーション ‘ とダブルクォーテーション “の違い。
- 1.6. [Laravel6] Blade構文を素のPHPと比較して理解する
- 1.7. 【PHPStan】 “no value type specified in iterable type array”の解決方法
- 1.8. [cURL] PHPにてAWSから外部へPOSTする
- 1.9. 【PHP】ファイルのアップロード方法
- 1.10. 【PHP】fgetcsv()関数でCSVを読み取る方法
- 1.11. 【PHP】fopen()関数とfgets()関数を使い、ファイルを開いて取得する流れ
- 1.12. 通貨強弱チャートの見方考え方
オブジェクト指向とは(前編)
オブジェクト指向に関して勉強しており、学んだことをアウトプットしていきたいと思う。
まず、オブジェクトとは「もの」という概念であり、プログラミングの世界では、「プログラミング」するのに、便利な単位だと定義できる。
たとえば、今から下記のようなコードを自分なりに説明してみる。
“`php:lib/oop_poker/Game.php
class Player
{
function __construct(private string $name)
{
}
function getStart()
{
$player = new Player($this->name);
$cards = $player->drawcards();
return $cards;
}
}
“`“`php:tests/oop_poker/GameTest.php
たびれぽ福分け取材班
https://tabirepo.square.site/
https://www.shuminoengei.jp/?m=pc&a=page_mo_diary_detail&target_c_diary_id=949263
たびれぽ福分け取材班 たびれぽオンライン 事業再計画
http://www.tabirepo.online/
ChromebookにPHP開発環境を構築(Xampp)
# 概要
– Chromebookのlinuxコンテナ(crostini)内にphpの開発環境を構築
– 講義用の環境構築なのでXamppを使用(本番用にはdockerでlampを別途準備(本記事には記載なし))
– 少々分かりづらい部分もあったので備忘として作成
– 初心者の方の役に立てば尚良し前回:[chromebookにNode.js環境構築](https://qiita.com/kamekame85/items/638e44450c7f909d7c1f)
## 前提
– linuxコンテナ作成済み
– VS Codeインストール済み
– あくまで開発用
– linuxコンテナ, VS Codeについては[こちら](https://qiita.com/kamekame85/items/638e44450c7f909d7c1f)を参照ください## 目次
1. [XAMPPとは](#xamppとは)
1. [linuxコンテナ内にchromiumをインストール](#php開発時のローカル確認用にlinux内にブラウザをインストール)
1. [php開発環境を構築](#php
GCEにDBを利用したHPを移行する(作成中)
運営していたHPをXFREEからGCE(Google Compute Engine)に移行することにしました。
理由は、
・XFREEでは制限が多い(SQL開発ツールでDB操作ができなかったりする)、
・HPの操作中に止まることがある
・GCEというかクラウドを使っているというのが、なんだかかっこいい
からです。
AWSも考えましたが、どうやっても永久無料で運営していくのが無理なので止めました。
この記事では、移行の際に得た知見をまとめます。# 環境
“`
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
“`# ブラウザでWebページを表示する
GCEのインスタンスは作成前提で進めます。## PHP
PHP7.0をインストールします。
PHP7.0をインストールするためにはRemiリポジトリが必要で、
Remiリポジトリからソフトウェアをインストールするにはepelリポジトリが必要です。
epelリポジトリはインストール済みのため、Remiリポジトリをインストールします。
“`
$ su
[Laravel6] 簡易的な機能を作ってCRUDの全容を掴む
## 作るもの
– お問い合わせフォーム
– REST(CRUD機能の作成)## 作成の流れ
– Model → Controller → Route → View## Read & Create
– Model
1. まずDBのテーブル及びカラム作成から行っていく– `php artisan make:model Models/〇〇 (-mc)` -mcとつけることで、マイグレーションとコントローラーファイルも用意してくれる
– 実際のマイグレーションファイルの記述は以下のようになる
“`php
public function up()
{
Schema::create(‘contact_forms’, function (Blueprint $table) {
$table->bigIncrements(‘id’);
1 : データベースなしでブラウザチャット作ったけど質問ある?
### 2: >>1 なんでデータベースなしでやったの?
#### 金かかるからw
#### 有料系のやつじゃないとクッソ重いしだるいからやて### 俺、佐藤裕也(`ェ´)ピャー
#### お金がないので今日も、無料のブラウザサーバーを謳歌する
#### というわけでw replitっていうブラウザエディタ使ってんだけど、無料でサーバー使えるんだよねw
#### で、せっかくここまで有料を華麗に回避してきたのに、今更有用のデータベース使うのアホらしいんだよねw
#### じゃあもう自分で擬似データベース作ろうとwっていうわけなんだお## 仕組みのお話。
#### `POSTでデータを送信 → phpで、ファイルに保存。(txtでもなんでもいいお) → 非同期通信でリアルタイムで表示するためにajaxで表示`
#### みたいな感じだおw 仕組みはEZ## ソースコードとかとか
#### まあ基本コードって感じかな?これベースにしていくよ。
##### POSTのPHP register的な? 送信先の処理だけどw
“`php:post.php
//日本語が文字化けしな
amazon linuxでcomposer updateが出来ないエラーの解決法
composer installは出来たのにupdateが出来なくて数日間悩んだので、備忘録的に書いていきます。
:::note info
**環境**
Windows10(Puttyコマンド使用)
PHP7.4.28
Apache2.4.53
:::
:::note info
**前提**
・Apache, PHP, composerのインストールが終わってる
:::## 問題と試したこと
~~~
composer update
~~~
と実行すると、はじめはこんな感じのエラーが。。~~~
PHP Warning: Module ‘curl’ already loaded in Unknown on line 0
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 0 installs, 10 updates, 0
PG見聞録 ~PHP編 正規表現その2-1~
昨日はデジタルデトックスデーということでPCにもスマホにもほとんど向かわず
勉強もApexもせずわんこそば106杯食べてお腹いっぱいになった1日でした。
頑張ればまだいける…‼ってなったところでで止めるあたり良くも悪くも大人になったなと思いました笑正規表現の修飾子
ということで正規表現の修飾子についてすこしおさらいしていきます。
修飾子とは、正規表現で使う動作オプション。
正規表現の末尾につけることで色々と結果を指定できます。
主な修飾子がi,m,s,x,uですね。まずi修飾子は「大文字小文字を区別しない」という意味です。
検索したい文字列に大文字小文字が混在するとa-zA-Zとかになるのかと思いますが、
末尾にiとつけることでその違いを無視してくれます。次にm修飾子は、「マルチラインモード」を意味します。
例えば“`php
BeanstalkでLaravelのシンボリックリンク設定を起動時に済ませたい
Beanstalkでは「.ebextensions」ディレクトリ配下に予め準備しておいたファイルをもとに、起動時に自動でコマンドを打ってくれます。
“`config:set-timezone.config
# /.ebextensions/set-timezone.configcommands:
set_time_zone:
command: ln -f -s /usr/share/zoneinfo/Japan /etc/localtime
“`こんな感じ。
その勢いでLaravelのシンボリックリンク設定を自動化したかったんですが、そこで少し詰まったんで記事として書いておきます。
# うまく行かなかったケース
最初はこんな感じで記載していました。
“`config:starage-link.config
# /.ebextensions/starage-link.config
# シンボリックリンクを作成container_commands:
storage_link:
command: “php artisan storage:l
23歳フリーターが、ライブ会場の座席検索サービスを作ってみた
今回、ポートフォリオとして**ライブ会場の座席検索サービス**を作ったので、少し解説します。
# 目次
[1.作った経緯](#1-作った経緯)
[2.実際のページ](#2-実際のページ)
[3.使用技術](#3-使用技術)
[4.工夫した点](#4-工夫した点)
[5.苦労した点](#5-苦労した点)
[6.これからの課題](#6-これからの課題)# 1. 作った経緯
僕はよくアーティストのライブに行くのですが、チケットの席番号を見て毎回思うことがありまして、**「自分の席の位置がよくわからない」** ということです。
**特にスタンド席などは、会場全体を囲むように色々な方向に席があり、なおかつ 2階,3階とフロアも分かれているので、会場内で迷ってしまうこともあると思います。**
そんな悩みを解決するために今回作ったのが、**ライブ会場の座席検索サービス**です。
意外とありそうで無いサービスだったので、**だったら作ってしまおう!!** ということで作ってみました。# 2. 実際のページ
[ライブ座席検索](http://www.search-venue-seat
Kali Linux2022.1 でハッキングラボをつくってみる10 ウェブアプリハッキング3 bee-boxの導入とPHPコードインジェクション攻撃
# はじめに
「ハッキング・ラボのつくりかた」p.624-631を参考に、KaliLinux2022.1で検証してみた記事です。:::note alert
注意事項
記事で紹介されている行為を他人や団体、インフラなどの許可を得ずに行った場合、犯罪となる可能性が有ります。
あくまでも、記事の内容は情報セキュリティの学習です。読者様の所有・管理の機器、システムでのみ実行してください。
また、読者さまのシステムにトラブルが起きたとしても、私は責任を負いかねます。
:::# BWAPP bee-boxとは
同書p.624より(URLはリンク切れのため改変)
>bWAPP(buggy web application)は、主にWebアプリのセキュリティを学習するためのWebアプリです。100を越える脆弱異性を備えており、網羅的にWebアプリのハッキングを学習できます。
OWASP top10プロジェクト(https://www.owasp.org/ )の脆弱性についてもカバーされています。>bWAPP bee-box(bee-boxと略す)は、bWAPPがインストールされているUbun
namespaceってなんやねん
# ざっくり言うと
中身は全然違うけど名前が同じファイルは同じディレクトリに複数枚共存することはできない(めっちゃ当たり前やんけ)。
PHP(やLaravel)でも同様に、中身が別で名前が同じメソッドやプロパティは同じファイル内に共存することはできない。
これを解決するために使うのが「名前空間namespace」やで。
# 前提や問題点
例えば2人の「潤」という名前の人が同じ部屋にいたとする。
そこにスタッフが入ってきて「潤さん、出番です!」と言った。
当人も周りの人もどっちの「潤」さんが呼ばれたのか、これだけだと全く分からない状態が起きる(目線とかは一旦抜きにして)。
# 区別できるようにしたらええやん
これを解決するために、同じ部屋にいる2人の潤さんに苗字を導入しようと番組ディレクターが言い出す。
イケメンな方の潤さんには「松本」という苗字を与えて、面白い方の潤さんには「名倉」という苗字を与えよう!
これで番組スタッフも「松本潤さん、出番です!」と言えば、どっちの「潤」が呼ばれたかすぐに分かるし、石原さとみとの大事なキスシーンなのに面白い方の潤がキスしなくて済
【PHP】echoとprintの違い。シングルクォーテーション ‘ とダブルクォーテーション “の違い。
# 1 調査
—
echoやprintは一番初めに覚える命令だが、違いが判らずどちらでも問題ないと思っていた。シングルクォーテーションとダブルクォーテーションについても同じである。公式マニュアルで調べると、echo、printの解説は見つかったが、シングルクォーテーション、ダブルクォーテーションは見つからなかった。探し方をご存じの方は、教えて頂けたらと思います。
[echo](https://www.php.net/manual/ja/function.echo.php)
[print](https://www.php.net/manual/ja/function.print.php)#2 echoとprintについて
—
公式マニュアルによると、
– echo: 1 つ以上の文字列を出力する
– print: 文字列を出力する
となっていた。更に例文があり違いを理解できた。例文を少し変更し出力してみる。
~~~echo1.php
~~~
~
[Laravel6] Blade構文を素のPHPと比較して理解する
## 変数の出力
⚫ php“`bash
または = $test; ?>
“`⚫ blade.php
“`bash
{{ $test }}/*
{{ }}で囲む事で出力出来ます。
これによりXSSの対策も同時に行ってくれます
*/
“`## foreach の場合
※$array = [ ‘ hello ‘ , ‘ world ‘ , ‘ hoge ‘] のような配列が定義されているものとします。⚫ php
“`bash
echo $value;
“`⚫ blade.php
“`bash
@foreach ( $array as $value )
{{ $value }}
@endforeach
“`– 条件の書き方だけ一緒
## if 文
⚫ php“`bash
echo
【PHPStan】 “no value type specified in iterable type array”の解決方法
やりたいこと
—————
“no value type specified in iterable type array”を解消したいエラー内容・原因
—————
エラーの原因は2つ
* getInputsの$argvに代入されている配列の構成要素が明示されていない
* 戻り値の配列の構成要素が明示されていない“`php:コード
const SEPARATE_EACH_2 = 2;function getInputs(array $argv): array
{
$inputs = array_slice($argv, 1);
return array_chunk($inputs, SEPARATE_EACH_2);
}$inputs = getInputs([‘test’, 10, 50, 80, 100]);
“`
“`phpstan:結果
5 Function getInputs() has parameter $argv with no value type specified in
[cURL] PHPにてAWSから外部へPOSTする
CRMシステムのHubSpot導入にあたり社内システムで活用しているAWSから売上実績を定期的にHubSpotへAPIで投げる案件があり、Node.jsで仕組みを作った矢先、導入環境に合わず(?)phpで書くことに。phpでバックエンドと思ったものの案外すっきり出来たので、忘れないうちに~~メモ書き~~投稿。
# MySQLへの接続
mysqlに接続。そして取ってきたデータをAPI用の配列にプッシュ。HubSpotのAPIは10件/回の上限のため10件に達したらAPIで投げるようにする。
“`PHP:php
connect_error) {
echo $cn252->connect_error;
exit();
} else {
$cn252->set_charset(“utf8”);
}$sql = “SE
【PHP】ファイルのアップロード方法
PHPを学習中です。
ファイルのアップロード方法について、備忘録として残します。### 1. 【HTML側での処理】データ送信フォームを作成する
“`php:form.php
HTML内でのPHP処理
“`上記コードを記述すると、このように表示されます。
関数でCSVを読み取る方法
PHP7技術者認定初級試験に向けて学習中の身です。
備忘録として残します。### 1. csvファイルを作成
“`php:sample.csv
1,”りんご,バナナ”,フルーツ
2,オレンジ,フルーツ
“`fgetcsvを使えば、こうしたCSVのデータを配列として読み込むことができます。
まずは1行だけ読み込む方法から。
読み込んだ値をvar_dump関数で出力します。### 2. newfile.phpファイルを作成
“`php:newfile.php
“`### 3. 実行結果(コンソール)
“`
array(3) {
[0]=>
string(1) “1”
[1]=>
string(19) “りんご,バナナ”
[2]=>
string(12) “フルーツ”
}
“`
1行目のデータがカンマ区切りで配列として出力されました。
でも1行目の
【PHP】fopen()関数とfgets()関数を使い、ファイルを開いて取得する流れ
PHP7技術者認定初級試験に向けて学習中の身です。
備忘録として残します。### 1. txtファイルを作成
“`php:test.txt
===== ===== ===== ===== =====
これはテスト用のテキストファイルです
===== ===== ===== ===== =====
“`### 2. open.phpファイルを作成
“`php:open.php
“`### 3. 実行結果
“`
===== ===== ===== ===== =====これはテスト用のテキストファイルです
===== ===== ===== ===== =====
“`fopen(“test.txt”, “r”);
この部分は、第一引数にファイル名、第二引数にモードを記載しています。
通貨強弱チャートの見方考え方
# 通貨強弱チャートについてよく質問されるので回答のメモ
自称世界一使いやすい通貨強弱確認ツールを開発しています。
https://fx-labo.app/strength/?t=todayよくtwitterなどで質問をもらうので回答用にメモを残します。
## Question
通貨強弱の計算式は?
単位は?
起点を変えると全然異なるグラフになるのはなぜ?—
## Answer
計算式は長くなるので割愛
起点となるある時刻からの相対的な変化率です。
移動平均や取引量は一切考慮していない起点の価格とその時点の価格だけの比較です足し合わせるといつでもゼロになります。
相対的なものなので単位はありません。## 考え方
ある起点のすべてのペアの値を0として
起点時を
“`
ドル円 110円
ユーロ円 120円
ユーロドル 1.00ドル
“`
:::
として次のタイミングで
“`
ドル円 100円
ユーロ円 130円
ユーロドル 1.10ドル
“`となっていたとしたら
“`
ドル円だけ見ると円高→円強くなった
ユーロ円だけ見ると→円弱くなった
ユーロドル