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

PHP関連のことを調べてみた2022年02月08日
目次

ブラウザバック時、フォームの値を表示させない方法

## 解決したいこと
フォーム送信完了後にブラウザバックするとき、フォームの入力値を消したかった。

## 解決方法
該当フォームに対し、`autocomplete=”off”`を追加する。
自動補完をオフにすることによって、入力値を保持しなくなる。

“`HTML

 

“`

また、`form`だけでなく`input`にもこの属性を追加できる。

“`HTML

 

“`

## 詳細

### 対象者
* プログラミング初学者

* php初学者

### 経緯
ログイン後のマイページに、文書投稿のためのフォームを置いていた。
以下の流れでページ遷移する。

1. フォーム入力

元記事を表示

Twitter API(v1) 経由でスレッドを作成する際の挙動

# API 経由でのスレッド作成方法

まず、「API 経由でスレッドを作成する」という用途で用意された API エンドポイントはなかった。

[php – Twitter api – is it possible to post a thread? – Stack Overflow](https://stackoverflow.com/questions/51563995/twitter-api-is-it-possible-to-post-a-thread)

リプライを利用して実現する。エンドポイントは、 [POST statuses/update](https://developer.twitter.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/post-statuses-update)。

PHP のライブラリである [TwitterOAuth](https://twitteroauth.com/) を利用すると、以下のようになる。

“`
$statues = $connection->po

元記事を表示

カスタムフィールドで数値を3桁区切りでカンマを自動でつける

カスタムフィールドで金額を入力する項目を出力する際に、自動で3桁区切りでカンマをつけたいことがあったのでメモ

PHPの“number_format();“を使用する

“`php

“`
参考記事 → https://www.web-myoko.net/blog/wordpress/comma-separated-number-advanced-custom-fields-wordpress/

元記事を表示

PHPでGoogle Identity Platformにログアウト

厳密にはPHPというより、どうやってサーバサイドでログアウトをするかになる。

PythonのSDKではrevoke_refresh_tokensというものが提供されており、これを呼び出すとリフレッシュトークンが無効になる。さらにトークンも無効になる。
https://firebase.google.com/docs/reference/admin/python/firebase_admin.auth#revoke_refresh_tokens

処理の中身を見ていくとsetAccountInfoでvalidSinceを更新している。
validSinceは記載の通りタイムスタンプ。

“`
validSince:string
Timestamp in seconds for valid login token.
“`

Firebase Admin SDK for PHPでは指定できなさそう
https://firebase-php.readthedocs.io/en/stable/user-management.html

実際呼び出してみると、他の値をsetAccountIn

元記事を表示

MAMPでPHPのエラーをブラウザ表示させるには

![PHPのエラー箇所をブラウザ表示させるには.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566867/f184cffd-7da1-1d40-a936-82a05a13a817.png)

https://tomosta.jp/blog/mamp-display-errors/

元記事を表示

「別プロセスの PHP が今何をしているか」を実況するプログラムを PHP で作った

# ギフハブ
– https://github.com/sj-i/php-profiler

# 三行要約

– [adsr/phpspy](https://github.com/adsr/phpspy) の [PHP](https://www.php.net/) 版みたいな奴として [sj-i/php-profiler](https://github.com/sj-i/php-profiler) を趣味で作ってる(ここ 2 年くらい少しずつ)
– もはや PHP に不可能なことはあまりなく、システムコールやメモリ操作を伴う比較的低レベルのプログラミングさえ可能で、PHPer が PHP を極めるための道ももはや果てしない
– ランタイム好きな人にはデバッガとかサンプリングプロファイラとか作るの超オススメ

# なにこれ……
– 別プロセスで動作中の PHP プロセスのコールトレースをのぞき見る PHP プログラム

## つまり?

“`
$ ./php-profiler i:trace — php -r “fgets(STDIN);”
“`

みたくやると、`–`

元記事を表示

Laravelのコントローラーの継承先でDIされたモデルの中身を書き換えたい時の対処法

Laravelでコントローラーの継承をした時に、DIされたモデルの中身を書き換えたい、
例えば、

“`php

class CommentController extends Controller
{
public function show(Comment $comment)
{
return $comment;
}
}

“`

となっているときにそれを継承した`AnotherComment`という仕組みがあるとします。
この`AnotherComment`機能では`Comment`モデルを使用するのではなく`AnotherComment`モデルを使用したいが、
`AnotherComment`コントローラー(モデル)としては元の`Comment`コントローラー(モデル)を継承したいとします。

この時にそのまま継承すると、`Comment`モデルがDIされてしまいます。
なので、`Comment`モデルのbindを上書きしてしまいましょう。

“`php
//NOTE: クラス識別のためuse必須。エラーが発生しないので注意。
u

元記事を表示

【Laravel】AccessorでEloquent属性値を変換して処理を共通化する

# 概要

`Eloquent Model` から取得したIDをハッシュ化する処理を`Accessor`を利用して行ってみましたので紹介します

> アクセサは、Eloquentの属性値にアクセスしたときに、その値を変換するものです。アクセサを定義するには、モデルにget{Attribute}Attributeメソッドを作成します。

https://laravel.com/docs/8.x/eloquent-mutators#attribute-casting

# `Accessor` の定義

– `{カラムのアッパーキャメルケース}Attribute` の形式でメソッドを命名する
– 今回は`hash_id`にハッシュ化したIDを格納しますので`HashId`としています

“`php:User.php
/**
* Attributeにhash_id属性を生成するアクセサ
  * @return string
*/
public function getHashIdAttribute()
{
return urlencode(Hash::make($this

元記事を表示

【作業記録】環境構築

環境構築
昨日Laravelのポートにアクセスできたのにできなくなってしまった。

環境を再構築して試そうとしてみたが
docker-compose exec web bash
を記入してもコンテナに移動できなかった。

一度作業手順(テキスト参照)に再度構築を試します

元記事を表示

【laravel】configフォルダを使用したプルダウンの作り方

##【概要】
プルダウンを作成する際viewをスッキリさせたかったので、configフォルダにプルダウンで表示したい項目を記述し、viewに引っ張ってくる方法で作成しました!

完成図はこんな感じになります。
(今回は都道府県のプルダウンを作成します!)

![プルダウン検索.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1046420/dd465466-2a4d-0aae-2bce-8be08ded9255.png)

![プルダウン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1046420/2bb253d4-d505-0c47-6519-4117e62592ce.png)

##①プロジェクトのconfigフォルダにPrefectures.phpを作成
configフォルダにPrefectures.phpを作成し、47都道府県を連想配列で記述します。

“`php:Prefectures.php

元記事を表示

textareaの入力内容をページの更新後も保持しておく方法

## 解決したいこと
`textarea`に入力された値を、ページの更新後も保持しておきたい。

## 解決方法
入力内容が代入された変数を、`textarea`タグの**あいだに**埋め込む。

“`php

//

“`

なぜこの位置に書くか。
原因は、`textarea`にvalue属性がないからだ。

## 詳細
### 対象者
* プログラミング初学者
* php初学者

###経緯
フォームボタンを押したときに、入力不備があればエラーメッセージを出す仕様にしている。
(*コードは簡略化)

“`php

// 空白箇所のエラー例

* 内容を入力してください

“`

ボタンを押すとページが再表示されるので、入力内容は消えてしまう。

しかし、正しく入力さ

元記事を表示

Laravelで画像をリサイズして表示する

#経緯

https://qiita.com/Hiroto0706/items/9cb509cff284783e2550

上の記事ではlaravelで画像を表示できるようにしました。
しかし、画像によっては大きく表示されてしまっていたので、画像のサイズを変更して表示したい!と思い画像をリサイズして表示することに挑戦!?

###やりたいこと
画像をリサイズして表示する

#環境
・M1 Mac
・Laravel Framework 8.82.0
・PHP 8.1.2
・docker

#やったこと
###①composerを使ってintervention/imageをインストール。
以下のコマンドを使って、`Intervention Image`という外部のライブラリをインストールする。

“`terminal
composer require intervention/image
“`

###②設定を行う
インストールできたら、configフォルダの中にある`app.php`で設定を行う!

“`php:app.phpのproviders
‘providers’ =>

元記事を表示

PHPでお問い合わせフォームを作成する①

PHPを使用してお問い合わせフォームを作成する方法を解説します。バリデーションなどの一部機能はJavaScriptで実装します。
本稿は2部構成となっております。第一部ではとりあえずバリデーションは無視して、実際にフォームに入力した内容をメール送信できるところまで進めます。

# 完成イメージ図

![お問い合わせフォーム イメージ図.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2485055/281729cc-681f-164a-8a19-b9e05b232434.jpeg)

# 入力画面

“`html:index.php

入力画面

メッセージにつきましては、下記のフォームよりご入力お願いいたします。

元記事を表示

REST Client(VS Code)で名刺画像を送信し、郵便番号を取得する方法。

#はじめに
今回は、VScode上で名刺画像ファイルをHTTPリクエスト経由で送信して、VS code上で名刺画像ファイルの情報を取得する機会があったので、自分用の忘備録の代わりに、その手順をご紹介致します。

環境
Laravel6.2
Mac OS
VS code

#REST Clientの簡単なご説明

まず、REST ClientとはVS Code上でレスポンスを確認できるというVS codeの拡張ツールです。
例えば今回でいうと画像ファイルを送信しているので、その画像ファイルの具体的な情報はデバッグ等を実行してブラウザでで確認するのが通常のケースだと思いますが、REST Clientを使用するとその手間が省け、HTTPリクエストで送信される画像ファイルの情報がVS code上で確認できるというものです。

この文章だけだと理解し辛いかもしれませんので、REST Clientを分かりやすくご紹介している記事が既にあるので、具体的な挙動やインストールの方法はこちらの記事でご確認して頂ければと思います。

https://qiita.com/toshi0607/items/c44

元記事を表示

【Laravel】検索機能を実装する(流れ)

##【概要】
作成しているポートフォリオに検索機能を実装したので、備忘録として投稿します!
細かな説明というよりは、一連の流れで記述していきます。
今回作成する機能はプルダウン検索、ラジオボタン検索、フリーワード検索(部分一致)です。
プロジェクト一覧からの検索を想定しています!

###開発環境
PHP 7.2.34
Laravel 6.20.32
Apache 2.4.6
mysql 8.0.26

###今回作成する画面
今回作成する画面の完成図はこちらです!
![検索画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1046420/9df1b2f3-201f-4f3d-3ce6-13ee0ca384bc.png)

##①migrationファイル/seederファイルを作成
❶migrationファイル
案件テーブルを作成します。

“`php:××××_××_××_××××_create_projects_table.php

元記事を表示

[AWS_13.2]必須モジュール gd がインストールされていないか、無効化されています。

##環境
AWS EC2 t2.micro
PHP 8.0.2
WordPress 5.7.2

##エラー
![スクリーンショット 2021-05-13 23.46.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758644/0dc234e3-7f9e-5f42-37da-e545ce710841.png)

##原因
phpのアップデートで`php`のつく諸々を削除したが、phpを再インストールする際にその諸々は再インストールしていなかった。

##解決法

“`terminal
yum -y install mysql httpd php-mbstring php-xml gd php-gd
“`

元記事を表示

[AWS_13.1]php -vで「No such file or directory」のエラー

##環境
MacBook Pro (13-inch, 2016, Four Thunderbolt 3 Ports)
macOS 11.3.1(20E241)
AWS EC2 t2.micro

##エラー
“`terminal
# php -v
-bash: /usr/bin/php: No such file or directory

# which php
/usr/bin/which: no php in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
“`

どうやら[AWS_13]でPHP既存の削除して、新しいバージョンのPHPを有効化したものの、新しいバージョンそのものはダウンロードできていなかったらしい。

##PHPをダウンロードして、確認

“`terminal
# amazon-linux-extras install php7.4
(省略)

# php -v
PHP 7.4.15 (cli) (built: Feb 11 2021 17:53:39) ( NTS )
C

元記事を表示

[AWS_13]PHPのアップデート

##環境
AWS EC2 t2.micro
PHP 7.2.34

##作業内容
PHPを 7.2→7.4へアップデート

##PHPのアップデート

1.EC2インスタンスへssh接続する

“`terminal
ssh -i <秘密鍵ファイル> ec2-user@<パブリックIPアドレス>
“`

2.管理者権限に遷移

“`terminal
sudo su –
“`

3.既存のPHPを削除

“`terminal
yum remove php*
“`

4.確認

“`terminal
# amazon-linux-extras list | grep php
15 php7.2=latest enabled \
17 lamp-mariadb10.2-php7.2 available \
_ php7.3 available \
_ php7.4 available [ =sta

元記事を表示

Docker composer のインストールでバージョンを固定する方法

# 概要

– DockerのPHPコンテナにcomposerをインストールする時のDockerfileの記載でcomposerのバージョンを固定する方法をメモ的にまとめる

# 方法

– 下記の様にPHPのDockerfileのcomposerインストール部分を記載することでcomposerのバージョンを2.2.4に固定する。

“`Dockerfile
# composerのインストール
RUN php -r “readfile(‘https://getcomposer.org/installer’);” > composer-setup.php && \
php composer-setup.php –filename=composer –version=2.2.4 && \
php -r “unlink(‘composer-setup.php’);” && \
mv composer /usr/local/bin/composer
“`

元記事を表示

laravel PHP バージョンを指定してuuidを生成する

# 概要

– uuid バージョン4の生成方法は下記で説明したが、その他のバージョンのuuidを取得する方法をまとめる
– [laravel uuidの生成(uuid version4のみ)](https://qiita.com/miriwo/items/25d2331dff5549d2a834)
– 本方法でバージョン1〜6までのuuidの生成をする事ができる。

# 方法

– ramsey/uuidというcomposerのライブラリを取得して使用する。
– [https://github.com/ramsey/uuid](https://github.com/ramsey/uuid)
– 下記コマンドを実行してramsey/uuidを取得する。

“`terminal
$ composer composer require ramsey/uuid
“`

– 下記の様にuseを記載することですぐにuuidを生成する事ができる。(下記はuuid バージョン4を生成)

“`php
use Ramsey\Uuid\Uui

元記事を表示

OTHERカテゴリの最新記事