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

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

PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (2)

PLCからゲートウェイでデータを取得し、データベースにJSONで保存します。複数回に分けて、サンプルを用いて解説します。
今回はその2回目、ゲートウェイによるPLCからのデータ取得です。
![c2c94364c86325cb400ed616c683221562d4d91f05808.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/a26699f6-4925-098c-d44e-12b79c7a4664.png)
サンプルの環境については第一回で解説しています。必ず第一回を参照し、前提となる環境を理解した上で以下の解説を参照してください。
[PLCからゲートウェイでデータを取得しデータベースにJSONで保存 \(1\)](https://qiita.com/COOLMAGICPRODU1/items/31513295943763365915)
## 想定: PLC上のデータ
サンプルでは、取得するPLC上のデータを以下のように想定しています。
![520f28de070aceae292d97

元記事を表示

PHP match式

# 概要

– PHPのmatch式について簡単にまとめる

# match式

– switch文の上位互換的な存在

“`
match 式の比較は、 switch 文が行う弱い比較ではなく、 厳密に値を比較(===) します。
match 式は値を返します。
match 式の分岐は、 switch 文のように後の分岐に抜けたりはしません。
match 式は、全ての場合を網羅していなければいけません。
“`

– PHP8以降で利用可能
– `;`で終わらせる必要あり

# 使い方

“`
match (評価したい変数) {
評価したい変数の値A => 評価したい変数が評価したい変数の値Aだった時の処理,
評価したい変数の値B => 評価したい変数が評価したい変数の値Bだった時の処理,
評価したい変数の値C => 評価したい変数が評価したい変数の値Cだった時の処理,
};
“`

# 具体的な使い方

– 変数`$str`に格納されている値によって変数`$result`に格納する文字列を変更したい。

元記事を表示

いろんな言語での文字列操作の比較(VBA, Java, C#, PHP, Python, JavaScript)

うちのような小さな会社が、受託案件を長年やっているといろんな言語の保守メンテをやる必要があるのですが
文字列操作、この言語でなだっけ?とよく忘れてしまいます…
よく使うものを中心に文字列操作をまとめていきます。
完全に個人的な忘備録です。

主にVBAを中心に Java, C#, PHP, Python, JavaScriptについて書いていきます

[文字数の長さを取得する](#文字数の長さを取得する)
[文字列から指定文字数の文字を取得する(トリミング)](#文字列から指定文字数の文字を取得する(トリミング))
[文字列から左側の指定文字数の文字を取得する](#文字列から左側の指定文字数の文字を取得する)
[文字列から右側の指定文字数の文字を取得する](#文字列から右側の指定文字数の文字を取得する)
[文字列から指定文字を検索する](#文字列から指定文字を検索する)
[文字列の後ろから指定文字を検索する](#文字列の後ろから指定文字を検索する)
[文字列を置換する](#文字列を置換する)
[アルファベットの小文字を大文字に変換する](#アルファベットの小文字を大文字に変換する)

元記事を表示

PLCからゲートウェイでデータを取得しデータベースにJSONで保存 (1)

PLCからゲートウェイでデータを取得し、データベースにJSONで保存します。複数回に分けて、サンプルを用いて解説します。
![4bef24e301bab8c385bc5659d66fab1262d4b8451782b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/0761fe5e-fc3f-f199-6583-1919e8981239.png)
初回は、ゲートウェイでPLCのデータを取得します。
![c2c94364c86325cb400ed616c683221562d4b8537ad2c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737842/7f21bb24-a3db-e867-e31c-20579da076e4.png)
サンプルは、Windowsがあれば環境の準備と動作が可能です。よろしければ、自己責任のもとで環境を準備し、サンプルを動作させてみてください。
## PLC
この解説でのサンプ

元記事を表示

contact form 7でメールアドレス確認用フォーム作成する方法

自分の備忘録としてコード残しておきます。

functions.phpに記述
~~~ php
add_filter( ‘wpcf7_validate_email’, ‘wpcf7_validate_email_filter_confrim’, 11, 2 );
add_filter( ‘wpcf7_validate_email*’, ‘wpcf7_validate_email_filter_confrim’, 11, 2 );
function wpcf7_validate_email_filter_confrim( $result, $tag ) {
$type = $tag[‘type’];
$name = $tag[‘name’];
if ( ‘email’ == $type || ‘email*’ == $type ) {
if (preg_match(‘/(.*)_confirm$/’, $name, $matches)){ //確認用メルアド入力フォーム名を ○○○_confirm としています。
$tar

元記事を表示

WordPressでカスタム投稿タイプ別にループする方法

# WordPressでカスタム投稿タイプ別にループする方法

以下カスタム投稿タイプ別にループ処理を作成する場合のコード。

投稿タイプ:news
表示する投稿数:5

~~~ php


‘news’, /* 投稿タイプを指定 */
‘posts_per_page’ => 5, /* 表示するページ数 */
); ?>





~~~

このコードを利用すればindexページに複数種類のループを入れることも可能です。

元記事を表示

kindle本セールの開催情報を、出版社くくりではなく一冊ごとにリマインダー通知を受け取りたくて作った

kindle本セールの開催情報を、出版社くくりではなく一冊ごとにリマインダー通知を受け取りたくて作ったのが、この
kindleセールチェッカーというスクリプトです。

出版社のセール情報だと、欲しいと思っていた本がセール対象になっているのか、いちいちAmazonトップから検索をかけないとなりませんでした。

それが面倒くさかったので、キャンペーン情報をページ内からスクレイピングするファイルを作りました。

元記事を表示

Cloud9で開発したLaravelプロジェクトを、ローカルで動かそうとした時につまった話

# はじめに
大学講義の最終課題で、Laravelを使用したWebアプリケーションを作成した。
参考にした書籍に従って、AWSのCloud9を使って開発を行なったが、教授に提出する際のデバッグのことを考え、ローカルで動くように改修しようとした際つまったことを記述する。

# 問題点
Cloud9で開発していた際にはhttpsでの接続がされていたが、localhostではhttpでの接続をしなければならなかったために、php artisan serve –port=8080 をコマンドで入力してから接続すると、
“`
Invalid request (Unsupported SSL request)
“`
がコマンドラインに表示され、接続ができなかった。
# 解決策
/routes/web.php に
“`php
URL::forceScheme(‘http’);
“`
を追記したところ、httpsがhttpに問題無く変わった。

元記事を表示

【PHP】連想配列の指定カラムの値を別の配列に追加する方法

## 概要
文字で書いてもつかみにくいので、まず2つの配列の図をご覧ください。
![ああああ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2713225/b7a6ba03-9596-04af-7544-2784377c9754.jpeg)
・`$shop_lists` 【出荷先配列】果物・出荷先を定義 
・`$origins` 【産地配列】果物・産地を定義
### やりたい事
`$shop_lists`に`$origins`の配列から産地を取得して追加したい。

## 追記

こちらの記事で解説しました方法はまだまだ改善の余地のある書き方となっております。
下のコメント欄によりシンプルな書き方を載せて頂きました。
備忘録として筆者が書いた方法も残しておきたいのでそのまま残しますが、やり方の参考はコメント欄に乗せて頂きました方法をご確認ください。

## 開発環境
Windows 10
XAMMP
PHP 7.4.29
Laravel Framework 8.83.15
※処理内容はバニラのphpで書

元記事を表示

【PHP8.2】PHP8.2の新機能

[PHP8.2](https://qiita.com/rana_kualu/items/fc4b02e2daaf102aa92f) / [PHP8.1](https://qiita.com/rana_kualu/items/a6601b49e0591eb42200) / [PHP8.0](https://qiita.com/rana_kualu/items/fe7998fbe773544d5d25)

2022/07/19、PHP8.2が[フィーチャーフリーズ](https://wiki.php.net/todo/php82)しました。
言語機能に関わるような機能の追加・変更が締め切られたということです。
今後はデバッグを繰り返しながら完成度を高めていき、2022/11/24にPHP8.2.0がリリースされる予定です。

というわけでPHP8.2で実装されるRFCを見てみましょう。

# RFC

## [Disjunctive Normal Form Types](https://wiki.php.net/rfc/dnf_types)

賛成25、反対1で受理。

[選言標準形](

元記事を表示

endroid/qr-codeを用いてphpでQRコード画像を生成する

## 実現したいこと
phpのController内で任意の情報を持たせたQRコード画像を生成・保存する。

## インストール
“`console
composer require endroid/qr-code
“`

## 実装
“`$qrData“`にはQRコードの中に保持させたいデータを入れておく。

“`php
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Builder\Builder;
use Endroid\QrCode\Encoding\Encoding;
use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelHigh;
use Endroid\QrCode\Label\Alignment\LabelAlignmentCenter;
use Endroid\QrCode\Label\Font\NotoSans;
use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
use

元記事を表示

PHPでのclassの使用

# PHPでclassを学習した
基本的にフレームワークなんかを触りすぎてclassの概念を理解できていると言えなかったので備忘録として残しておく

# 実際にclassを使ってみた
# クラスの作成
class Name {
# クラス内で使う変数の定義
private $name;

# クラスを呼び出したときに呼び込まれる関数
public function __construct($name) {
$this->name = $name;
}

public function getName() {
return $this->name;
}
}

# インスタンスの作成
$name = new Name(“Taro”);
$get_name = $name->getName();
echo $get_name;

コードが呼び込まれる流れ
① name = new Name(“Taro”)でインスタンスを

元記事を表示

【PHP】Youtube Data APIで動画のコメントの一覧の取得

## できること
特定のYoutubeの動画のコメント欄の一覧の取得とcsvファイルへの書き込み

## 事前準備

**ライブラリのインストール**
“`
composer require google/apiclient:^2.0
“`

**APIキーの取得**
下記が参考になるかと思います。

https://qiita.com/gentuki/items/dfd9f4febaec11851c06

https://developers.google.com/youtube

## ソースコード

“`

元記事を表示

【PHP】基本文法まとめ(※随時追加予定)

PHPを学習している中で出てきた基本文法をまとめていきたいと思います。

# 基本形
– PHPを使うときは、``でくくる。
– 文末に必ずセミコロンをつける。

“`php

“`

# 変数の四則演算
– 省略形の一覧

まずは検索機能のコントローラーを作成します。
同時にコントローラーアクションも作成します。

“`php
// 変数xに1を代入
$x = 1;

// 四則演算の省略形
$x += 10;
$x -= 10;
$x *= 10;
$X /= 10;
$x %= 10;

// 値が1のときだけの省略形
$x ++;
$x –;
“`

# 文字列の連結
– 文字列の連結は、ドット「.」を使う
– 「.=」で省略して書ける

“`php
$name = ‘佐藤’;

echo ‘私の名前は’.$name.’です’;
// 結果: 私の名前は佐藤です

// 省略形
$name .= ‘にしき’;
echo $name;
// 結果: 佐藤にしき

元記事を表示

高知県のよさこい祭り2022に出るチームとスケジュールをjsonデータにする迄。

# 高知県のよさこい祭り2022に出るチームとスケジュールをjsonデータにする迄。

http://www.cciweb.or.jp/kochi/yosakoiweb/schedule/

1. 公式ページからよさこい祭りに出るチームとスケジュールを確認する。
2. 残念ながらチームとスケジュールデータは画像データだった為、OCR処理を行う。
3. OCR後、変換できなかった部分を手動修正する。
4. カンマ区切りのデータを作り下記のPHPコードでjsonファイルを生成する。

尚、githubと自サイトに置いておきますのでjsonデータはご自由にお使いください。

https://yosakoi-video.com/yosakoi2022/

https://github.com/taoka-toshiaki/yosakoi2022-json-data

“`php:下記のPHPコード

元記事を表示

CakePHP4.3のフィクスチャファクトリとプラグインのユニットテスト

引き続き、baserCMS5の開発にてCakePHP2系から4系への移行を進めています。

CakePHP4.3 より、これまでのフィクスチャマネージャーが非推奨になり、フィクスチャファクトリの利用が推奨されているようです。
色々と仕組みがややこしく、ドキュメントが少ないので記録しておきます。

– [フィクスチャのアップグレード](https://book.cakephp.org/4/ja/appendices/fixture-upgrade.html)

従来は、テスト実行時にテーブルの作成とデータ登録がされていたのですが、フィクスチャマネージャーを利用しなくなった事により、テーブルの作成処理が `tests/bootstrap.php` でのマイグレーションでの生成に移行となっている様子。
つまり、 `bootstrap.php` にて、マイグレーションを実行しないとテーブルが作成されない仕様。

まず、マイグレーションは `tests/bootstrap.php` 次のように実行します。
“`php
use Migrations\TestSuite\Migrator;
/

元記事を表示

PHPでログインフォームを作成してみました。

# PHPでログインフォームを作ってみました
開発環境
・M1 MacBook
・MAMP
・PHP フレームワーク無し
・HTML5
・phpmyAdmin
・エディタ vscode

## コード一覧 (会員登録は載せていません)

“`

元記事を表示

2022-07-11 apache から file_put_contents で /tmp に書き込んだファイルが見当たらない

OTHERカテゴリの最新記事