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

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

見えない文字が隠れているのを発見するコード

# 関数
“`php
function changeUnicode($utf8_str){
//入力をUTF-32に変換
$utf32_str=mb_convert_encoding($utf8_str,’UTF-32′,’UTF-8′);

for($i=0;$i 00003053|こ
[1] => 00003093|ん
[2] => 0000306b|に
[3] => 00003061|ち

元記事を表示

PG見聞録 ~PHP編 正規表現2-2~

気分転換にgithubのプロフィールをなんかカッコイイ感じに編集してみました。
https://github.com/yukio113o
カスタマイズってつい夢中になるしワクワクしますよね。おかげで寝不足です。

参考記事:GitHubプロフィールをクールにカスタマイズ
https://qiita.com/rised/items/f3385b589149dcf34a26

では正規表現の修飾子xや埋め込みフラグについて書いていきます。

x修飾子

正規表現を整形してくれる修飾子です。
空白やコメントを付与できるようになり、可読性が向上します。
メールアドレスを検索する正規表現は

(“/[a-z0-9.!#$%&’*+\/=?^_{|}~-]+@[a-z0-9]+(\.[a-z0-9-]+)*/”

となりますが、最後にxを付与しますと

(“/[a-z0-9.!#$%&’*+\/=?^_{|}~-]+ #local
@ #delimiter
[a-z0-9]+(\.[a-z0-9-]+)*

元記事を表示

topic : About 1 week before the release of PHP 8.2 1st. alpha version

– PHP 8.2 α版が、計画通り 2022/06/09 に行われるようです。ということで(?)これの私的な “Tracking & bookmark ::Qiita”なエントリーです。
– PHP 8.2 GAまでのタイムテーブル
– https://wiki.php.net/todo/php82
– [Christoph M. Becker](https://github.com/cmb69) による、[externals.io への告知エントリー](https://externals.io/message/117595)

元記事を表示

私(PHPド初級者)が陥った、セッション変数が消える現象の「盲点」

# 結論ファースト
先輩のコードでは大文字で書かれているものは、自分も大文字で書いたほうが良い。
セッション変数は`$_session[‘xxx’]`ではなく`$_SESSION[‘xxx’]`にすべき。

# 細かいストーリー(読み飛ばしてください)

プログラミングの練習のために、簡易的なSNSを作る機会ってありますよね。
そうすると、絶対に「ログイン機能を実装したい」と思うはず。

ログイン機能を実装するうえで初心者が悩むポイントといえば、やはり「セッション」。
**セッション変数を定義したはずなのに、別ページにリダイレクトした瞬間に
Chromeくんから「undefined variableですよ!!」と叱られまくり**、
しばらくドツボにハマっていました。

夕方4時くらいに悩みはじめ、解決したのが夜の10時過ぎ。
~~途中、日曜劇場『マイファミリー』を見て、俳優さんってすごいなあとか感心してましたが、~~
実に6時間くらい、パソコンの前でうんうん唸っていました。

### よく紹介されている「解決策」
– `session_start();`はphpファイルの先頭of先頭に

元記事を表示

WordPressの基礎

# WordPress

[WordPress Codex 日本語版](http://wpdocs.osdn.jp/Main_Page)

# 【最重要】テンプレートタグ・関数

## テンプレートタグ

– ワードプレス固有のphpタグのこと

## wp_head,wp_footer

– それぞれheadの締めタグ、bodeの締めタグの直前に記述しなけらばならない

## 必須

“`php
~~~


~~~



“`

– wordpressのテーマとして認識してもらうために必須のテンプレートタグ

## 分岐、ループ系

“`php




“`

– have_postsはルwordpressクエリで

元記事を表示

オブジェクト指向とは(前編)

オブジェクト指向に関して勉強しており、学んだことをアウトプットしていきたいと思う。
まず、オブジェクトとは「もの」という概念であり、プログラミングの世界では、「プログラミング」するのに、便利な単位だと定義できる。
たとえば、今から下記のようなコードを自分なりに説明してみる。
“`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.config

commands:
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
または
“`

⚫ 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

元記事を表示

OTHERカテゴリの最新記事