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

PHP関連のことを調べてみた2020年07月08日
目次

Laravel Eloquantでデータを得ようとしたらエラーが出た話

# 目的

– idカラムの値を指定してレコードのデータを取得しようとした際にエラーが発生した話をまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| 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.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いてこちらの方法で導入→[Mac Laravelの環境構築を行う](https://qiita.com/miri

元記事を表示

[最新版] PHPでMessaging APIを使ったLINEbotを作る

#今回の題
API系の記事はこれで3つ目です!
前回→[[PHP] Zoom APIを利用してミーティングを作成する]
(https://qiita.com/kuzira_vimmer/items/d64f15447cb556eafd3b)
前々回→[[PHP] YouTube APIの利用(動画情報の取得)]
(https://qiita.com/kuzira_vimmer/items/dfd9f4febaec11851c06)

今回はタイトルの通り、LINEbotを作りましょう!
LINE Developersの[MessagingAPI](https://developers.line.biz/ja/docs/messaging-api/overview/)というものを利用すれば、自分好みのLINEbotが簡単に作れます。
この記事では、

– おうむ返し
– ボタン
– confirm
– 日付選択アクション

などを作ってみます。

Laravel $loop変数のプロパティと実行結果

`foeach`の$loop変数のプロパティ

| $loop ループ変数 | プロパティ |
|:—————–|——————:|
| index | インデックス番号 |
| iteration | 繰り返し数(1スタート) |
| remaining | 残っている要素数 |
| count | 配列の総数 |
| first | 最初の項目か |
| last | 最後の項目か |
| even | 偶数回目か |
| odd | 奇数回目か |
| depth | 入れ子レベル |
| parent | 親のループ変数(ネストの入れ子の場合) |

## サンプル

Contro

元記事を表示

「WebShellQuickScanner」Linuxサーバの指定フォルダーのPHPファイル中に、WebShellと高リスクファイルを速いて探し出すのクイックチェックツール,そして、検査結果をTelegramにプッシュする。

## 「WebShellQuickScanner」とは

「WebShellQuickScanner」は、Linuxサーバの指定フォルダーのPHPファイル中に、WebShellと高リスクファイルを速いて探し出すのクイックチェックツール,そして、検査結果をTelegramにプッシュする。

「Telegram」はTelegram Messenger LLPが開発するインスタントメッセージシステムである。詳細は[こちら(Telegram – ウィキペディア)](https://ja.wikipedia.org/wiki/Telegram)をクリックしてください。

**この記事は、日本語の使用ドキュメントとして発表されます。**

## 「WebShellQuickScanner」プロジェクトのリポジトリ

**Github: [DeepSkyFire/WebShellQuickScanner](https://github.com/DeepSkyFire/WebShellQuickScanner)**

## 「WebShellQuickScanner」について

Linuxサーバの指定

元記事を表示

web上にある表やExcelからSQL文を自動生成する

webサイトなどにある表やExcelなどから一行ごとにINSERT文を自動で生成するプログラムをphpで作成してみました。

##実行環境
Windows10
PHP 7.1.33

##データのコピー
まず、INSERT文にするためのデータをコピーし、適当なファイルに貼り付けます。
例えば、以下のような表がweb上にあるとします。

| ID | 名前 | 価格 |
|:—————–|——————:|:——————:|
|001| りんご |100円|
|002| ぶどう |200円|
|003| いちご |300円|
|004| バナナ |100円|
|005| ナシ |250円|
|006| スイカ |3000円|
|007| メロン |4000円|
|008| さくらんぼ| 350円|
|009| モモ |600円|
|010| レモン |300円|

この表のIDと名前だけでSQL文を作成したい場合は、Chromeの拡張機能にある「[Copytables](https:/

元記事を表示

Laravel、プロジェクトを作成して最初にやること

今回は私がプロジェクト作成して最初に行うことをメモ程度にまとめました。
かなり説明は省いています。すいません:sweat_smile:

##開発環境
・Mac
・php 7.4.6
・Laravel 7.15.0
・MySQL

##プロジェクトの作成と.envファイルの編集

1. `laravel new プロジェクト名`
2. config/app.phpの**timezone**と**locale**の変更

“`php:config/app.php
‘timezone’ => ‘Asia/Tokyo’,
‘locale’ => ‘ja’,
“`
##データベースに関する設定
###(1) .envファイルのデータベースの設定

“`php:.env
DB_CONNECTION=mysql
DB_HOST=
DB_DATABASE=データベース名
DB_USERNAME=
DB_PASSWORD=
DB_SOCKET=
“`
###(2) マイグレーションファイルの設定

まず、マイグレーションを行う意味を知りましょう!
**マイグレーションは、環境が変わった時などに

元記事を表示

[Laravel]位置情報を送ると近くの餃子か焼肉のお店を教えてくれるLINE BOTを作った

#経緯

なんか面白い物が作りたいと思い、位置情報を送ると近くの餃子屋さんと焼肉屋さんを教えてくれるLINE BOTを作りました。
なぜ餃子と焼肉かと言うと、私が好きだからです。

#参考
【公式リファレンス】
https://developers.line.biz/ja/docs/messaging-api

【LINE SDK for PHP】
https://github.com/line/line-bot-sdk-php

【[LINE Bot] 位置情報から食べログ3.5以上の優良店を検索するbot作った】
(これをお手本につくりました。)
https://qiita.com/NARI_Creator/items/f29112e6f604c86b3c0d

【ぐるなびAPIの取得方法 そのまま使えるソースコード付き】
https://enjoy-surfing.com/gurunavi/

【LineBotを作るときの雛形 for Laravel】
https://qiita.com/sh-ogawa/items/2238e579d7ee538025a0

【Larav

元記事を表示

【PHP】 Composer コマンドで tty を Docker につなげて開発したい(TTY as Interactive Shell/対話式シェルで tty)

> `composer` の `scripts` 設定で、`composer dev` と打ったら PHP の Docker コンテナを起動して触りたい。つまりコンテナにソースコードをマウントしてコンテナ内で開発・デバッグできる状態。
>
> しかし、`Interactive shell` と表示され終了してしまう。Docker に限らず、他の対話式のシェル・スクリプトでも同じ。

[「composer ユーザーコマンド 対話式 実行 tty interactive shell」でググって](https://www.google.com/search?q=site:qiita.com+composer+%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89+%E5%AF%BE%E8%A9%B1%E5%BC%8F+%E5%AE%9F%E8%A1%8C+tty+interactive+shell&tbs=qdr:y)もドンピシャの Qiita 記事が出てこなかったので、自分のググラビリティとして。

元記事を表示

Laravel で FromRequest のバリデーションをテストする

Laravel の FormRequest クラスを利用すると各フィールドのバリデーションルールを array の形で定義することができます。

“`php
[
‘required’,
‘string’,
‘min:2’,
‘regex:/^[A-Za-z0-9]+$/’,
],
‘password’ => [
‘re

元記事を表示

PHPのWhile文にif文を書く!

# PHPの学習中のアウトプットとして書きます!

例えば変数$xを定義し、変数$xを用いて2〜100までの偶数をechoする場合!

“`index.php

$i = 2; //変数定義
while ($i <= 100){ //$iが100になるまでループ if ($i % 2 == 0){ //if分で$iを2で割った時余り0になる数字をechoする echo $i; echo '
‘;
}
$i++; //$iが100になるまで1を足す
}
“`

#結果
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
74
76
78
80
82
84
86
88
90
92
94
96
98
100

#このようになります!!

以上です!!!

元記事を表示

PHPで配列を比較して差分を抽出するときに使えるメソッド

# はじめに
PHPで配列の要素の比較をしたいと思い、調べていたら、「array_diff」というメソッドがあり、使ってみたら便利だったので、備忘録を残します。

# 使い方(例)
“`hoge.php

元記事を表示

Laravel データベース接続の設定

Laravelで作成したデータベースに接続するための設定を解説します。

## database.php

`config/database.php`にデータベースの接続設定を記述します。

初期設定は`mysql`になっています。
ここを切り替えることで、`connections`キー内にあるその他のデータベースも使用することができます。

“`php
‘default’ => env(‘DB_CONNECTION’, ‘mysql’),
“`

使用するデータベースの内容を確認します。

“`php:config/database.php
‘mysql’ => [
‘driver’ => ‘mysql’,
‘url’ => env(‘DATABASE_URL’),
‘host’ => env(‘DB_HOST’, ‘127.0.0.1’),
‘port’ => env(‘DB_PORT’, ‘3306’),
‘database’ => env(‘DB_DAT

元記事を表示

PHPサーバーで、悪質脆弱性スキャナ(Vulnerability Scanner)や悪いボット(Bad Bots)を制裁します。

## 悪質脆弱性スキャナ(Vulnerability Scanner)や悪いボット(Bad Bots)とは

悪質脆弱性スキャナ(Vulnerability Scanner)や悪いボット(Bad Bots)とは、許可なくサーバーを強制的にスキャンするプログラム。通常、このようなスキャナは、大規模かつ規則的な規模でインターネット全体をスキャンします。

![Snipaste_2020-07-06_23-59-07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668967/54609342-e9df-9ca2-6ecd-515f20057df8.png)

確かに、安全なサーバー中ではありますが、危害はありません。 しかし、このアクセスログを見るたびに、うっとうしいと思う。

## 制裁準備

今回は、このような悪質な脆弱性スキャナーと戦うために、非常に古いテクニックを使ってみました。

それは、「**GZIP爆弾**」です。

この方法は、少なくとも20年以上前からありましたが、今もなお良い解決策を

元記事を表示

PHPでWebスクレイピングをしCSVファイルに書き出す方法

##コード全体

“`index.php
find(“h3:eq($i)”)->text();
$content[$i] = phpQuery::newDocument($html)->find(“.content:eq($i)”)->text();
fputs($file, $title[$i].$content[$i].”\n”);}
fclose($file);
?>
“`

##情報をURLから取得
phpQueryを読み込む

“`index.php
// phpQueryを読み込む
require_onc

元記事を表示

Laravel マイグレーション デフォルト値の設定 簡易版

# 目的

– マイグレーションファイルでのデフォルト値の設定方法を簡易的にまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| 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.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いてこちらの方法で導入→[Mac Laravelの環境構築を行う](https://qiita.com/miriwo/items/ad

元記事を表示

yoast seo をカスタマイズするちょっとした方法

wordpressサイトの構築において、SEO系のプラグインを使用する場合、
代表的なものとして、「Yoast SEO」「All in One SEO Pack」があげられるのではないでしょうか。

Yoast SEOを使用した場合に、「個別ページ」「投稿ページ」「アーカイブページ」など、meta設定やrobotsの設定を一括で指定するができます。
また、それそれの編集ページで個別に調整することもできます。

しかし、個別に調整したい投稿が、全投稿のうち10件あったとした場合(10件の調整内容は同じとする)、10件それぞれに管理画面から編集していてはめんどくさい。
調べたら、フィルターをかましたら、諸々PHPで上書きできるようでした。管理的にもこちらのほうがよさそうなのかも〜。
メモがてらに、いくつか書き留めておきます。

# メタタグ
### title
“`php
add_filter( ‘wpseo_title’, ‘custom_title’ );
function custom_title($title) {
//条件分岐
if ( is_page(‘about’)

元記事を表示

【初心者向け】【PHP】FizzBuzz問題

今回はphpでFizzBuzz問題を書きました。と言っても前回とほとんどおんなじようなコードです。

# FizzBuzz問題とは?
1から100まで順に数えて出力して行き、3で割り切れる数は「Fizz」5で割り切れる数は「Buzz」両方で割り切れる数は「FizzBuzz」と出力する、ようにプログラムを書く問題です。

これが書けるか書けないかでプログラマー志願者を仕分けられるようになったようです。実際今でも使われていますから押さえておいて損はないと思います。[FizzBuzz詳細](https://ja.wikipedia.org/wiki/Fizz_Buzz)

# 私が書いたコード

“`php:sample.php
“;
} else if ($i % 5 === 0) {
print “Buzz
“;
} else if (

元記事を表示

Virtualbox, Vagrant, AnsibleでLAMP環境を構築

# 仮想環境の構成と要件
## 仮想環境の構成
### ホストOS
* macOS Mojave (10.14.x)

### 構成
* CentOS 7
* PHP 7
* MySQL 5.6
* Apache 2.4

## 要件
* ドキュメントルート配下のファイルを、ホスト(PC)とゲスト(仮想環境)で共有する
* ホストのブラウザで、ゲストに設置したHTMLファイルがウェブページとして見られるところを目指す

# 使うソフトウェア・ツール

* Virtualbox
* Vagrant
* Ansible

# 構築
## 必要なソフトウェアをインストール
### Virtualbox
公式サイトから最新版をダウンロードして、インストール。
(この記事の時点では 5.2.18)

Oracle VM VirtualBox
https://www.virtualbox.org/

### Vagrant
公式サイトから最新版をダウンロードして、インストール。
(この記事の時点では 2.1.2)

Vagrant by HashiCorp
https://www.vagrantu

元記事を表示

PHP クラスの使い方 勉強メモ

##クラスの使い方のmemo

“`php:クラスの使い方
// クラス
class Post
{
// プロパティ
private $text;
private $likes;

// コンストラクタ
public function __construct($text, $likes)
{
$this->text = $text;
$this->likes = $likes;
}

// メソッド
public function show()
{
printf(‘%s (%s)’ . PHP_EOL, $this->text, $this->likes);
}
}

//ここで値を渡す
$posts[0] = new Post(‘hello’, 0);
$posts[1] = new Post(‘hello again’, 1);

//Postクラスのshowメソッドを実行
$posts[0]->show();
$posts[1]->show();

“`

“`ruby:出力される値
hello (0)

元記事を表示

docker-composeで、nginx、php、mysqlの環境を作成してみた

**私は初心者です。間違っていたりもっと良いやり方がありましたら教えていただけるとありがたいです**

こちらのリンクにコードを置きました

参考

– [docker-composeでPHPとMySQLを連携させてみる – Qiita](https://qiita.com/fujitak/items/b56122e2ecd94022a7b6)
– https://hub.docker.com/_/php
– https://hub.docker.com/_/mysql
– [FuelPHPでのMySQL接続時にThe server requested authentication method unkno

元記事を表示

OTHERカテゴリの最新記事