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

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

PHPで形態素解析を行う(Yahoo!のAPIを使用します)

以前「[PHPで分かち書きをする意識低い方法](https://qiita.com/emesh/items/d54723b6253a6f37a77e)」というエントリーを書いていましたが、今回は[Yahoo!](https://developer.yahoo.co.jp/webapi/jlp/ma/v1/parse.html) 版です。使用する際には1日50000回以下で収まる用途であること(越えるとエラーになる)と、クレジットも必要です。それらの制約が無い場合には選択肢に入るかと思います。

#準備
といっても、Yahoo!のサイトから[アプリケーションを開発をする]ボタンをクリックして所定の項目を入力するだけです。

#コード
APIキーを取得した際にClient IDとシークレットが提示されるかと思いますが、Client IDをつかいます。
レンタルサーバーなどで、simplexml_load_fileが使えないこともあるでしょうからCurlを使います。

“`php

元記事を表示

PHP 簡易掲示板作成 削除機能実装編 #3

[PHP 簡易掲示板作成 表示編 #2](https://qiita.com/yuyawatanabe1028/items/f62c6555cc723b083914)の続き
データの保存内容

“`:test.txt
1<>yuya<>完成<>2021/2/8 10:13:16
2<>yuya<>完成<>2021/2/8 10:13:22
3<>yuya<>完成<>2021/2/8 10:13:25
“`

#目標
削除機能を実装する
1. 削除対象番号を送信
2. 削除対象番号を受信
3. 受信した削除対象番号を変数に代入
4. ファイルを開く
5. ファイルの中身を1行1要素として配列変数に代入する
6. ファイルの行数の数だけ繰り返し処理を行う
7. 処理の内容:区切り文字「<>」で分割
8. 処理の内容:投稿番号の取得
9. 処理の内容:投稿番号と削除対象番号が一致していない場合、書き込む
10. ファイルを閉じる

#削除機能を実装する
1. 削除対象番号を送信

“`html:HTML


元記事を表示

PHP 自前のコレクション(リスト)クラスを実装する

[Laravel](https://laravel.com)の[Collection](https://readouble.com/laravel/8.x/ja/collections.html)クラスのような、`foreach`可能なオブジェクトを作ります。
実装の幅が広がるので覚えておいて損はないです。

## 環境

– PHP 8.0.1

## 前提知識: IteratorAggregate

コレクションクラス(イテレート可能なオブジェクト)を作成するためにはPHPが用意している `IteratorAggregate` インターフェースを契約する必要があります。
https://www.php.net/manual/ja/class.iteratoraggregate.php

“`php
IteratorAggregate extends Traversable {
abstract public getIterator(): Traversable
}
“`

## Let’s try!

– Task.php (入れ物に入れる物)
– TaskList.p

元記事を表示

laravelのUTを高速化する

laravelを使ったというか、全般に使えると思うのですが、UTを高速化したお話です。
4倍速ですよ!!試したプロジェクトでは…。

## 遅い原因
原因は3点ありました。

### 1つ目: RefreshDatabase
言わずもなですが、こいつがやってくれるのは、

* DBを初期化して、migrationを行う (1度だけ)
* TestCase毎にトランザクションを開始して、TestCase終了時にrollbackしてくれる

の2つです。
テストケースが実行される前にDBを綺麗にしてくれるので、ゴミデータなどが残りません。便利です。

が、コードが以下のようになっています。

“`php
protected function refreshTestDatabase()
{
if (! RefreshDatabaseState::$migrated) {
$this->artisan(‘migrate:fresh’, [
‘–drop-views’ => $this->sho

元記事を表示

カラーパレット

webアプリケーション作成に使えるおしゃれなカラーパレットのURL
https://www.happyhues.co/palettes/17

![スクリーンショット 2021-02-11 0.54.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050099/c571f00b-19c0-0e3e-e093-878652ded567.png)

元記事を表示

laravel6 ファイル添付できるメール送信機能を作成する

# 目的

– ファイル添付することのできるメール送信機能を作成する方法をまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.11 | Homebrewを用いてこちらの方法で導入→[Mac HomebrewでPHPをインストールする](https://qiita.com/miriwo/items/cd54077aad7e139cf518) |
| Laravel バージョン

元記事を表示

xamppのエラーにハマった※zend_extensionのパス指定ミス

vscode でphpデバッグを行うため、
xdebugパッケージをvscodeへインストールした。

手順通りに
https://xdebug.org/wizard

http://localhost/phpinfo.php
の内容をコピペし、下記情報が表示された。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569318/1433e128-e772-ba91-17c0-7a4d151c03dd.png)

こちらも手順通りにdllファイルを\xampp\php\ext\へ格納
php.iniに
zend_extension = \xampp\php\ext\php_xdebug-3.0.2-7.3-vc15-x86_64.dll
を追記

ただ、apache再起動したところエラーになる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569318/1651a4ef-a741-641

元記事を表示

XFREEの「MYSQL/PHP」プランでWordPressインストールしようとしたら、つまづいた

##作業中にハマったところの備忘録

####1.WordPressのインストールスクリプト(wp-admin\install.php)が実行できない
サーバーにWordpressフォルダアップロード後、
インストールスクリプト(wp-admin\install.php)を実行しようとしたができない。
WordPress公式には
**アップしたディレクトリ\wp-admin\install.php**
にアクセスと書かれているが、以下のように表示される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569318/b5b2ca15-d48a-223d-fe12-a78e03cc1a8e.png)
原因としては、下記のいずれかが考えられる
1.データベースが存在していない
2.ユーザーにアクセス権がない
3.config.phpのデータベース名が間違っている

結論からいうと今回は下記が原因だった。
**2.ユーザーにアクセス権がない**

対応方法としては、
コンパネの「MySQL設定

元記事を表示

【Laravel】初級 用語メモ

#MVCモデル
ルーティング→コントローラー←→モデル←→データベース
ルーティング→コントローラー→ビュー
ルーティング→ビュー

##モデル
データベースとやりとり
##ビュー
見た目
##コントローラー
処理
##*ルーティング
アクセスの振り分け
##*マイグレーション
データベースの履歴管理

元記事を表示

初心者が躓くオブジェクト指向の理解方法とその使い方【キーワード】

キーワードの説明

インスタンス化・コンストラクタ・継承などオブジェクト指向には聞きなれない単語がたくさん出てきます。
今回はその解説記事です。

インスタンス化とコンストラクタ

インスタンス化

インスタンス化とは…

・クラスのコピー(オブジェクト)を生成することをインスタンス化と言う。
・オリジナルとコピーの特徴をすべて別データに置き換えることもできる。
・PHPでは、new演算子を使う。

※前回に引き続きチョコボを使います。[初心者が躓くオブジェクト指向の理解方法とその使い方 【基礎】](https://qiita.com/Tashitasystems/items/019f795e4bd2b196b9f9)
気になる方は見ていってね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1078759/0a769041-5714-8dfb-90d2-355b718b719a.png)

元記事を表示

簡便なウェブサイト翻訳ツール(サービス)をつくってみた

これです。

i18n.page – ウェブサイト翻訳ツール

宣伝も兼ねて、と言いたいところですが、実現するまでいろいろ面倒だったので、その辺りの苦労をシェアした方が良いかと思い、記事にしてみました。

## まず、どのようなツール(サービス)か?

翻訳したいウェブサイト、または HTML ファイルを読み込んで、翻訳できそうな箇所を自動抽出、それを手動、または Google 翻訳にかけて対訳データを作ります。
![screen-shot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/30945/eb7b02b6-0b6a-20b1-f178-b7e7aca41d18.png)
そしてそれらを JSON データに変換し、お手製の JavaScript ツール1つに含めてパッケージしたものを出力し、先のウェブサイトに読み込ませると、自動翻訳機能が実装されるというものです。

## お手軽に1つのファイルにまとまっている

この翻訳ツールで出力された JavaScr

元記事を表示

PHP 簡易掲示板作成 表示編 #2

[PHP 簡易掲示板作成 データ保存編 #1](https://qiita.com/yuyawatanabe1028/items/94f2b503cee8b0170911#comment-ac8b90a30dae1cb2284d)の続き
データの保存内容

“`:test.txt
1<>yuya<>完成<>2021/2/8 10:13:16
2<>yuya<>完成<>2021/2/8 10:13:22
3<>yuya<>完成<>2021/2/8 10:13:25
“`
#目標
入力フォームのすぐ下部にテキストファイルの内容を表示する
1. ファイルを1行ずつ読み込み、配列変数に代入する
2. 配列の数だけ処理をする
3. 処理内容:区切り文字「<>」で分割して、それぞれの値を取得
4. 処理内容:上記で取得した値を表示する

#入力フォームのすぐ下部にテキストファイルの内容を表示する
1. ファイルを1行ずつ読み込み、配列変数に代入する
`file`関数:ファイルを読み込み行ごとに配列にして返す

“`php:PHP
$lines = file($filename,FILE_IG

元記事を表示

だいたいわかるPHPのコールバック関数のサンプル

しょっちゅう忘れるので、だいたいわかる感じで書いた。

## array_walkのサンプル

“`php:FizzBuzz.php

元記事を表示

laravel6 Carbonを使用して先月の月を取得する

# 目的

– 日付取得系ライブラリであるCarbonを使用して先月の月を取得する方法をまとめる

# 環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– ソフトウェア環境

| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.11 | Homebrewを用いてこちらの方法で導入→[Mac HomebrewでPHPをインストールする](https://qiita.com/miriwo/items/cd54077aad7e139cf518) |
| Laravel バ

元記事を表示

初心者がdockerでphpの開発環境を整える#4 [レンタルサーバーでdockerが使えない?]

#レンタルサーバーでdockerが使えない?
前回、docker Composeを用いてphpを打てるだけのローカル開発環境を作りました。実はこの時、サーバーを借りて、docker Hubも使って環境を全て同じ状態にできるようにしたいと考えてたんです。
そして、学習用なので無料又は低額のレンタルサーバーを借りてデプロイ(公開)までしたいと思っていました。

結果から言いましょう。
##レンタルサーバーでdockerは使えません
なんでも、レンタルサーバーにdockerをダウンロードできないらしい
レンタルサーバー大手のLサーバーさん、Sサーバーさん、Xサーバーさんも全て同じ回答でした。
他のレンタルサーバーさんにも数社問い合わせてみたけど多分、同じ感じ。
~~難しいかもですが、自己責任で試してみれば? みたいな詐欺まがいな事言われたのは内緒~~
でもイニシャルであげた大手さんは返信早いし、回答も丁寧で好印象でした!
仕様的にレンタルサーバーは無理なのかな、残念…

##dockerが使えるサーバーは?
物理的なサーバーを借りるか、クラウドサーバーを借りるかだと思います。
というか、物理

元記事を表示

【PHP】三項演算子

知識を整理するための個人的な備忘録です。

#三項演算子の書き方
“`php:基本構文
(条件式) ? (真の式) : (偽の式);
“`
PHPの三項演算子では、条件式が`真`である場合と`偽`である場合の式を指定。
条件式が`真`である場合は`(真の式)`、`偽`である場合は`(偽の式)`の結果が式全体の値となる。

if文との違いとしては、if文のように条件によって処理が分岐するのではなく、結果によって`真の式`、`偽の式`を返す。

#使い方
“`php
= 0 ? print ‘numは0以上’ : print ‘numは0未満’;
“`
三項演算子を使ったこの式は、if文を使って次のように書き換えられる。

“`php = 0) {
echo ‘numは0以上’;
} else {
echo ‘numは0未満’;
}
“`
また、三項演算子の結果は**変数に代入**できる。

“`php
= 0 ? ‘numは0以上’ : ‘numは0

元記事を表示

『NHKニュース速報』を取得して表示する

#はじめに
この記事は、日本の公共放送NHKのニュース速報を取得し、PHPで表示する方法を掲載しています。
**過度な取得は、提供元のサーバに負荷をかけることとなりますので、絶対にしないでください。**
また、あくまで取得して表示するまでの方法を掲載しています。表示デザイン等は一切考慮しておりませんので、ご了承ください。

#仕組み
NHKのニュースサイト「NHK NEWS WEB」のバックグラウンドで動作している「sokuho_news.xml」にアクセスし、データを取得します。
その後、echoを使ってデータを表示します。

#ソースコード
“`php:BreakingNews.php

    report->line as $line): ?>

元記事を表示

初心者が躓くオブジェクト指向の理解方法とその使い方 【基礎】

オブジェクト指向とは概念である

そもそもオブジェクト指向とはどんなものなのか…

<オブジェクト指向(Object Oriented Programming : OOP)とは プログラムを手順ではなく、モノの作成と操作として見る考え方。オブジェクトとは「モノ」を意味する。

    オブジェクト指向を使うと…

  • プログラミングの全体像を把握しやすい
  • プログラミング全体の構造を把握でき、物をつくるイメージでプログラムを設計できる。

  • 分業や共同作業がとても捗る
  • 大きなプロジェクト(大人数)でも分業などとてもしやすい。

  • 改良や修正がとても簡単
  • 大部分が定義できていれば、改良も修正も小さな部分を増やしたり減らしたりするだけで一気に修正が可能。

クラス

クラスとは…オブジェクトを作るテンプレート(設計図)
クラスの中には変数や関数が含まれ、クラスを軸にオブジェクトを作っていく。
![image.png](https://qiita-image-store.

元記事を表示

OracleLinux8.3開発環境構築(php7.3)

VirtualBoxを使用してOracleLinux8.3+php7.3の開発環境を構築しました。
ゲストOSのIPは固定にしました。
#本記事の環境
ホストOS:Windows10 Pro 64bit 8GB
ゲストOS:ORACLE LINUX 8.3
Oracle VM VirtualBox:6.0.4
Apache:2.4.37
Tera Term:4.105
php:7.3(モジュール版)

#構築手順1(OracleLinux8インストールまで)
* 以下URLからOracleLinux8の最新のisoファイルをダウンロードする。
http://public-yum.oracle.com/oracle-linux-isos.html
※OracleLinux-R8-U3-x86_64-dvd.iso等
※ダウンロードは時間がかかります。

* VirtualBoxを起動し「新規」を選択する。

* 「名前とオペレーティングシステム」を以下のように選択し、「次へ」を選択する。
> * Name:任意
> * Machine Folder:変更しない
> * タイプ:L

元記事を表示

CentOS8.0開発環境構築(php7.2)

VirtualBoxを使用してCentOS8.0+php7.2の開発環境を構築しました。
ゲストOSのIPは固定にしました。
#本記事の環境
ホストOS:Windows10 Pro 64bit 16GB
ゲストOS:CentOS 8.0
Oracle VM VirtualBox:6.0.4
Apache:2.4.37
Tera Term:4.102
php:7.2

#構築手順1(CentOS8インストールまで)
* 以下でCentOS-8-x86_64-1905-dvd1.iso等をダウンロードする。
https://www.centos.org/download/
※ダウンロードは時間がかかります。
* VirtualBoxを起動し「新規」を選択する。

* 「名前とオペレーティングシステム」を以下のように選択し、「次へ」を選択する。
> * Name:任意
> * Machine Folder:変更しない
> * タイプ:Linux
> * バージョン:Red Hat (64-bit)

* メモリーサイズを2048MB(※任意)とし、「次へ」を選択する。

* 「仮

元記事を表示

OTHERカテゴリの最新記事