PHP関連のことを調べてみた2021年02月24日

PHP関連のことを調べてみた2021年02月24日

スプレッドシートアプリを利用したデータベース編集を簡単実現

#はじめに
エキサイト株式会社(XTechグループ)エンジニア@masatomur?です。
先日、企画側からこんな要求がありました。
>_データベースって要はエクセルの表がいっぱい集まったようなものですよね?会員名簿の表なんかはエクセルの画面みたいに自由に編集したいんだけどできます?_

時間が許す限りデータベースとエクセルとの違いをとくとくと説教したいところでしたが、

– 万が一他のテーブルとのリレーショナルに問題が生じてもさほどクリティカルではないテーブルだったらまあいいかな
– データ管理も運用側に任せてしまえばこちらも楽かな

ということで、つくってみることにしました。(Oracleクライアントなんて使わせられませんから)
このような裏方のツールにはあまり手間をかけたくないし、webでデータ編集画面てすごくつくりたくないので、

1. **会員名簿テーブルのレコードをcsvファイルとしてダウンロード**
2. **Numbersで開いて編集〜csvファイルとして書出し**
3. **csvファイルをアップロードし会員名簿テーブルへインポート**

裏方、このくらい手間かかって

元記事を表示

PHP5上級試験/準上級試験の上級合格に挑戦(8) 5章配列中編

# 5章配列
+ 5章配列で要注意なところは、前編でもやった配列のイレギュラーな作り方、覚えなくてはならない配列に関する多数の関数、並べ替え処理。
+ 配列に関わる多数の関数は、多いだけではなく、複雑な処理をするハードな関数もある
+ 今回はその配列に関わる多数の関数についてほぼ全部ドリル形式で

## 要素作成・要素数取得

(1) 連続する整数、または文字列を値とする配列を作成する関数は?
(2) 配列の要素数を数える関数が2つあるがそれは?
(3) 配列に値を継ぎ足す関数は? 
(4) (1)を使って 1〜5,a~eと、それぞれ連続する整数と文字列を持つ配列$a,$bを作成するコードを記述せよ
(5) (4)を(2)を使って数えて正常に処理がされるか確かめよ(1つめの関数は数字配列に、2つめは文字列配列に)
(6) (4)で作った$aに「-」を継ぎ足して全体で要素数が10個になるようにせよ
 
 
 
 
以下解答
 
 
(1) range()
(2) count() , sizeof()
(3) array_pad()

“`index.php
//(4)
$a = ran

元記事を表示

LaravelをコンテナにしてLambdaでデプロイするのが超簡単になった2021年

[昨年同じ記事](https://qiita.com/umihico/items/64fcf159f68ebd866170)を書きましたが、完全に過去の遺物と化しており、現在の手順はまるで違います。LaravelをコンテナにしてLambdaにデプロイする記事は見つからないので、書きました。

デモサイトとgithubは以下です。
https://w0qw04g8sj.execute-api.ap-northeast-1.amazonaws.com/
https://github.com/umihico/laravel-lambda-docker-bref

### curlでプロジェクトが作成できる

パスが動的に設定可能で、そのままアプリ名となります。この場合`larademo`というフォルダが作成され、配下に展開されます。

“`bash
curl -s https://laravel.build/larademo | bash
“`

### docker-composeがデフォルトでパッケージされている。

即座にコンテナ内でcomposer, phpコマンドを使わせてくれ

元記事を表示

エラーチェック備忘録

条件

ログイン画面作成時

DBを作り終えた後、HTMLを構成させ、
このページにエラーがなかったら次に進めるという認識

値が空だった場合

POSTの値が空だった場合の関数を作成
blankの値をつける

“`PHP:join.php
if($_POST[‘name’] === ”) {$error[‘name’] = ‘blank’;}
“`

HTMLに記述

“`PHP:join.php
if ($error[‘name’] === ‘blank’):
/ここにエラーメッセージ/
endif;
“`

正しい値がほかの間違いで消されないように

“`PHP:join.php
value=”
“`

値の文字数が少ないとき

lengthとつけて上と同じようにHTMLに挿入

“`PHP:join.php
if(strlen ($_POST[‘passwo

元記事を表示

php パスワード まとめ

phpでパスワードを暗号化する場合使用すべきなのは、`password_hash()`
– password_hash()
強固な一方通行ハッシュアルゴリズムを用いて、新しいhashを生成する。
crypt()と互換性があってcrypt()が作ったhashはpassword_hash()でも使用可能らしい。
password_hash()はcrypt()のシンプルなラッパーであり、既存のパスワードハッシュと互換性があります。
password_hash() は、ソルトを指定しなかった場合にはランダムなソルトを作りますので
一般に、これがいちばんお手軽で安全なアプローチです。
`および PHP 7.0.0 以降でソルト・オプションは非推奨になりました。`らしい。

ここでは、password_hash()を使用することを推奨する。

– crypt()
文字列のhashを作成
salt(ソルト)オプションを使用しないと安全ではない。結果として、暗号化する際にはpassword_hash()を推奨。

ソルトとは?
暗号理論におけるソルトとは、ハッシュ処理の際に追加するデータのこと。
事前

元記事を表示

2バイト言語で作れるメールアドレス、もじアドレス

もじアドレスとは、どんなWebサービスですか?

2バイト文字、つまり日本語の文字だけをアドレスにしてメールを送れるサービスです。もっと分かりやすく言うと、コンタクトフォーム自体を任意の文字で検索できるようにした感じです。実質日本語、漢字だけのメールアドレスを持てるような雰囲気になります。twitter質問箱のリアル版というか、ペイパルやホワットスリーワーズにインスパイアされて作りました。

そもそもこの もじアドレス というのはなんの役に立つのですか?

行政とか民間の企業は、個人と音声通話のみでコンタクトをとろうとすることが多いと思います。連絡したい相手の携帯番号を知っているのであれば、簡単なショートメールの1つや2つくれればいいのにな。と思う反面、それをやろうとするとスマホ&スマホの二台間でのやりとりが必要になってくる為、個人対組織では難しいですよね。

人の名前だけでテキストが伝達できれば、色々と社会がもう少しスムーズに

元記事を表示

cliとphp-fpmでPHPのバージョンが異なるときのcomposer require方法

# TL;DR
php-fpmで使用されてるのと同じPHPバージョンを使用して`php composer.phar require`を実行する。

“`bash
$ php7.2 composer.phar require abraham/twitteroauth
“`

#環境説明
今回の環境では、cliはPHP8.0が使用されていて、

“`bash
$ php –version
PHP 8.0.2 (cli) (built: Feb 14 2021 14:21:15) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.2, Copyright (c) Zend Technologies
with Zend OPcache v8.0.2, Copyright (c), by Zend Technologies
“`

php-fpmではPHP7.2が使用されていた
![スクリーンショット 2021-02-23 11.03.16.png](https://qiita-image-store.s3.ap-nort

元記事を表示

【PHP】PHPでメソッドチェーンを実装する

# はじめに
Laravelとかクエリビルダを使っていると、以下ようなのコードをよく見かけると思います。

“`php
$user = DB::table(‘users’)
->where(‘name’, ‘John’)
->first();
“`

こちらのコード、大変読みやすくないですか??
“users“テーブルの“name“が“John“のレコードの1つを所得するというのが、直感で理解できます。
「呼び出し元が見やすいことコードを書くように心がけたい。」そう感じている、Webエンジニア2年生なのです。

# メソッドチェーン
今日は、“->“を使ってメソッドチェーンを実装しようというお話です。

“`php:Calculator.php
class Calculator {

private $result;

public static function create(int $int): Calculator {
return new Calculator($int);

元記事を表示

Guzzle最初の一歩

ただのメモ。最初の最初の一歩を踏み出す

“`php:GuzzleUtil.php
client = new Client([‘base_uri’ => ‘http://httpbin.org’,’timeout’ => 2.0,]);
}

public function retrieveGetResponse(): ResponseInterface
{
return $this->client->get(‘/get’);
}

public function getRespo

元記事を表示

TwitterのAPIで高知県の情報を取得してみた。

###TwitterのAPIで高知県の情報を取得してみた。
#####条件として
・高知県というワードがあるつぶやき。
・いいね、RTが10件以上、ポチられているツイートを拾う。

#####使用したライブラリ
TwitterOAuth

#####phpバージョン
php7.4.x

#####一言
このままの状態ではとても精度の良い高知県の情報を収集することは出来ない!
ので、工夫が必要です。

“`php:common/Twitter_config.php

元記事を表示

【コピペ】Docker ComposeでLaravel開発環境を構築その伍

前回、.envから環境変数を使えるようにして、かなり快適になった。
[【コピペ】Docker ComposeでLaravel開発環境を構築その肆](https://qiita.com/_bobtabo_/items/2afe45d78ca45951e64f)

だが、実際にこの環境を使って開発してみると色々と不便だったので修正する。

# マシンスペック
* Mac mini 2018
* macOS Catalina(10.15.x)
* Intel Core-i7 3.2GHz 6コア
* メモリ 32GB
* SSD 512GB

# Docker環境
* Nginx 最新版
* PHP(PHP-FPM) 7.4.x
* MySQL 8.x
* Composer 2.x
* Laravel 8.x
* Redis 最新版
* MailHog 最新版

# やること
* 不便なところを改修

# 補足
各環境を行ったり来たりするので、下記のように記載します。

“`
[Mac]$ MacのターミナルでMac内の作業
[PHP]$ MacのターミナルからPHPコンテナに接続して作業

元記事を表示

テーブルの作成 CREATE TABLE文

データベースの作成、テーブルの作成や登録は、SQLを使用してMySQLに命令する。

★テーブルの作成
※なお、ファイルからテーブル作成を行う方法もありファイルから実行できると何度も同じSQL文を毎回自動で実行できる。

CREATE TABLE文で行う。
テーブル名、列名。データ型、制約、テーブルオプションなどを記入。

“`
CREATE TABLE book_logs(
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255),
author VARCHAR(100),
status VARCHAR(10),
score INTEGER,
impressions VARCHAR(1500),
save_day TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) DEFAULT CHARACTER SET=utf8mb4;
“`

★テーブルの削除
DROP TABLE テーブル名;

★MySQLコマ

元記事を表示

PHPで暗号化した情報をGoogle Colab(Python)で復号する

Google Colabでインターネット上にある情報にアクセスできるのは便利だ。個人情報や機密情報をインターネット上に置くのはもってのほかだが、インターネット上に公開して問題ないが第三者に利用されたくないので暗号化しておくといった場合があるかもしれない。(というか、このあたりは自己責任で)

まず、PHPで暗号化して出力する方から。AES256(CBCモード)で暗号化する。

“`php
$message = “Hello”
$plaintext = sprintf(“%s %s”,date(“Y-m-d”),$message);
$cipher = “aes-256-cbc”;
$ivlen = openssl_cipher_iv_length($cipher);
$iv = openssl_random_pseudo_bytes($ivlen);
$key = “12345678901234567890123456789012”;
$ciphertext_raw = openssl_encrypt($plaintext,$cipher,$key,$options=OPENSSL_

元記事を表示

Laravel8 tailwindをsassで使う【備忘録】

***

####1. npmを使ってtailwindのインストール
※確かJetStreamをインストールすると一緒についてくるので不要な場合スキップ
※dockerを使用してる場合は適切なコンテナの中でnpmコマンドを使うこと(ローカルで叩いたり、間違ったコンテナで叩いてハマったので)

“`
$ npm install tailwindcss
“`

***

###2. 設定用ファイルを作成

“`
$ npx tailwind init
“`

プロジェクトのルートディレクトリにtailwind.config.jsが出来上がる

“`tailwind.config.js
const defaultTheme = require(‘tailwindcss/defaultTheme’);

module.exports = {
purge: [
‘./vendor/laravel/jetstream/**/*.blade.php’,
‘./storage/framework/views/*.php’,
‘./r

元記事を表示

【PHP8】プリミティブ型にメソッドを生やそうスカラーオブジェクト

PHPの第一人者Nikitaの[GitHub](https://github.com/nikic)を覗いていたら[なんか面白いもの](https://github.com/nikic/scalar_objects)を見つけました。

わりと前から存在しているみたいで、[最古のコミット](https://github.com/nikic/scalar_objects/commit/92c16762f742bc2a66db3d5bd17aaa63f3464a94)は2013/01/25です。
積極的な機能追加こそほとんどないものの、メンテナンスは続いていて、[PHPに合わせて着実にバージョンアップ](https://github.com/nikic/scalar_objects/commits/master)されています。
2020年11月にもPHP8対応のアプデがされています。

残念ながら[PHPの機能として取り込むつもりはない](https://github.com/nikic/scalar_objects/issues/20)ということで、あくまでエクステンションの立場に留まるよう

元記事を表示

Composer updateでmemory-limit-errorsになる場合の対処方法

## Composer update実行時のmemory-limit-errors対象方法

### エラーの内容

“`
PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 134217736 bytes) in /usr/share/php/Composer/DependencyResolver/RuleSet.php on line 84

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 134217736 bytes) in /usr/share/php/Composer/DependencyResolver/RuleSet.php on line 84

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors for more in

元記事を表示

【Laravel】downメソッドを活用する

## 初めに
初めまして。一月に未経験でエンジニアとして入社しました。ミツキと申します。
今回はLaravelのマイグレーション作成時に使用する`downメソッド`について備忘録として書いていきます。
というのも、今までdownメソッドを活用した事がなく、`$ php artisan migrate:rollback`をした際に、全てリセットされたり、それによって`$ php artisan migrate`を実行する際に「本当にこの設計でいいのか。。。?」などといった不安からマイグレーション作成に関する作業が滞ったりしていました。そんな中会社の上司から「downメソッドを活用したらその不安は解消するよ」とういった助言をいただいたので、今回は実際に検証しながらアウトプットしようと考えた次第です。この記事を読んでの感想などがありましたら、フィードバックをいただけると幸いです。

## downメソッドとは
– テーブル削除の定義を記述するメソッド。
– upメソッドが行った操作を元に戻す。

migrationを実行して、「やっぱ元に戻したい。。。」という場合にロールバックを実行するので

元記事を表示

PHP アクセス修飾子についてまとめてみた。(public, private, protected, static)

# はじめに
**・PHPのアクセス修飾子が
 よくわらない方に、おすすめ。**

## アクセス修飾子
**・メンバ変数やメソッドなどが、
 どこからアクセスできるかを定義**するもの。

## public
・スコープに基づき、
 **どこからもでもアクセス可能**

※アクセス修飾子を指定しない場合は
 自動的にpublicとして扱う。

######サンプルコード
“`php:access-model.php
name = $name; // アクセス可能
}
}
$test = new TestClass(‘テスト’);
echo $test->name; // アクセス可能
// 実行結果: テスト

?>
“`

## private

・スコープに基づ

元記事を表示

PHP学習

# PHPについて
個人的なアウトプットとしての記事です。
私がPHPについて学習したことについて記述していきます。

##PHPとは

### アウトプット
21/02/21
関数
・var_dump()
 引数に指定した変数の型を表示する
 デバッグによく使う

・intval()
 引数に指定した変数を数値に変換する
 同義?に (int)”文字列” がある。こちらも文字列部分を数値に変換する。

・strval()
 引数に指定した変数を文字列に変換する
 同義?に (string)数値 がある。こちらも数値部分を文字列に変換する。

元記事を表示

UbuntuでLaravel8

## AWS EC2にて
Ubuntu 18.04.5 LTS

“`
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic
“`

## パッケージ確認
“`
ii php7.2 7.2.24-0ubuntu0.18.04.7 all server-side, HTML-embedded scripting language (metapackage)
ii php7.2-cli 7.2.24-0ubuntu0.18.04.7 amd64 command-line interpreter for the PHP scripting language
ii a

元記事を表示

OTHERカテゴリの最新記事