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

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

PHPでメモリ不足のエラーが表示されてしまう

## 事象
環境構築などで下記のようなエラーと遭遇しましたのでその対処法を記載します。

“`
Allowed memory size of *** bytes exhausted
“`

## php.iniを探して編集する
まずphp.iniを確認するためパスを探します。(/etc下にいることが多いです)

“`
$ ls /etc | grep php.ini
php.ini.default
php.ini.default-previous
“`

上記のようにphp.iniがない場合php.ini.defaultをコピーして編集します。

“`
$ sudo cp /etc/php.ini.default /etc/php.ini

# 作成されているか確認する
$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini

$ sudo chmod 644 /etc/php.ini
$ sudo vi /etc/p

元記事を表示

【PHP】これで配列取得も自由自在!?Paizaの値取得・出力方法まとめ

Paizaの値取得・出力方法が分かりにくかったので、簡単に取得できる方法をまとめました。

##Paizaの値取得サンプルコード解説
Paizaを始めた頃は、以下のコードが何を意味しているのかよく分かりませんでした。

![スクリーンショット 2021-05-15 5.30.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591686/3aa78b3b-637e-bcb1-8e3d-1f7b92d40f91.png)

“`PHP:Paizaの値取得・出力サンプルコード

元記事を表示

Laravel6.x 画像をリサイズしてアップロードする方法

`Auth`の認証機能で作成された新ユーザー登録に画像のアップロード機能を追加していきます。画像アップロード処理は`Intervention Image`ライブラリを使用して画像をリサイズして保存する方法をやっていきます。
画像保存するにあたってusersテーブルにimg_nameカラムを追加する
[Intervention Imageについて](http://image.intervention.io/)

## 実装環境
* PHP 7.3
* Laravel 6.20.26

## 1.Intervention Imageをインストール
まずはライブラリをcomposerを使用してインストール

“`
$ composer require intervention/image
“`

次に `config/app.php ` でプロバイダーとエイリアスに追加する。

“`PHP:config/app.php
‘providers’ => [
Intervention\Image\ImageServiceProvider::class,
],

‘aliases

元記事を表示

Laravelで
“`

![スクリーンショット 2021-05-14 21.12.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1276481/70019a9f-791c-e838-601d-14db308dacdd.png)

このように先頭に変なスペースが出てきます。

#改善方法
・一行で書く。

たったこれだけでした。

“`edit.blade.php

“`

![スクリーンショット 2021-05-14 21.12.34.png](https://qiita-image-stor

【環境構築】Docker×Laravel×MySql

docker×laravel×mysqlを使った環境構築を行ったのでその手順をご紹介します。
初めてdockerで環境構築を行ったので、少しでも参考になればと思います。

環境

| 環境     | バージョン
|:———–|————
| PHP | 7.0.27
| FW | CakePHP3.2.13
| Apache | 2.2.15
| OS | CentOS6.9
| DB | MySQL5.6.39

手順

1. DockerフォルダDL
2. Git Clone
3. Docker コンテナに入る
4. Apache起動
5. ドキュメントルート設定
6. Composer install
7. mysql起動
8. データベース作製
9. app.phpの設定
10. データベース接続

環境構築してみよう

DockerフォルダDL

今回は元々

元記事を表示

PDO

# PDO(PHP Data Object)
データベースにアクセスするためのインターフェイス
接続するデータベースが変更されても同じ関数を使用してクエリ(データベースへの問い合わせ)の発行やデータの取得が行えます。

元記事を表示

PHPオリジナル問題作成2

###続き

#オブジェクト指向、インスタンスとクラス
■問題1
other/Hero.php/Heroクラスを作成。name(String型),hp(int型)のフィールドを準備し、以下のメソッド作成。
メソッド名:sit
戻り値:なし
引数リスト:int sec
処理内容:
・自分自身のhpフィールドに引数(sec)をたす。
・自分自身のnameフィールドを表示。(表示形式:nameフィールド+は+引数(sec)+秒座った。)
・引数(sec)を表示。(表示形式:HPが+引数(sec)+ポイント回復した。)

main8.phpでHeroインスタンスを生成。
nameフィールド:カズヤ(自身の名前)
hpフィールド:100
表示内容:
・sitメソッドを呼び出してください。(引数は5)
・hpフィールドを表示してください。

解答

“`php:mai8.php
//問題1

元記事を表示

PHPのdate関数、timestampを使って2021/01/01から12/31までのカレンダーを作ってみる。

#date関数
日付とか時刻を返してくれる関数です。試しに色々と書いてみます。

“`
print(date(‘G時i分s秒’).”\n”);
->4時47分57秒

print(date(‘Y/n/j’).”\n”);
->2021/5/14

print(date(‘Y F,j’).”\n”);
->2021 May,14

print(date(‘n/j(D)’).”\n”);
->5/14(Fri)
“`
こんな感じになります。
date関数のパラメータ(GとかY,n,jなどは下記のqiitaなどを参照してください。
https://qiita.com/shuntaro_tamura/items/b7908e6db527e1543837

##date関数の引数
date関数のリファレンスでdate関数の書式を確認してみます。
>
> date ( string $format , int|null $timestamp = null ) : string
>

これはdate関数が日時をどう表すのかのフォーマットです。
第二引数にタイムスタンプなるものが指定されています。

元記事を表示

日本語をエスケープしないでJSON文字列を作る

# 概要
JSON形式で保存されているログを画面出力することがあった。

しかし、 `json_encode()` した文字列のままだと、
日本語部分が文字化けしたように読めない。

そのため、一度デコードして、整形し直してみる。

## 独自関数を作ってみる…
`$log=print_r($json, true)` でも配列の中身を出力できるが、
bool型のところがfalseの場合空文字になったりとイマイチ見た目が悪かった。

そのため、独自関数を作って対応してみる。

“`php
/**
* @param string $json
* @param bool $is_vector
* @return string
*/
function decodeMbJsonString (string $json, $is_vector = false) {
// 一度デコードして、日本語を読めるようにする
$data = json_decode($json, true);

// JSON形式に再整形する
$data = array_m

元記事を表示

【PHP】基本文法メモ 配列

基本的なPHPの文法についてメモっておく。

## 対話モードで色々な文法を試す
“`
$ php -a

PHP >
“`
対話モードが立ち上がる。

### 配列
“`
PHP > $animals = [“dog”, “wani”, “gorira”];
php > echo $animals;
PHP Notice: Array to string conversion in php shell code on line 1
Array
php > echo $animals[1];
wani
“`
こんな感じで配列を定義することができる。

元記事を表示

Laravel 8.40にEloquentリリーションwithOnly関数到着

## 概念

モデルを取得するときに、常にいくつかのリレーションをロードしたい場合は、モデルの`$with`プロパティで定義出来ますが、[このPR](https://github.com/laravel/framework/pull/37144)でデフォルトのEagerロードをオーバーライドして、`$with`プロパティ内のすべてのアイテムを取得せず、`withOnly`で定義されているリレーションのみ取得することができるようになりました。

## セットアップ

ジュースの管理システムを例にして、ジュース、ジュースのメーカー(作っている会社)と種類(トマト、アップルなどなど)のモデルでそれぞれの適切な情報を管理する。その上この例のサービスの仕組みではジュースのモデルのデータを取得するとき、ほぼ全ての場合においてメーカーの情報も必要となります。(たとえばメーカーの名前を表示することなど)。そのためジュースのモデルの`$with`で定義することになって、デフォルトでloadすることにします。

このようなジュースのモデルは下記のようになります。

“`php

元記事を表示

【PHP】【個人開発】SNSぽいサービス

PHPでSNSに近いサービスを開発しました。
投稿、フォロー、メッセージ等の基本的な機能を実装しています。

![play.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597913/ade58098-b653-f8d1-1b9f-e7d25561f4a4.gif)

##URL

https://karirin3948.herokuapp.com/user_login/user_top.php?type=main&page_id=current_user

##GitHub

https://github.com/karirin/app

##使用技術
・フロントエンド
– HTML
– CSS
– Javascript
・バックエンド
– PHP
– FWなし
・インフラ/開発環境
– heroku
– Mysql
– VScode
– Git/GitHub

##実装機能
###メッセージ機能
ユーザー同士のやり取りはもちろん、新規メッセージがあるときはログイン時にフラッシュメッ

元記事を表示

LaravelでPHP Fatal error: Allowed memory size of 1610612736 bytes exhausted…エラー

Laravelでデバックバーをインストールしようとしたらエラー出ました。
原因は別件でphpのバージョンを変えたのでその影響でした。
忘れないように忘備録。。

***

“`console:コンソール
composer require barryvdh/laravel-debugbar
“`

(*゚▽゚)ノ ターン
いつものようにデバックバーをインストールだっ

“`console:コンソール
PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted …
“`

(;´Д`)
あれなんか急にエラー出た。。。

***

調べたらComposerのメモリ不足エラーみたいでした。。
php.iniの設定変更で治るみたいなので場所を調べたら

“`console:コンソール
$ php –ini | grep “php.ini”
“`

“`console:コンソール
Loaded Configuration File:/usr/local/etc/php/7.4/php.ini

元記事を表示

Docker X Laravel PHP CS Fixer を導入して、ソースコードを自動整形する

## 環境

– https://github.com/ucan-lab/docker-laravel
– [最強のLaravel開発環境をDockerを使って構築する](https://qiita.com/ucan-lab/items/5fc1281cd8076c8ac9f4)
– 記事執筆時バージョン
– PHP: 8.0
– Laravel: 8.0
– php-cs-fixer: 3.0.0

## PHP Coding Standards Fixer(php-cs-fixer)

https://github.com/FriendsOfPHP/PHP-CS-Fixer

リポジトリ名は`PHP-CS-Fixer`、正式名称は`PHP Coding Standards Fixer`、コマンド名は`php-cs-fixer`となります。

## php-cs-fixer の導入

“`shell-session
$ composer require –dev bamarni/composer-bin-plugin
$ composer bin tools requ

元記事を表示

jsからphpにデータを渡してjsonファイルで保存する

jsからサーバーにデータを保存したかった。
XAMPPを導入し、PHPを何となく書けるようになった。
しかし、データベースの使い方がよく分からなかった。
そんな時に無理やり編み出した手法をここに晒す。

“`php:save.php

“`

“`js:script.js
async function save(value1, value2){
let req = await fetch(“./save.php”,{
method: “post”,

元記事を表示

sprintfで書式を整える

$date = sprintf(‘%04d年 %02d月 %02d日’, 2021, 5, 13);
print($date);

//%の後の数字(04etc)で表記する桁数を指示している
//dは数字の意味で、数字以外が記入されたときにエラーで弾くようになっている。
//※これだけで万全ではないので、注意

//文字を書きたいときは、d→sに変更するとOK

元記事を表示

【Laravel】Seederファイルを作成して、ダミーデータを格納する

Seederファイルの作成が初見だったためメモです

## ファイルの作成

“`
$ php artisan make:seeder 任意のファイル名
“`

作成したファイルに以下のように記述しました。色んなパターンあると思います

“`php
‘hoge-company’
]);
}
}
“`

## 作成したファイルを実行するように記述する 

“`php:/database/seeds/DatabaseSeeder

元記事を表示

メンタル疾患症状管理、服薬管理Webシステム(書き込み結果、ファイル出力編)

メンタル疾患病状管理、服薬管理Webシステム(書き込み結果、ファイル出力編)のソースコードを公開いたします。

ファイル書き込み(result.php)のソースコードです。

“`HTML




元記事を表示

メンタル疾患症状管理、服薬管理Webシステム(画面入力編)

メンタル疾患症状管理、服薬管理Webシステム(画面入力編)のソースコードを公開いたします。

メインとなるmental.phpのソースコードです。

“`HTML







OTHERカテゴリの最新記事