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

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

Python,Ruby,PHP,Java,JavaScript,PerlのC言語拡張の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,PerlのC言語拡張の比較

# Python

https://qiita.com/pocokhc/items/836a3596df5facd00824https://qiita.com/nabion/items/594fb3316583130a636e

# Ruby

https://qiita.com/suketa/items/ab6b88093de4a54b3b06

# PHP

https://qiita.com/takeyoshi-k/items/2a993eefbe06be047eff

# Java

https://qiita.com/tobita_yoshiki/items/0400f7e393fc0ba2d0cb

# JavaScript

https://qiita.com/mokomium/items/57

元記事を表示

連想配列内の1つの値(配列)のみ階層を深くする方法

## 概要
業務で連想配列内の一部の値のみ、階層を深くする必要のある実装を行う必要がありました。今までは、`パターン1`のやり方で実装しておりましたが、`リーダブルコード`を読んでから、質が高く綺麗で分かり易いコードを書くにはどうしたら良いんだ考えており、`パターン1`の書き方は絶対に使いたくありませんでした。
なかなか、色々な記事を調べてもヒットしなくて途方に明け暮れておりましたが、急に閃いて実装ができました。
もし、同じ様な悩みをお持ちの方がいらっしゃるかもしれないと思い、記事に残しました。

“`php
// パターン1(以前までの書き方)
$test[‘sample’][‘level1’][‘level2’] = ‘test1’;
$test[‘sample’][‘level1-1’] = ‘test2’;
$test[‘sample’][‘level1-1-1’] = ‘test3’;
“`

– 連想配列内に`key`と`value`を記述配列を用意するだけで、1つだけ階層の深い連想配列を分かり易い書き方で表現できます。
“`php
// パターン2(新しい書き方)

元記事を表示

DMM apiの使い方(自分のデータベースを作る方法)

※本記事は成人向けのサイトに使った技術についてです。

実現したかったこと

DMM apiではソートできないものがあったので独自のデータベース(以下DB)を作りたかった。

例:女優apiでできない誕生日での抽出など

実装環境

・mixhostレンタルサーバー
・Wordpress(テーマcocoon)使用
・FileZilla Clientでphpファイル設置

使用言語

・SQL
・php
・javascript

javascriptでやること

概要:phpとDMM apiの橋渡し

function main(){
宣言省略

for(let k=1 ; k<”総女優人数” ; k=k+100|0){ ・ let url = "”DMM apiにアクセスするためのurl”"; ・ fetch(url).then( function(response) { return response.json(); }).then(async function(json) { ・ for (let i = 0

元記事を表示

php emptyで0も空になる

# empty()は0も入る
phpの`empty()`を実行すると0も空になる

```
$ php 221015.php
[0=>グー,1=>チョキ,2=>パー]:0
empty
0
```
簡単なじゃんけんを作って実行

こうならないために
```empty.php
if($stdin_num === ""){
echo 'empty'.PHP_EOL;
return false;
}

```
でしてみた。もっと簡単な方法探す。
文字列は判定してくれるかも。
# 参考

https://qiita.com/shinkuFencer/items/48718f0c8d203ca513db#%E7%A9%BA%E6%96%87%E5%AD%97%E5%88%A4%E5%AE%9A%E3%81%A8%E3%81%97%E3%81%A6%E3%81%AEempty

元記事を表示

php ubuntuにmbstringを入れる際にエラーになった

# 環境
- ubuntu20.04
- windows surface
- php 7.4

# 拡散モジュール
```ubuntu
sudo apt -y install php7.4-intl php7.4-xmlrpc php7.4-soap php7.4-mbstring
```
拡散モジュールは`php7.4-mbstring`だけでいいかもしれない

https://www.kshare.jp/blog/archives/751.html

元記事を表示

【PHP8.3】JSONが正しいかどうか判定できるようになる

まだ[PHP8.2](https://qiita.com/rana_kualu/items/fc4b02e2daaf102aa92f)もリリースされていませんが、PHP8.3に導入される機能が早々にひとつ決定しました。

ということで以下は該当のRFC、[PHP RFC: json_validate](https://wiki.php.net/rfc/json_validate)の紹介です。

# PHP RFC: json_validate

## Introduction

このRFCでは、文字列が正しいJSON文字列であるかを検証する関数`json_validate()`を導入します。

同機能のユーザランド実装はほとんどが`json_decode()`を使用していますが、これは文字列をパースする際にZVALを生成し、検証するだけであれば不要な処理や無駄なメモリを浪費しています。

`json_validate()`はPHPコアに存在するJSONパーサを使用します。
これは`json_decode()`で使用されているものと同じであるため、`json_validate()`が有

元記事を表示

twitter/pelikanをPHPから使う

最近Twitterで`twitter/pelikan`というものを目にしました。

https://github.com/twitter/pelikan

MemcachedやRedisのようなキャッシュサービスで、上記リポジトリのREADMEによると既存のMemcachedクライアントで操作できるようです。
というわけで、PHPのMemcachedモジュールを使って試してみました。

## 検証環境
- Ubuntu 18.04.6 on WSL
- Windows 10 Home
- PHP 8.1.11
- Rust 1.64.0

## インストール
### Pelikan
基本的には https://github.com/twitter/pelikan#building-pelikan の通りですが、cmake が apt でインストールした 3.10 では動かなかったので、[こちら](https://zenn.dev/suudai/articles/8b484ac39fde38)を参考に 3.23 を別途インストールしました[^1]。
[^1]:READMEには`cma

元記事を表示

php バリデーションエラーを画面表示方法

PHPのバリデーションについて学習したので皆さんに紹介します。

プログラミング初級者ですが、学んでいる身としては、バリデーションはPHPを作成する上で
とても重要なスキルで、PHPをして行く中で重要なので、

user_reg.php(新規登録画面)
```php

名前: 

年齢: 

PHPのセキュリティを上げる(エスケープ処理)

PHPのコードが完成したときに出てくる問題の一つにセキュリティがあると思われます。
その時に圧倒的に役に立つhtmlspecialcharsというエスケープ処理があるのですが、初見で試そうとしてミスした記憶があるのでメモします。
エスケープ処理についての説明はググると出てくるため割愛させていただきます。

# 環境
* PHP8.0
* ロリポップ スタンダード

# コード
```sample.php
//エスケープ処理
function h($s) {
return htmlspecialchars($s, ENT_QUOTES, "UTF-8");
}
```
これを上部に組み込むと動作します。
使う際は、
```sample.php
//h()の中に変数を入れる
h($_POST['id'])
```
これだけでセキュリティを上げることができますので是非お試しください。

元記事を表示

チェックボックスとデータベースを一体化させる方法

ググってもチェックボックスのやり方は書いてあっても、
データベースの連携の記事がなかったため、自分が学習した内容をまとめます。
軽い気持ちで読んでいただければと思います。

▼基本フローは下記になります。
1.編集ボタンを押す
2.チェックボックスをチェックする
3.完了ボタンを押す
4.チェックボックスにチェックがついている。

1.編集ボタンを押す
2.チェックボックスをなくす
3.完了ボタンを押す
4.チェックボックスのチェックがなくなっている

使用シート
reg_list.php(一覧画面)
reg_edit.php(編集画面)
reg_update.php(編集実行画面)

reg_list.php(一覧画面)
```php

---***---

元記事を表示

$stmt = $pdo->queryと$stmt = $pdo->prepareの違いについて

queryとprepareについて勉強したため、

皆さんに共有する。

$stmt = $pdo->queryは一番簡単な方法
$stmt = $pdo->prepareは「 query 」に手間をかけてバリデーションをして手間を行う方法。

queryを使う場合
```php
try {
// データを取得するSQL
//tasksテーブルのid,titleの取得の準備し、表示させる。
$stmt = $pdo->query("SELECT id, title FROM tasks");

全ての行をまとめて取り出し、「$titless」に格納する
$titless = $stmt->fetchAll(PDO::FETCH_ASSOC);

} catch(PDOException $e) {
// エラーメッセージを出力
echo $e->getMessage();
} finally {

// データベースの接続解除
$pdo = null;
}

```

確認する
prepare

元記事を表示

Drupalでよく使うDrushコマンド一覧

# Drush コマンド一覧

### 設定ファイルエクスポート

```bash
vendor/bin/drush config:export
```

### 設定ファイルインポート

```bash
vendor/bin/drush config:import
```

### Drushコマンド一覧表示

```bash
vendor/bin/drush
```

Drush コマンドのリストが表示されるので、コマンド分からなくなったら利用

### キャッシュクリア

```bash
vendor/bin/drush cr
```

### 翻訳ファイルの更新があるかチェック

```bash
vendor/bin/drush locale:check
```

### 翻訳ファイルの更新

```bash
vendor/bin/drush locale:update
```

### 翻訳ファイルのインポート

```bash
vendor/bin/drush locale:import
```

### モジュール有効化コマンド

```bash
vendor/bin/d

元記事を表示

プログラミングを始める時におすすめの無料サイト

プログラミングを勉強する人が最近増えています。
今の時代、フリーランスのシステムエンジニアが人気だからですね。収入を上げるため、フリーランス化する人が多いです。

そのため、プログラミングスクールが最近流行っています。
が、プログラミングを始める時は、独学からスタートすることをオススメしています。
というのも、**「プログラミングは自分で調べて身に付けることが重要だから」** です。

実際、システムエンジニアの業務の中では、”自分で調べて解決する”能力が求められます。
分からないエラーと出会った時に、解決できる力がある人とない人では全然違います。
望むなら、解決できる力を身に付けておきたいですよね。独学はその練習です。

そんなわけで今回は、プログラミングを始める人・始めたい人におすすめの無料サイトを紹介します。
無料でもある程度のところまでは勉強できますし、そこから就職・転職・フリーランスも全然アリです。

## プログラミングが勉強できるオススメの無料サイト

### ドットインストール

3分間の動画で勉強できる無料サービスです。
**全然無料の動画を見ているだけでも、プログラ

元記事を表示

個人開発したWebサービスをMENTAでレビューしてもらった

MENTAという`プログラミングに関する質問`や`ソースコードレビュー`をプロのメンターにお願いできるサービスを利用させていただきました。

https://menta.work/

今回は個人開発したWebサービスの`デザイン、UI/UX`面をレビューしていただいたので、内容を記載していきます。
皆さんが開発しているWebサービスの参考になれば幸いです。

https://qiita.com/ryouya3948/items/1fc06116a211f3bc62f7

# レビュー内容
画面ごとにレビュ―内容を絡めて、修正前後の画像を貼っていきます。
### トップ画面
#### Before
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597913/b695d668-c591-e63d-3aa1-3f624a249bfe.png)
#### After
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

OAuth 2.0 Server PHPを使ってサーバー認証をやってみる。

# 1.はじめに

 GoogleHome経由でサーバーに何か働きかけをする手段としてIFTTTを通してウェブフックを呼び出す方法などありますが、外部サービスということやつい先日もAPIの変更とかでそれまで使っていたアプレットが使えなくなって再定義が必要になる、といったこともありました。できればサーバーそのものが家電の一種として登録できたらいいのにと思わなくもありません。リモートスピーカーとかサウンドバーのようなデバイスとして見せかけられたらGoogleHomeの使い勝手も少し良くなるような気がします。
 ただ、[Google Assistantのドキュメント](https://developers.google.com/assistant/smarthome/overview "スマートホーム概要")など読んでいると、何が無くともまずは **OAuth2.0サーバー** を用意することが必要とのこと。

 言語はいろいろありますが、個人的にイージーに使えるということもあり、PHPで探してみると、[OAuth 2.0 Server PHP](https://bshaffer.githu

元記事を表示

Drupalの便利なモジュールの紹介

# Drupal 便利なモジュール

## **Examples for Developers**

### 機能説明

Drupalの開発のサンプルが記載されています。

例:`examples/module/field_example`であればFieldType, FieldFormatter, FieldWidgetを使った実装例が記載されています。

### 使い方

1. exampleをインストールする
1. `composer require 'drupal/examples:^3.0’`
2. モジュールを有効化
3. 使いたいサンプルのモジュールを有効化する
1. 利用できるモジュールは`examples/module/`配下にある

Link:[https://www.drupal.org/project/examples](https://www.drupal.org/project/examples)

---

## JSON:API

### 機能説明

Drupalで作成されるJsonを確認することができる

### 使い方

1. jso

元記事を表示

MAMPでPHPのバージョンが古いと怒られた場合の対処方法

自分の環境 ⇨ Mac + MAMP

【表題の件についての解決方法】

下記、参考になるサイトに従い、PHPのバージョンを7.4.21(2022/10/16現在選べるMAMP上のPHPのバージョン)と指定する。

[参考]https://gray-code.com/php/specify-php-version-in-composer/

【具体的説明】

Laravel-simple-memo(Laravelプロジェクト)直下にcomposer.jsonファイルがある。

当該ファイルを書き換えて、設定を変更することでエラーを解消する。

以下、composer.jsonの変更箇所になります。

"config": {
"optimize-autoloader": true,
"preferred-install": "dist",
"sort-packages": true,
"platform": {
"php": "7.4.21"
}
変更後、保存した上でコマンド

元記事を表示

Laravel Socialiteでのリダイレクト先を動的に設定する

Socialiteで特定のGoogleアカウントで可能なログイン機能を実装したのですが、それとは別にGoogleアカウントの登録機能を実装する必要があり、少しつまづいたのでメモ。

config/services.phpに記述するプロバイダのリダイレクト先URLは一つしかできないので、どうやって複数のリダイレクト先を設定するか悩みました。

## 環境
Laravel Framework 9.35.1

## 解決策
まずGoogle Cloud Platformで新たなリダイレクト先URLを登録。
```
# config/services.php

'google' => [
'client_id' => env('GOOGLE_CLIENT_ID'),
'client_secret' => env('GOOGLE_CLIENT_SECRET'),
'redirect' => env('GOOGLE_CALLBACK_URL'),
]
```
services.phpには使用する頻度の高いリダイレクト先URLを設定しておく。

```
# RegisterA

元記事を表示

【個人開発】個人開発用テストサービス

開発したWebサービスを、他ユーザーがテストできるサービスをリリースしました。

![testapp実装完了(Qiita).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597913/9e95e69b-4ac7-7756-bde7-44d3145fa45c.gif)

# URL

https://www.testapp.jp/index.php

# 目的
開発したWebサービスをリリース後、ユーザーの方に利用していただくと見つかる不具合があります。

第3者が触ったときに見つかるバグは、意外と開発者本人は気づかないものが多いです。

リリースする前にそういった問題を解決するためにテストサービスを開発しました。

# サービス概要
テストしてもらいたいWebサービスを投稿します。

![testapp投稿(Qiita).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597913/dfd487b9-c569-550b-2

元記事を表示

「PATHを通す」ってなんなん?!

## 調査の背景

現在、Laravelで開発を行なっており、マイグレーションを実行した際に

```zsh
Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.1.0". You are running 7.3.29-to-be-removed-in-future-macOS.
```

上記エラーが発生し、PHPのバージョンを7.3.29→8.1.11にアップデートしました。

```zsh
brew install php@8.1 && brew link --force php@8.1
```

アップデートが完了すると、

```zsh
php -v
WARNING: PHP is not recommended
PHP is included in macOS for compatibility with legacy software.
Future versions of macOS will not

元記事を表示

OTHERカテゴリの最新記事