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

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

PHPの三項演算子

#三項演算子とは

“`
条件式 ? 式1 : 式2
“`

条件式を評価し、TRUEであれば式1をFALSEであれば式2を返す。
演算子なので、IF分とは違い処理を記述するのではなく式を記述する。

元記事を表示

Moodleの”サイトアップロード上限”を変更する。

標準では2MBが最大なのだが、バックアップファイルのサイズは2MBを超えることもある。Moodleだけでは最大値は変更できないので、php-fpm側の設定を変更する。

# 環境

– Ubuntu 18.04
– Moodle 3.10
– php-fpm 7.2
– nginx 1.14.0 (Ubuntu)

# 設定

以下では、最大サイズを8MBに設定している。

“`php:/etc/php/7.2/fpm/php.ini
post_max_size = 8M
upload_max_filesize = 8M
max_execution_time = 600
“`

“`:/etc/nginx/sites-enabled/default
location ~ [^/]\.php(/|$) {
client_max_body_size 8m;
}
“`

# 再起動

“`
sudo systemctl restart php7.2-fpm
sudo systemctl restart nginx
“`

# 結果

![size –

元記事を表示

【中国語】什么是.env文件?

在环境搭建过程中,经常会遇到.env文件,对于初学者来说,env到底是什么文件呢?

元記事を表示

【Laravel】マイグレーションの基礎

#はじめに
Laravelでの共同開発で自身が担当したタスクをまとめていきます。
初学者のため学習のアウトプットしての意味と備忘録としての意味で書いています。
もし間違いがありましたらコメントにてご指摘いただけますと幸いです。

#マイグレーションとは
マイグレーションとはデータベースのバージョン管理機能。

##マイグレーションのメリット
マイグレーションを使わずDB作成、テーブル作成をする時はSQLコマンド、phpmyadminですることも可能です。
ただ、チーム開発の場合1人1人がSQLコマンドを実行したりするよりもマイグレーションを使うとマイグレーションファイルを共有してartisanコマンドを実行するだけでチーム全員同じDBの作成が簡単にできることがメリットです。

##マイグレーションファイル作成
artisanコマンドを使用しマイグレーションファイルを作成する。
`$ php artisan make:migration create_users_table`

作られたファイルの場所は`database/migrations`フォルダに設置される。

#マイグレーシ

元記事を表示

XAMPPのapacheがスタートしない件が二日かけて解決

定番な解決法として、サーバーネームが異なるため、ローカルホストの80を8080に変えるといった様々なことを試しても解決しませんでした。

そこで、たまたま私が見つけた解決法があったので紹介します。。

それは、xamppのファイルを右クリックし、アクセスを許可するのところから、アクセスを削除する。

たったこれだけで、apacheが起動しないのが解決しました。あの二日間は何だったのか。。

起動しないで悩んでいる方、(ほぼいないと思う)ぜひ検討してみてください。何かあった時の保証はできません!

では!引き続き勉強を頑張っていきたいです!

元記事を表示

PHP独学ノート その1

PHPは(スクリプトブロック)の~の部分に処理を記述する。
なお、スクリプトブロックが.phpファイルの末尾で終わる場合はスクリプトの終了を表す ?> は省略できる。
むしろ省略しないとレイアウトに微妙にズレるので省略した方が良い。

出力方法はecho か print。


文字列を指定する場合には必ず前後を ‘ シングルクォートか “ ダブルクォートでくくる必要がある。

PHPはHTML埋め込み型言語である。

なのでHTML内に記述することができる。

省略構文
出力するべき値が増えてくると php や print といった記述ですら間違えやすさに直結する。
なので単純な値を出力する場合にの代わりに、
がある。


PHPでは、文の区切りに ; セミコロンを使う

元記事を表示

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

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

## 解決方法
該当フォームに対し、`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

元記事を表示

OTHERカテゴリの最新記事