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

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

Laravel での ajax を利用したファイルアップロード

#はじめに

Laravelを使っている案件でファイルアップロードを行う機会があったので、実装方法を記します。
なぜajaxを利用したかというと、編集画面というフォームの中でファイルアップロード機能を実装したかったから(編集画面で画面遷移することなくファイルアップロードのみ行いたかったから)

## HTML
“`html

@component(‘includes

元記事を表示

Laravel構成

#はじめに
laravelにふれる機会が増えてきたため、ディレクトリ構成をメモしておきます。
##laravelのディレクトリ構成
““`
─── Laravel
├── app ・・・アプリケーションのロジック
├── bootstrap ・・・laravelフレームワークの起動コード
├── config ・・・設定ファイル
├── database ・・・MigrationファイルなどDB関連
├── public ・・・Webサーバのドキュメントルート
├── resources ・・・ビューや言語変換用ファイルなど
├── routes ・・・ルーティング用ファイル
├── storage ・・・フレームワークが使用するファイル
├── tests ・・・テストコード
└── vendor ・・・Composerでインストールしたライブラリ
““

元記事を表示

【第六回】コロナ禍だから何かできることをー 自宅療養者連絡ツール ー

#前回までのあらすじ
[【第五回】コロナ禍だから何かできることを](https://qiita.com/STYLE-D/items/a745bd5faeb68caa1d7c)

####実装イメージ図
LINEを利用して保健所の担当者の負担を軽減するとともに、自宅療養者はいつでもつながっている安心感を持たせるためのツールイメージです。
![メイン.00_00_51_12.Still002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/744261/cf85391e-aef8-5a59-0a1d-63d8e15412ce.jpeg)

##ユーザー登録の仕組みを作ろう
![システム構成-ユーザー登録.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/744261/a834c741-8adf-06af-6c5b-a5ce167aa55a.jpeg)

###今回はLIFFで表示する画面の開発部分です

####初期表示の処理

元記事を表示

php Slim3からSlim4へ移行する際のメモ

以下の手順を参考に作業。
https://codezine.jp/article/detail/11904

## ライブラリのバージョンアップ + 追加インストール
“`
//update
composer require slim/slim
composer require monolog/monolog

//追加
composer require slim/psr7
composer require php-di/php-di

“`

## 移行作業

### index.phpの修正
DIコンテナの変更のため、index.phpとdependencies.phpの設定を変更。
Slim\Factory\AppFactoryとDI\Containerを使うように変更。

“`
use Slim\Factory\AppFactory;
use DI\Container;

“`
以下の流れ
settingのjsonを取得。
containerを作成。
containerにsettingをsetしてdependenciesにcontainerを渡してまたcont

元記事を表示

[CakePHP] 型情報付きでテーブルオブジェクトを取得する

PHPカンファレンス2021でPHPStormがジェネリクス対応したと聞いて。

### 課題
通常CakePHPではテーブルオブジェクトをTableRegistry経由で取得するが、これだと型はCake\ORM\Table型としか分からない。

“`
$articles = TableRegistry::getTableLocator()->get(‘Articles’); //Cake\ORM\Table型とIDEに認識される
“`

実際にはメソッド等を定義している具体的なArticlesTable型として認識してほしい。
Lean controllerだFat modelだと綺麗にしたいのにこれではIDE補完が使えない。
かと言って毎度“`@var“`を書くのも間抜けすぎる。
世界中のCakePHPユーザーが同じことで困ってそうだがなぜか解決策が見つけられなかった。

### 解決策
ということで、ジェネリクスを使用した回避策がこれ。

“`
use Cake\ORM\TableRegistry;

/**
* @template T
* @param class

元記事を表示

【PHP 勉強記録】制作物リストアップ

現在:組み込みソフト開発(テスト業務がメイン)
将来の夢:Web系フリーランスエンジニア

スキル:HTML少し / PHP少し / C言語

想定している道のり①
1.現在の業務を続けながら、独学でポートフォリオを作成
2.ポートフォリオを武器に
  クラウドソーシングで安価な業務を受けて副業として経験を積む
3.実績とスキル向上を実感したうえで、高価で難しい業務にもチャレンジ
4.退職し独立

想定している道のり②
1.Web開発系の企業に転職(ポートフォリオはいるかも)
2.実務の中で経験を積む + 独学で新しい知識も
3.①-2以降同様

そもそも組み込みをやってておもしろくないから
即座に辞める一択なのだろうと思いながらも
まだ一年目(半年)なので①なのかなぁと悩み中

どちらにせよ何かしら自分の作品は持っておきたいということで
ポートフォリオ作成に向けてスタートすることにした。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

〇まず、なにを作るか
Web系志望ということもあるので言語はPHPを使用しようと思う。

ずっと考えていたものは
私の趣味である

元記事を表示

PHP ぼくのかんがえたさいきょうの、NULLやブランクや配列数0の時にTRUEを返す関数、その名はisNULL

## 概要

NULLやブランクや配列数0の時にTRUEを返す関数です。テストもありまぁす。

## isNULLの仕様

### (第二引数がNULLの時、)第一引数の値と戻り値の関係

|第一引数の値|戻り値|
|–|–|
|null|TRUE|
|文字 – 空|TRUE|
|文字 – 1文字以上|false|
|数値(0も含めて)|false|
|配列 – 個数0|TRUE|
|配列 – 個数1以上|false|
|空オブジェクト|TRUE|

### 第一引数がオブジェクトで第二引数がプロパティ名の時(もしくは配列とキー名)

|プロパティが|動作|
|–|–|
|存在しない|TRUE(*__getがあれば呼び出す)|
|存在する|値をisNULL再帰呼び出しで判定|

## isNULL

“`PHP
/**
* @param mixed $val
* @param string $key
* @return bool
*/
function isNULL($val, $key = null) {

if (! isset($val)) {

元記事を表示

Laravel6でLaravel-Adminをインストール後、migrateできているのに、Laravel-Adminにログインできない

# 状況
– Laravelプロジェクトをインストール
– envファイル編集
– `php artisan migrate` 成功
– Laravel-Adminをインストール
– `php artisan serve` でサーバー起動
– `127.0.0.1:8000/admin` にアクセス後ID PASS入力
– ログインできず、なぜかenvファイルを確認してくれと表示される

環境
サーバー:Windws WSL
DB:AWS RDB(8.x)

# 解決方法
`php artisan config:cache`
でキャッシュをクリア

これだけでした。

元記事を表示

【PHP】全角半角の混合文字列を削除

“`PHP

元記事を表示

【Laravel】エラーメッセージの日本語ファイルの用意をコマンドラインで。

Laravelではエラーメッセージを簡単に表示させる機能があるのでとても便利です。

:::note alert
タイトルは必ず指定してください。
:::

↑みたいなやつです!

いつも、エラーメッセージの日本語ファイル公式ページからコピペしていたのですが、コマンドラインでやる方法を見つけたので、共有します。

## コマンドでのエラーメッセージの日本語ファイルの用意

“`bash
$ php -r “copy(‘https://readouble.com/laravel/8.x/ja/install-ja-lang-files.php’, ‘install-ja-lang.php’);”
$ php -f install-ja-lang.php
$ php -r “unlink(‘install-ja-lang.php’);”
“`
laravel6やlaravel7の場合は`8.x`の部分を変更してください。
実行後は、`resources/lang/ja/`配下にエラーメッセージの日本語ファイルが作成されています。

– auth.php
– pagination.php

元記事を表示

【PHP】$_SERVER[‘HTTP_REFERER’]リファラを使用してアクセス元によって処理を振り分ける

## $_SERVER[‘HTTP_REFERER’]とは

**$_SERVER**とはPHPのスーパーグローバル変数でサーバ情報および実行時の環境情報が入っています。

**HTTP_REFERER**は$_SERVERで取得できるインデックスのひとつで現在のページに遷移する前にユーザーエージェントが参照していたページのアドレスを取得することができます。

以下のコードでHTTP_REFERERを取得します。

“`php
$_SERVER[‘HTTP_REFERER’]
“`

ただし、リファラは確実に取得できるものではないので注意が必要です。

## アクセス元によって処理を分ける

`$_SERVER[‘HTTP_REFERER’]` を使ってチェックしたいURLによって処理を振り分けます。

“`php
// リファラーの取得(セットされていない場合はnull)
$referer = isset($_SERVER[‘HTTP_REFERER’]) ? $_SERVER[‘HTTP_REFERER’] : ‘null’;

if (preg_match(“/チェックした

元記事を表示

WordPressの投稿記事・固定ページ本文中にショートコードでテーマ内のphpを呼び出す

#PHPファイルを読み込むショートコード
function.phpに以下を追加

“`
function my_tmp_code($atts) {
extract(shortcode_atts(array(‘file’ => ‘default’), $atts));
ob_start();
include(STYLESHEETPATH . “/$file.php”);
return ob_get_clean();
}
add_shortcode(‘my_tmp’, ‘my_tmp_code’);
“`

#本文で呼び出すときのコード
“`
[my_tmp file=’ここにテーマ内のphp名(phpを除く’]
“`

元記事を表示

PHPで10文字以上の文章なら…をにする

##PHPで10文字以上の文章なら…をにする方法

“`PHP

//整形したい文字列
$textLimits = $val [“TITLE”];
//文字数の上限
$limit = 10;

// 文字数10以上ならば、…に変換 
if(mb_strlen($textLimits) > $limit) {
$title = mb_substr($textLimits,0,$limit);
echo $title. “…” .”” ;
} else {
echo $textLimits. ““;
}

//整形したい文字列
$textLimits = $val [“TITLE”];
//文字幅の上限
$limit = 10;

// 文字幅が10以上ならば、…に変換 半角が1 全角が2
if(mb_strwidth($textLimits) > $limit) {
// 文字列を文字幅上限に丸める
$title = mb_s

元記事を表示

PHPでHELLO

“`PHP

元記事を表示

バッファリングで取得した改行を含むCSVファイルを配列へ

CSVファイルの読み込み⇒処理は、改行区切りで配列化するので、値に改行を含むと変なことになります。
新人が悩んでいたので、私も一緒に悩みました、確かに一筋縄ではいかないような…
##こういうCSVファイルのデータを
![csv00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458322/5935d286-2523-3f53-4711-ed093a6ec9fd.png)
HTMLフォームから送信して、
##バッファリングして取得すると

“`php

“`

##なぜか改行を含む値は ” で囲まれる

“`csv
“a-1 a-2 a-3”,b,c,
“`

それが原因かは不明ですが、「PHP CSV 改行」と検索して出てくる先人の解決策は、上手く

元記事を表示

【第五回】コロナ禍だから何かできることをー 自宅療養者連絡ツール ー

#前回までのあらすじ
[【第四回】コロナ禍だから何かできることを](https://qiita.com/STYLE-D/items/8af17d7f94f5c351ede0)

####実装イメージ図
LINEを利用して保健所の担当者の負担を軽減するとともに、自宅療養者はいつでもつながっている安心感を持たせるためのツールイメージです。
![メイン.00_00_51_12.Still002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/744261/cf85391e-aef8-5a59-0a1d-63d8e15412ce.jpeg)

##ユーザー登録の仕組みを作ろう
![システム構成-ユーザー登録.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/744261/a834c741-8adf-06af-6c5b-a5ce167aa55a.jpeg)

LINE Developers
[LIFFアプリを開発する](https://

元記事を表示

PHPConference2021に初参加しました。

PHPConference2021に初参加しました。
こういったイベント毎に参加したこと自体が初めてで不安な部分は大きかったですが、参加してよかったです!

##参加した経緯
参加した経緯はLINEのオープンチャットでmukakenさんが今回のイベントの告知をしてくださっており、もともとPHPが大好きなのでもっと勉強したい!と思い参加しました。

##始まってみると
始まってみると一人で何も分からず参加したのでボイスチャットに入ってもいいのか分からず、どうしようかあたふたしてました。

少しして、koyhoheさんが雑談しようという書き込みをしていたので、’ここは入っていいんだ’と分かり試しに入ってみました。入ってみたはいいものの、どうしようかと迷っていると声をかけてくださり、自然と話せる空気を作ってくださり、なんとか話すことができました!

ここで勇気を出して声を出したことで、koyhogeさんやちゃちいさんと知り合う事ができましたし、そこから様々な人と知り合う切っ掛けになりました!

##内容について
学校ではPHPはそこそこできるつもりだったので、分かるかな?と思っていましたが、

元記事を表示

thisを使う!!

▪️ thisとは
 PHPでスコープ外で定義された変数を利用するための擬似変数。
 簡単に言うなら英語の省略に近いイメージ。

例えば、あなたは長い映画を見るのが好きですか?と聞かれ、私は長い映画を見るのが好きです。と答えているとめんどくさいと思います。
好きです!と省略したいですよね?
その感覚で使うのがthisになります!

<書き方>
下記のようになる:writing_hand_tone2:

public class Monster {
int hp = 100;
int mp = 20;
Monster(int hp ,int mp){
this.hp = hp;//1
this.mp = mp;
}

コード引用元:https://qiita.com/kajirikajiri/items/85b911688155f9fc251a

今日の投稿は以上です。

wagaでした!!

元記事を表示

文字列から数字だけを取り出すor消す

いつもググってた
ttp://djcase.jp/app/mywiki/post/172
に有った記事のコピーです
どうもサイトがなくなってしまったようで・・(泣)

#文字列から数字だけを取り出すor消す
##数字のみを「消す」場合

“`
$target = ‘アッカリーン0120はーい!0930’;
$target = preg_replace(“/[0-9]/”, “”, $target);
echo $target;
“`

上記の結果は

“`
アッカリーンはーい!
“`

正規表現を使って置換できるpreg_replaceを使用。[0-9]は「0から9までの数字」という意味。

$targetに対して「0から9までの数字」を空文字で置換(=消す)している。

preg_replace関数について
https://www.php.net/manual/ja/function.preg-replace.php

##数字のみを「取り出す」場合

“`
$target = ‘アッカリーン0120はーい!0930’;
$target = preg_replace(“/

元記事を表示

プログラミング歴半年で作った顧客満足度100%のサービス

#はじめに

##### ※ご覧いただいている全ての方へ
記事の内容が良かったと思ってくれた方はLGTMしてくれたら嬉しいです。

##### ※採用担当者様へ
この記事は僕が今後スケール・収益化していく予定のサービスについての解説、ならびにサービスを開発することについての熱意を記したものとなっております。

この記事を読んでいただくことで、今回作成したサービスが転職のためだけに作ったポートフォリオではないことや、僕がエンジニアという職業に転職することにどの程度の覚悟を持って臨んでいるのかを感じとっていただけたら、とても嬉しく思います。

補足ですが、将来的なフリーランスへの転向などは一切考えておりませんのでご安心ください。

私の熱意を買っていただける方がいらっしゃいましたら、ぜひ、ご連絡お待ちしております。

Twitterアカウント:https://twitter.com/kzk_engineer
メールアドレス:sucness@gmail.com

#目次
[1.このアプリの開発者について](#1-このアプリの開発者について)
[2.アプリの概要](#2-アプリの概要)
[3.

元記事を表示

OTHERカテゴリの最新記事