PHP関連のことを調べてみた2020年01月03日

PHP関連のことを調べてみた2020年01月03日
目次

【AWS】Elastic BeanstalkでLinux 用 Windows サブシステムを使用せずにLaravelアプリケーションをデプロイする

Elastic BeanstalkでLinux 用 Windows サブシステムを使用せずにLaravelアプリケーションをデプロイ方法です。
本手順では、代わりに、フリーの圧縮・解凍ソフトを使用しています。

## 環境
* PHP:バージョン7.3(Elastic Beanstalk)
* Laravel:バージョン6.9.0
* OS:Windows10(ローカル)

## 手順

[Elastic Beanstalk への Laravel アプリケーションのデプロイ | aws](https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/php-laravel-tutorial.html)
に従って実施します。
タイトルの件を以下に、補足事項としてまとめます。

## 補足事項
手順では、Linux 用 Windows サブシステムを使用するとありますが、以下の通り実行すればインストール不要です。

### 1. Laravelプロジェクトの作成
ローカル環境でコマンドプロンプトを起動して、任意のパスでコマンドを実

元記事を表示

FFmpegを使ってルパン三世タイトルジェネレーターをPHPで書いてみた

![output.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560692/28ad0dbd-c6d5-5cb7-472d-f839c448ee6c.gif)

新年も明けて2020年になりましたね!

話は飛びますが、年末辺りからTwitterのエンジニア界隈でルパン三世を模した動画を幾度と無くTLで見ました!
ググって同様の動画を作成するジェネレーターを幾つか確認しましたが、せっかくならPHPで動画作成したい!
ということで開発しました!

“※都度、リファクタを加えながら開発してたので5時間くらいかかりましたw“
“※出力結果は音付きのmp4ファイルです“

[ルパン三世タイトルジェネレーター](https://github.com/huuyafwww/lupin-generator)

## 環境

### 動作確認済み環境

– macOS Catalina : “ver 10.15.2“
– PHP : “7.3.1“
– Web Server : “Apache“

元記事を表示

PHPログイン機能

# PHPによる新規登録からログイン・ログアウトまで

大まかな流れとして
◆登録画面でユーザー登録
 →すでに存在しているユーザーではないか
◆ログイン処理
 →入力された情報がDBと一致すればログイン
◆ホーム画面表示
 →ログインか非ログインで表示の変更

##新規登録
フォームの用意

“`signup.php

新規会員登録

//処理を行う宛先を指定

マンション売却査定コンテンツをphpで作成する

この記事では、WordPressで作成した不動産サイトにマンション売却査定のコンテンツを設置します。コピペで簡単に設置できるのでご利用ください。

マンション売却査定コンテンツ

下記の「マンション売却査定コンテンツ」を設置できます。

マンション売却査定コンテンツ作成の手順

  1. マンション売却査定コンテンツのphpファイルを作成
  2. 作成したphpファイルを投稿ページや固定ページで、「ショートコード」で読み込むことができるように「functions.php」にコードを追記する。(注意:念のため、作業前に「functions.php」のバックアップをして下さい。)
  3. マンションの投稿ページを作成して、カスタムフィールドとショートコードを入力する。

マンション売却査定コンテンツのphpファイルを作成する

下記のコードをコピペして、使用しているテーマのテーマファイルがあるフォル

元記事を表示

PHP for文まとめ

# 目的

– PHPにおけるfor文の書き方をまとめる

# 書き方の例

– for文はループ条件に応じてループ処理を実行する。
– 回数を指定したループ処理に使用する。
– 下記にfor文の書き方の例をまとめる。

“`php
for (ループ条件に使用する変数の初期化; ループ条件; 変数の更新){
ループ処理で実際に実行したい処理;
}
“`
# より具体的な例

– 変数`i`に初期値として1を格納する。
– 変数`i`が10に達するまで処理をループさせる。
– ループ処理では「変数iには現在nが格納されています。」と出力される処理を記載する。
– 変数`i`は一回のループごとに2足される。
– 下記に前述の条件で処理を繰り返すfor文を記載する。

“`php
for ($i = 1; $i <= 10; $i++){ echo "変数iには現在{$i}が格納されています。"; echo '
‘;
}
“`

# 強制的にループ処理を抜ける

– 前述の処理でfor文のループ条件はそのままに、$iに5が格納された時にループ処理内で強制的に処理を中

元記事を表示

Luhnアルゴリズムについて学んだのでまとめた

# Luhnアルゴリズムについて学んだのでまとめた

Webアプリ開発をしていると招待コードやクーポンコード等の文字列を作成するという機能が必要になるケースが有るかと思います。
こういったケースでは、**打ち間違いによって想定外のコードが入力される**(悪意のある入力は除きます)のはできる限り避けたいと思うのですが、
そういったケースに適した誤入力検知アルゴリズムがLuhnアルゴリズムです。

先にアルゴリズムの特徴をまとめます。

– 1桁の誤入力を検知できる
– 隣り合う桁の順番を誤った場合も一部検出できる
– 実装がシンプル
– 実際に、クレジットカード番号や海外の社会保険番号等の作成・検証に利用されている

また、PHPにてコードの作成・検証の実装もしました。
特に作成に関する実装はあまりなかったように思えたためコードを記載しました。

今回は簡単のため、作成する文字列は数値だけとしますが、
これは簡単に拡張できて、文字列に対しても適用することができます(*Luhn mod N*アルゴリズム)。

## Luhnアルゴリズムって?

Luhnアルゴリズムは[チェックサム方式]

元記事を表示

PHP マジックメソッドと遅延静的束縛

## マジックメソッド
– インスタンスがある特定の条件になったときに、明示的にcallしなくても暗黙的にcallされるメソッド。
– 名前の先頭2文字がアンダースコア(__)になっている。
– 必ずpublicで定義する必要あり。
– マジックメソッドの引数は参照渡しはできない。

“`php
values[$name] = $value;
}

//アクセス不能なプロパティにisset()を実行

元記事を表示

【PHP】PHPの型宣言は弱い型付け

#型宣言とは
次の例のように、関数に引数を与えるような場合などに引数の型に**制約**を与えることができます。
正しくない種類の型が渡された場合、`Fatal error`が発生します。

“`php

元記事を表示

Htmlspecialcharsでいたずら(XSS)を防いでみた

#前回のあらすじ
・if文を使ってアンケート内容に不備があったら、注意文を表示させたり進むボタンが出ないようにさせたりしたぞ
#今日やったこと
・$変数=htmlspecialchars(変数);
と入力したら、アンケート内にHTMLタグとか仕込んでみても(これをクロスサイトスクリプティングと言うらしい)文字列として処理されるようになった!
(今回の教科書『いきなりはじめるPHP ワクワク・ドキドキの入門教室』)
#感想
とにかく、入力情報の無毒化はセキュリティ対策で必要な処理なんだなーと思った

#次回の目標
データベースにアンケート情報を保管できるようにしよう!

元記事を表示

アンケートシステムでif文学んだ

#前回のあらすじ
・ローカル鯖構築(XAMPP3.2.4にて)
・前のページからデータを受け取る作業を学んだ
・if文で入力に不備があったらお知らせ文を表示させてみた
#今日やったこと
・if文を利用して、アンケートに空欄があったら進むボタンが表示できない設定にした
・history.backを使って戻るボタンを作成したら、入力した内容を記憶させたまま入力フォームに戻ることができた
(参考教科書『いきなりはじめるPHP ワクワク・ドキドキの入門教室』)
#感想
if文って便利!入力する項目が多くなったら、フラグ制御というものを使うらしいけど・・・後々学べるのかしら

#次回の目標
引き続き、入力するプログラムをしっかり見つつ、理解していこう

元記事を表示

Heroku masterへの道 buildpack

Dockerは、まんまOSそのものから構築できる。
Buidpackは、OSが入った状態の後から構築できる。

ので、Buidpackだとconfigをあれこれして、起動すればkusanagiに近づけるはず。
で、やってみた。
起動の流れとしては、

Procfile -> app_boot.sh -> nginx みたいな感じで、

中身は、

Procfile
web: sh support/app_boot.sh

app_boot.sh
vendor/bin/heroku-php-nginx \
-c support/nginx.conf.php \
-C support/nginx.inc.conf \
-f support/php-fpm.conf \
-F support/php-fpm.inc.conf \
-i support/php.ini \
public.built/

な感じ。このオプションと、コンフィグのどこまで書いて良いの?が公式サイト内には見つからなかった。
で、オフィシャルのBuidpackをガチ読み。あった。

が、下記

元記事を表示

【PHP+SQLite3】恐竜登録ツール2

[前回](https://qiita.com/knowledge87sun/items/67632f27f6a56e301047)の記事の内容を実装してみた。

###共通処理のプログラム

“`php:commom_dino.php
prepare($qry0);
//パラメータをセット
$result3->bindparam(1,$val1);
$result3->bindparam(2,$type1);
$result3->execute();
//検索結果を配列に格納する
$select_data=$result3->fetch();
return $select_data;
}
//クエリ実行して得られる全データ
function get_AllData($db0,$query0)
{
$result_a=$db0->prepare($qu

元記事を表示

Laravel5.8+fullcalendar v4+ajaxでDBと接続しeventを表示・操作

# 前置き

Fullcalendarをlaravelで実装している記事がネット上に少なかったように感じたので紹介します。

フロント側だけでのイベント操作は、ほとんどコード書かなくてもできますが、それだけではページを更新するたびにリセットされてしまいます。したがって今記事では、ajaxでデータを受送信し、DBの値を取得・操作してみます。

具体的には
・DBから値を取得してカレンダーにイベントを表示
・日付をクリックするとイベント追加
・イベントをドラックアンドドロップで日付変更
を実現します。

スクリーンショット 2020-01-01 0.43.04.png
↑完成イメージ↑

# 環境
環境を紹介
## 各バージョン
OS : macOS Catalina 10.15.1
PHP : 7.3.1
mysql

元記事を表示

PHP 配列まとめ

# 目的

– PHPで配列に値を格納して取り出す方法をまとめる

# 書き方の例

– 配列に格納し任意の値を出力する方法を記載する。

“`php

$変数A = array(“値A”, “値B”, “値C”);

//値Aを出力
echo $変数A[0];

//値Bを出力
echo $変数A[1];

//値Cを出力
echo $変数A[2];

//配列の末尾に値Dを追加するしたい時
$変数A[] = “値D”;

//値Aを値Eで上書きたいとき
$変数A[0] = “値E”;
“`

元記事を表示

PHP 暗号化、ハッシュ関数

##ワンタイムパッド
– 平文と乱数でXOR論理演算するだけの暗号。
– 情報理論的安全性を持つ暗号方式である。
– 一度使用した鍵(乱数)は、廃棄するのが原則である。
– OTPの使い回しで解読された事例で、ベノナ文書がある。
– もっとも鍵の配送問題に難があるため、実用的でない。

“`php

元記事を表示

Illuminate \ Http \ Exceptions \ PostTooLargeException No message を改善

laravelを勉強中に画像をアップロードすると以下のエラーMSGが表示され困っていた。

“`
Illuminate \ Http \ Exceptions \ PostTooLargeException
No message
“`
色々調べた結果どうやらphp.iniに記載されているpost_max_sizeを超えてしまったための模様
php.iniでファイルのサイズを設定できるらしいため
まずターミナルでpost_max_sizeを確認してみることに

“`
$ php -a
$ echo ini_get(‘post_max_size’);
8M
“`
8Mがまでしか許可されていなかったためphp.iniを編集しにいく
まずはphp.iniがどこにあるか確認。

“`
$ php –ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /etc/php.ini
“`

/etcの中にあるphp.iniを $sudo vim php.iniで開き編集

記述を以

元記事を表示

DockerでPHP7.3(モジュール版)環境作ろうとしてハマった記録

※ハマった記録のわりにエラーログとってないので一切エラーログが出てきません:stuck_out_tongue_winking_eye:

# 動かしたい環境

CentOSにApacheいれてPHP7.3をモジュール版で動かしたい。←ここ!
MySQL5.7もいれたい←ここは今回は触れてません

# 事始め

約1年前ぐらいに作ってたdocker-composeをビルドしようとしたらエラー出た(たしか)

で、当時のDockerfile。

“`dockerfile:Dockerfile

FROM centos:latest

MAINTAINER docker-web

# update yum
RUN yum -y update
RUN yum -y install yum-utils
RUN yum clean all

RUN yum -y install epel-release
RUN yum -y groupinstall “Development Tools”
RUN yum -y install wget git vim zsh curl

# install r

元記事を表示

Docker(Alpine) + Laravel 環境を PHP7.4 にアップデートする際に oniguruma パッケージのビルドエラー

PHP7.4にアップデートしようとしたらDockerのビルド中にエラーが発生しました。

## 環境

– Alpine 3.11
– PHP 7.4

## ビルドエラー

“`
checking for oniguruma… no
configure: error: Package requirements (oniguruma) were not met:

Package ‘oniguruma’, required by ‘virtual:world’, not found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables ONIG_CFLAGS
and ONIG_LIBS to avoid the need to call pkg-config.
See the pkg-config man

元記事を表示

WindowsのWSLにLAMP環境をインストールしてLaravelを動かした時のメモ

# LAMP環境とは
Linux + Mysql + Apache + PHP の、webの一般的な構成。今回はLinux以外をインストールした。

macはこちら
[Macに\(L\)AMP環境を構築してlaravelを動かした時のメモ \- Qiita](https://qiita.com/ebiyuu1121/items/daf1073a7aeebc480534)

# 参考
https://qiita.com/mollinaca/items/60c54b7767a49c1e3e51

Windows10 WSLのUbuntuにLAMP環境を作ってWordPressをインストールする(前編)


https://qiita.com/diconran/items/1eca0e0792f4ce1930c5

# PHPのインストール

“`sh
$ sudo apt install php
“`

ここで、aptが404エラーを起こしていた。サーバー情報が古かったようで、

“`sh
$ sudo apt update
$ sudo apt upgrade
“`

を実行して再試行したらインストールできた。

#

元記事を表示

【MAMP】MAMP環境構築する方法

# ①MAMPのダウンロード
MAMPのホームページにアクセスし、MAMPをダウンロード
[MAMP](https://www.mamp.info/en/downloads/)

# ②MAMPアプリを開く
Finderからアプリケーション→MAMP→MAMP.appを起動

# ③サーバを起動
「Start Servers」ボタンを押下

# ④プロジェクトのディレクトリ作成
アプリケーション→MAMP→htdocs配下に対象ディレクトリ作成

“`
$ cd /Applications/MAMP/htdocs
“`
“`
$ mkdir php
“`

# ⑤PHPファイル作成
③で作成したディレクトリ配下にphpファイルを作成

“`
$ cd /Applications/MAMP/htdocs/php
“`
“`
$ touch sample01.php
“`

# ⑥PHPファイル編集

作成したPHPファイルにソースコードを書く

# ⑦Webブラウザからアクセス
http://localhost:8888/対象ディレクトリ/対象ファイル にアクセス

元記事を表示

OTHERカテゴリの最新記事