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

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

Moodle マニュアル 3.8 – アップグレードの警告

[原文](https://docs.moodle.org/38/en/Upgrade_warnings)

# アップグレードの警告

もしあなたが安定板からのアップグレードの最中の警告からこのページにたどり着いたのなら、おそらく我々のブランチのいくつかの変更が影響しています。

もしあなたが最も最近の Moodle の安定版にとどまる事を意図しているのなら、適切な MOODLE_3x_STABLE ブランチ (MOODLE_32_STABLE, MOODLE_33_STABLE その他のように) を使用してチェックアウトを変更する必要があります。

Git を使用しているのなら、リモートブランチを追跡する新しいローカルブランチを作成してそれにスイッチする必要があります。

“`console
git checkout -b MOODLE_38_STABLE origin/MOODLE_38_STABLE
git pull
“`

38 を関係する Moodle のバージョンに置き換えてください。最初の行により、MOODLE_38_STABLE という新しいローカルブランチが作成さ

元記事を表示

変数で計算結果を保管

### 変数
– PHPの場合、変数名を`$`から始める必要がある
– 変数は`$`から初めて、英語や英語_数字などで作成する
– 例:`$abc`、`$abc_123`
– `$合計` などの日本語も一応使えるけど基本的に使わない
– 記号や空白が含まれていたり、先頭が数字の場合は使えない
– 大文字小文字の設定は自由だけど、基本的にPHPの変数は小文字で書いたほうがいい
– 変数名は小文字と大文字を完全区別するので、一部でも異なると「別の変数」と見なされてしまうので注意
– 例えば全て小文字の場合、一部を大文字にすると別の変数となってしまう
– 変数は、最初に『代入』と言う操作を行う

“`

“`
– 変数名(上記の場合は$sum)の次に`=`を書き、その後に記憶したい内容や、保管したい内容を記述する
– ルールはprintのパラメーターと同じで`’`(クォーテーション記号)を入れてあげるとそのまま文字列として記憶される
– クォーテーション記号がなければ計算式として「計算結果」を代入して

元記事を表示

オブジェク指向

### オブジェクト
– 関連する変数(値)と関数(動作)が一つにまとまり、そのまとまりに名前がついたもの。
– 関連した変数や関数を「一つのオブジェクト内」で宣言することで、管理しやすくなる。
– オブジェクトには「クラス」「インスタンス」と言う2つの側面がある。
– クラス
– 設計図。オブジェクトを作るには、まずクラスを宣言する必要がある。
– 設計図なので、どんな変数(値)でどんな関数(動作)にするのか考えて、クラス内部で宣言する。
– 関連した変数や関数はこの時点(クラス)で決定。
– インスタンス
– クラス(設計図)から生成された実体。モノ。
– 設計図だけあっても関数を使うことができないので、クラスから実体を生成する。

– メモ

“`
format(‘G時 i分 s秒’));
?>
“`

– $today と format は `->` で繋がっている
– これは$todayと言うDateTimeメソッドの、インスタンスのメソッドを使

元記事を表示

ZipArchiveで突然”ZipArchive::addFromString(): Invalid or uninitialized Zip object”が出る様になった話

# はじまり
ZipArchiveで以下の様なコードを実行していたが、PHPのアップデートを行ってから急に“ZipArchive::addFromString(): Invalid or uninitialized Zip object“ が出て正常に動作しないようになった。

“`php
open(tempnam(sys_get_temp_dir(), ‘foo-‘), ZipArchive::CREATE);
$zip->addFromString(‘bar.txt’, ‘hogehoge’);
$zip->close();
“`

調べてみると “$zip->open()“ の部分で失敗している様子。

# 原因の調査
## PHPの確認
アップデート前のサーバがたまたまあったので、適当なコードを書いて比較してみることにした。
CentOS 7でPHPはremi-php72でインストール。

“` php:検証用コード

元記事を表示

【最速】PHPでCSVファイルを保存する方法

# はじめに
最近laravelを使う機会が多く、CSVをエクスポートする機会があったので簡単ながらメモしておきます。

# コード

“`php
// csvデータ作成
$csv = array(
array(“名前”, “色”, “値段”),
array(“りんご”, “赤”, “10O”),
array(“バナナ”, “黄色”, “200”),
array(“みかん”, “オレンジ”, “120”)
);

// header作成
header(‘Content-Type: application/octet-stream’);
header(“Content-Disposition: attachment; filename=data.csv”);

// csv出力
foreach ($csv as $line) fputcsv(fopen(‘php://output’, ‘w’), mb_convert_encoding($line, ‘SJIS’, ‘UTF-8’));
“`
laravelのルートを通し、処理を実行するとcsvファイルをダウンロードす

元記事を表示

Mac に phpenv + virtphp で PHP の仮想環境を作る

# Overview

Mac に phpenv + virtphp で pyenv + virtualenv のような環境を作った時のメモ。次回同じ作業をすることになった時のために残しておく。

# phpenv

phpenv と名のリポジトリは複数あるが、星の数が多いこちらを使うことにした。

https://github.com/phpenv/phpenv

phpenv 自体のインストールは簡単。README どおりにやればすぐ終わる。[installer](https://github.com/phpenv/phpenv-installer) もある。

ただ、php-build (phpenv install で必要) でつまずく。

大体は共有ライブラリが足りないって怒られる。そこは一つ一つ対応。

このあたりはメモをロストしました。。まぁなんとかやれるはず。

最終的には[こちら](https://qiita.com/fruitriin/items/3028c2e2170e3e93459d)の記事のとおりに実施すれば解決した。感謝。

“`
$ phpenv ver

元記事を表示

[Rails<=>PHP] nl2br は simple_format

# タイトルで書きたいことはほぼ全て終わった
あとは詮方無いこと、うだうだとかいてみる。

#### `simple_format`は`nl2br`より複雑。
1. デフォルトで`

`が入る
2. `simple_format(text, {}, wrapper_tag: ‘div’)`でタグを変更することはできるが、消せない。
3. `\n`が2行以上続くと`

`が挿入され、文章が区切られる。

##PHPの関数`nl2br`はRailsだと`simple_format`。

“`rb:hoge.rb
motoko = “根拠ですって?\nそう囁くのよ、私のゴーストが””
simple_format(motoko)
// 出力結果 =>
//

根拠ですって?
//そう囁くのよ、私のゴーストが

“`

不満があるので、耳と目を閉じ、口をつぐんで孤独に暮らそうと思います。

元記事を表示

Brew で PHP7.3 の PHP IMAP Extension をインストールする方法 (MacOS)

参考記事: macos – OSXでPHP 72にIMAPを追加する
https://tutorialmore.com/questions-1754536.htm

ありがとうございます!

kabel/php-ext とは、stable ではない、Core PHP Extension の Homebrew Package マネージャーレポジトリ。

PHP Imap Extension PHP7.2 に加えて、 7.3 も追加されてて助かった

## インストール方法

“`
brew install kabel/php-ext/php@7.3-imap
“`

ただし、公式にサポートされていないので、気をつけるように!

元記事を表示

PHP 2進数, 8進数, 10進数, 16進数の変換

####たまにしか触れなそうなので備忘録としてメモしておきます。

まず、英単語の確認から、、、

2進数 【binary number】
8進数 【octal number】
10進数 【decimal number】
16進数 【hexadecimal number】

“`php:qiita.php
$number1 = 55;
echo decbin($number1).”\n”; //10進数→2進数 110111
echo decoct($number1).”\n”; //10進数→8進数 67
echo dechex($number1).”\n”; //10進数→16進数 37
echo base_convert($number1, 10, 16); //任意の基数を変換 37

$number2 = 100110;

echo bindec($number2).”\n”; // 2進数→10進数 38
echo octdec($number2).”\n”; //8進数→10進数 32840
echo hexdec

元記事を表示

Python, Ruby, JS, PHP における文字列処理の違い(結合と変数展開)

趣味や仕事で多くの言語で開発している際に、
単純な構文で書き間違えが多いので書き起こします。

特に解説はせずリファレンスとコードのみ記載します。

# 文字列配列の結合

## Python

[str.join(iterable) — Python 3.8.1 ドキュメント](https://docs.python.org/ja/3/library/stdtypes.html#str.join)

“`python
strings = [‘fizz’, ‘buzz’];
merged_strings = ‘ ‘.join(strings)
print(merged_strings) # ‘fizz buzz’
“`

## Ruby

[Array#join (Ruby 2.7.0 リファレンスマニュアル)](https://docs.ruby-lang.org/ja/latest/method/Array/i/join.html)

“`ruby
strings = [‘fizz’, ‘buzz’]
merged_strings = strings.join(‘ ‘)
p

元記事を表示

AWSでWordPressを始めてハマった話

# はじめに
突然「よーしパパAWSでWordPress頼んじゃうぞー」と思い立つ。

まずは検索。
https://www.google.com/search?q=aws+wordpress

情報いっぱいあるし、**余裕だな**。

# アカウントを作る
[AWS アカウント作成の流れ](https://aws.amazon.com/jp/register-flow/)
**簡単そうだな**。

[スケーラブルなウェブサイトの構築方法:フェーズ 1
サーバー 1 台構成で WordPress 環境を構築](https://aws.amazon.com/jp/getting-started/projects/scalable-wordpress-website/01/)
スケーラブルにはしないのでサブネットの設定などは必要無いのだが、特に考えずにチュートリアルの通り進める。
見本の画面と実際の画面がところどころ違うが、大した問題ではない。
**簡単すぎる**。
# WordPressでハマる
無事にインスタンスが起動した。[フェーズ 1-5](https://aws.amazon.c

元記事を表示

Moodle 3.8 マニュアル – プラグインFAQ

[原文](https://docs.moodle.org/38/en/Plugins_FAQ)

# プラグインFAQ

内容

[1 プラグインとは何か?](#1-プラグインとは何か)
[2 プラグインのインストール方法は?](#2-プラグインのインストール方法は)
[3 パッチの適用方法は?](#3-パッチの適用方法は)
[4 新しくインストールしたプラグインがプラグインリストに出てこないのはなぜですか?](#4-新しくインストールしたプラグインがプラグインリストに出てこないのはなぜですか)
[5 Moodle にコードを貢献するにはどうしたらよいですか?](#5-moodle-にコードを貢献するにはどうしたらよいですか)
[6 新しいプラグインを作成する上でなにか情報はありますか?](#6-新しいプラグインを作成する上でなにか情報はありますか)
[7 関連項目](#7-関連項目)

#1 プラグインとは何か?

プラグイン(以前は add-on, contributed code あるいは短く contrib と呼ばれていた)は、追加の特徴と機能を Moodle であなたが得る

元記事を表示

TRACKER NETWORKのApex Legends Apiを触ってみた

#はじめに
TRACKER NETWORKは自分のfpsゲームのstatsを見るのに使っていましたが、APIがあるなんて初めて知りました。

#TRACKER NETWORKのAPI Key取得方法
####1,TRACKER NETWORKにログイン後、下記で適当なアプリを作る
>https://tracker.gg/developers/docs/getting-started

####2,作成すると、API Keyが出てきます
![tracke.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576886/9956c9df-e819-98f9-ba6a-b05da4807487.png)

#API Keyをheaderに埋め込む
“`
//ヘッダーフィールドの配列
$header = array(
“TRN-Api-Key:入手したAPI Key”
);

//headerの設定
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
“`

#コード

元記事を表示

関数について

#関数とは
何かの処理を実行してくれるものである。

ミキサーで例えると、
ミキサーが関数
イチゴが引数1
ミルクが引数2
イチゴミルクが返り値
である。

以下のソースがミキサーの関数

“`php
function mixer($material1, $material2)
{
$deliverable = $material1 . $material2;
return $deliverable;
}
“`

ミキサーにイチゴとミルクを入れてイチゴミルクを完成させる。

“`php
mixer(“strawberry”,”milk”);
“`

元記事を表示

PHPで配列内の同じキーの要素を足し算したい

PHPの標準関数で、配列内の同一のキーの要素を足し算する方法って用意されていないですよね。
やり方はいろいろあるかなと思いますが、一つのやり方を忘備録として書き留めておこうかと思います。
こうやって書いた方がもっとスマートに計算できるよっていう方法がありましたら、コメント欄で教えてください!!

##foreachでまわして同じキーの要素を足し算する
“`
$sample1 = array(4) {[0]=> 84, [1]=> 6, [2]=>3, [9]=>21}
$sample2 = array(4) {[0]=> 15, [1]=> 3, [2]=>0, [9]=>26}

$result = [];
foreach ($sample1 as $key => $val) {
$result[] = $val + $sample2[$key];
}

$result = array(4) {[0]=> 99, [1]=> 9, [2]=>3, [9]=>47}
“`

以上、ご参考までに!!!

元記事を表示

PSR-1: Basic Coding Standard 読了

# PSRとは
– PSR(PHP Standards Recommendations)とは、[PHP-FIG](https://www.php-fig.org/)(PHP Framework Interop Group)が策定しているPHPコーディング規約を指す

# PSR-1: Basic Coding Standard
[PSR-1: Basic Coding Standard](https://www.php-fig.org/psr/psr-1/)

>This section of the standard comprises what should be considered the standard coding elements that are required to ensure a high level of technical interoperability between shared PHP code.
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”

元記事を表示

Oracle Cloud無償トライアルで簡単なブラウザゲームを作る(無駄にOCIリソースを使用)

#本投稿の背景
年始にOracle Cloud無料トライアルを申請したのですが、DBを作るだけではつまらないと思い、
OCI(oracle cloud infrastructure)リソースを無駄に使いながら、簡単なブラウザゲームを作ってみました。

##作ったブラウザゲーム

**■ブラウザゲーム概要**
①シュートコースを選択
②[シュート]ボタンをクリック
 ⇒ゴール or キーパーセーブの判定を行い画面に表示。
  (勝敗数はDBに記録するので、通算勝敗数を表示)

本記事を見ることで、誰でもブラウザゲームが作成できるように手順を記載しています。
**※プログラム(php)、OCI環境、各種パッチ、セキュリティ設定は、ブラウザゲームが最低限動く設定としてますのでご了承ください**

##Oracle Cloud構成図

元記事を表示

Laravelの基本的なArtisanコマンド

#はじめに
よく使うLaravelのartisanコマンドをまとめたいと思います。
DB作成する際にはSQL直書きするとコードの量が多くなる(SQL入力しにくい。。。)ので特にテーブル作成はartisanコマンドつかった方が楽になります。

#Artisanコマンド
基本的なArtisanコマンドについてまとめていきます。

・Artisanコマンドの一覧を見る

“`php:
$php artisan list
“`

・Artisanコマンドの一覧を見る

“`php:
$php artisan migrate:status
“`

・テーブルの作成
 table_name:作成したいテーブル名

“`php:
$php artisan make:migration create_(table_name)_table
“`

・マイグレーションの実行

“`php:
$php artisan migrate
“`

・ロールバック(マイグレーション取り消し)
 –step=1:数字は直近のマイグレーションファイルから戻したいファイル数

“`php:
$php

元記事を表示

riot apiでアカウント情報を取得してみた

#はじめに
調べてみると今まで触ってきたサービスの中にapiがあるものが多かったので、
今回はLeague of Legendsのapi、riot apiを触ってみました。

#riot apiのapiキーの取得方法
####1,Riot Developer Portalにサインイン
>https://developer.riotgames.com/

####2,DEVELOPMENT API KEYを取得
**DEVELOPMENT API KEYは24時間で使えなくなるので使いたいときは更新しましょう**

#コード

“`riot_api_test.php

元記事を表示

envファイルとはなんだろう。

## コトの経緯を簡単に

先日、自社のスーパプログラマーから
「YOU、envファイルの事全然わかっちゃいないね!勉強しちゃいなよ!」
と肩をポンと押してもらう。

入社してコーディングの学習をメインに行なっていますが、
環境設定とかそこらへんの学習の波に乗れていないのが本音です。
早速ですが勉強してみる。

## 筆者のenvファイルの認識

プログラミングスクールではカリキュラムにさらっと書いてあるぐらいだったので深掘りしませんでした。

認識としては
「公開しちゃいけない内緒の内容を書いておくヒミツファイル」
っていう認識でした。激甘ですかね。。。
(私、スクールに通っておりました。)

## envコマンド

envファイルの前に
envコマンドというものがある!

コンピュータに対する命令の1つ
環境変数を設定してコマンドを実行する時に使うコマンド!

※書き方

“`
env [オプション] [環境変数名]=[値] [コマンド]

env env1=val1 com1

“`

環境変数[env1]に値[val1]が設定された状態で[com1]が実行される。

##

元記事を表示

OTHERカテゴリの最新記事