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

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

Python,Ruby,PHP,Java,JavaScript,Perlのデバッガ(デバッグ)の比較

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

Python,Ruby,PHP,Java,JavaScript,Perlのデバッガ(デバッグ)の比較

# Python

https://qiita.com/kaitolucifer/items/dc58efebd72d72a8feb2

# Ruby

https://qiita.com/port-development/items/5ea6448eb2b45c70ef65

https://qiita.com/suketa/items/52c60d79332c9a24f973

# PHP

https://qiita.com/ryouya3948/items/0055c1935b7bd62ba3b9

# Java

https://qiita.com/gatchan03/items/3c43b674e2b7c4b5c5cb

# JavaScript

https://qiita.com/a_

元記事を表示

【php】複数の連想配列を一つにまとめる自作関数 バルクインサート等に便利

## 概要

例えば下のような入力フォームがあり、【姓の全リクエスト】【名の全リクエスト】【年齢の全リクエスト】とそれぞれの項目でまとまった配列でリクエストが送られていたとします。その配列を【1ユーザーごとの配列(姓・名・年齢)】に変換する自作関数を作りました。

自分が思い出せるように残してあります。改善点等あればアドバイス頂けますと嬉しいです。

![yoyaku.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2713225/93e8ee1a-d010-d4e3-fad6-a357cfb4f454.jpeg)

## リクエストで送られた配列(姓・名・年齢)でまとまって渡されている
“`ruby:php
$request = [
‘last_name’ => [
0 => ‘山田’,
1 => ‘田中’,
2 => ‘佐藤’,
3 => ‘鈴木’,
],
‘first_name’ => [
0

元記事を表示

windows PHPパス通す方法

https://techacademy.jp/magazine/11489

元記事を表示

Ubuntu22.04でphpenv使おうと思ったらopensslのバージョン違いでbuildできない件

macの対策はたくさん記事が引っかかるけどubuntuの情報はあまり無いので同様の現象で詰まった方のために残しておきます。
掲題ですが、phpenvとphp-buildをインストールしたubuntu22.04で、php7.4.30や8.0.23をインストールしようとした所、下記のエラーが出ました。下のログは8.0.23をインストールしようとした場合のログですが、7.4.30でも同様のエラーが出ていた筈です。私の環境では7.4.30でも同様の対処でbuild通る様になりました。

“`bash
—————————————–
/tmp/php-build/source/8.0.23/ext/openssl/xp_ssl.c:1240:9: warning: ‘DH_free’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
1240 | DH_free(dh);
| ^~~~~~~
In file included

元記事を表示

Cloud9でphpを実行できるようにする

# はじめに
この記事では、Cloud9でphpを実行するための手順を示しています。(Cloud9にプロジェクトをまだ作成していない方は[こちらの記事](https://qiita.com/webkobe24/items/0dca39bb72879a09923f)から作成してみてください)

# パッケージの最新化
あらかじめインストールされているパッケージが存在していることがありますが、こちらは最新バージョンではない可能性があるので、最新バージョンにアップデートしておきましょう。最新バージョンにアップデートしておくことで、機能追加や性能向上だけでなく、脆弱性対応も含まれていることがあります。
“`
$ sudo yum update -y
“`
問題なく実行できていれば大丈夫です。

# タイムゾーンの設定
タイムゾーンとは標準時が同じ地域ごとに区切った時間帯のことです。この時間帯は日本標準時にしていた方が都合が良いので、日本標準時に変更します。
“`
$ sudo timedatectl set-timezone Asia/Tokyo
→問題なく実行できれば大丈夫
$ tim

元記事を表示

AWS cloud9に新たなプロジェクトを作成する

# はじめに
この記事は、初めてwebアプリを開発するために開発環境を整えたい方に向けた記事になっております。実際に、投稿者の私もwebアプリを開発するのは初めてでしたので、そのような方には参考になるかと思います。

# cloud9に新しいプロジェクトを作成する
AWSからcloud9の画面に移ると右上の方に`cleate environment`というボタンをクリックすると以下のような画面が出てきます。
![スクリーンショット 2022-09-13 11.52.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821384/c1e5a980-730f-117a-5bb5-09948473935b.png)
この画面ではプロジェクトの名前と説明を入力する欄になっています。上の名前の部分だけ埋めれば大丈夫です。

続いて、以下のような画面が出てきます。今回は、特に何も変更せずにこのままの設定でプロジェクトを作成してみました。(Environment typeで一番上の欄を選んでいるとAWSの方に料金

元記事を表示

【PHP8.1】あなたはどっち? array_merge VS unpacking(スプレッド演算子)

PHP8.1がリリースされてそろそろ1年。PHP8.1のRelease Announcementを今更じっくりと眺めていたところ、見逃していた変更点を発見。

**Array unpacking support for string-keyed arrays**
[https://www.php.net/releases/8.1/en.php](https://www.php.net/releases/8.1/en.php#array_unpacking_support_for_string_keyed_arrays)

配列アンパックが連想配列をサポートするようになった、とのこと。
配列アンパックとは、一般的にいう『スプレッド演算子』『スプレッド構文』のことです。

“`php:アンパック例
$x = [‘a’ => 1, ‘b’ => 2];
$y = [‘c’ => 3, ‘d’ => 4];
$result = […$x, …$y];
// [‘a’ => 1, ‘b’ => 2, ‘c’ => 3, ‘d’ => 4]
“`

これによって、array_merge

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのコマンドライン引数の比較

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

Python,Ruby,PHP,Java,JavaScript,Perlのコマンドライン引数の比較

# Python

https://qiita.com/taashi/items/07bf75201a074e208ae5

# Ruby

https://qiita.com/shiGira/items/44586bdc48c06e00d99f

# PHP

https://qiita.com/aic0o/items/91ca1ddc1fc6e025286f

# Java

https://qiita.com/takahirocook/items/ece64146015f702d0a83

# JavaScript

https://qiita.com/furusin_oriver/items/f030d1eaa9e7b54233c3

# Perl

https://perlzemi.com/

元記事を表示

Laravel Lighthouseでエラー処理を試してみる

## Version
* php 8.0
* laravel 8.4
* lighthouse 5.1

## やりたいこと
GraphQLの認可にJWTを使用しており、JWTがない場合(期限切れなど)に認可が失敗した!!と分かりやすくしたい。そしてどこかのページにredirectさせたい。

## デフォルトのエラー
“`
{
“errors”: [
{
“message”: “Unauthenticated.”,
“extenstions”: {

“`
ここでの`”message”: “Unauthenticated.”`は`vendor/nuwave/lighthouse/src/Exceptions/AuthenticationException.php`にありました。

## エラーハンドラーを作成
LighthouseのError Handlingの公式[Docment](https://lighthouse-php.com/master/digging-deeper/error-handling.html

元記事を表示

【 #ゆめみからの挑戦状 ★第5弾】に挑戦 78バイト

最近は地球を防衛しつつ戦うために生きつつ床を塗り潰しつつアイドルをプロデュースするのにとても忙しい。

PHPだったので挑戦してみることにします。

# 問題

入力`$in`を、出力`$out`に変換します。

“`php
// 入力
$in = [
[‘2nd’ => ‘two’, ‘four’ => ‘4th’],
‘three’ => ‘3rd’,
[‘one’ => ‘1st’],
’10th’ => ‘ten’,
[‘6th’ => ‘six’],
‘5th’ => ‘five’,
‘seven’ => ‘7th’,
[‘fourteen’ => ’14th’, ’11th’ => ‘eleven’],
[‘8th’ => ‘eight’],
‘thirteen’ => ’13th’,
’12th’ => ‘twelve’,
‘nine’ => ‘9th’,

元記事を表示

[0,1,1,1,0,0,0,1,1,0,0,1,0,1,0]を作る旅

プログラミングをやっていると、適当な順に並んだ整数をループで作り出したくなる瞬間が度々あると思います。

そんな時にはまず [The On-Line Encyclopedia of Integer Sequences® (OEIS®)](http://oeis.org/) あたりを調査するのが定石だと思いますが、つい先日、面白い仕掛けを使っている tweet を発見しました。

Illuminate\View\ViewExceptionのエラーが発生して画面遷移ができなくなる問題

# はじめに

laravelのバージョンを5.8から6.xにアップデートした後、なぜか画面遷移ができなくなりました。
その原因がなかなかわからず手こずったので、メモを残しておきます。

## 環境

ubuntu 18.04
php 7.4.29

“`composer.json
{
“require”: {
“php”: “^7.4.29”,
“bensampo/laravel-enum”: “^1.23”,
“fideloper/proxy”: “^4.0”,
“google/apiclient”: “^2.0”,
“guzzlehttp/guzzle”: “^6.3”,
“intervention/image”: “^2.5”,
“laravel/framework”: “^6.0”,
“laravel/tinker”: “^1.0”,
“laravelcollective/html”: “^6.0”,
“ph

元記事を表示

Laravelによるページネーションの書き方

# ページネーション(pagination)とは

– 検索結果やデータベースの一覧画面などを適度な長さで分割して表示する仕組み
– 次の画像のように各ページへのリンクを並べることでアクセスしやすくなります
– 10件ずつ表示する、50件ずつ表示するなど、表示数をカスタマイズできます

見本:Google検索結果より
![スクリーンショット 2022-09-12 7.56.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2765288/07b5f2c5-eea9-ced2-7897-4fed90bb0680.png)

## 環境について
データベース内に`user`というテーブルが存在する仮定で以下の手順は進みます

## 作成方法

### データベースのテーブル情報を取得するモデルを作成します

“`php3
namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのfor文の比較

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

Python,Ruby,PHP,Java,JavaScript,Perlのfor文の比較

# Python

https://qiita.com/Morio/items/e8aed85346c0055beea7

# Ruby

https://qiita.com/Morio/items/3ac5cac9ace7e9ddbdb4

# PHP

https://qiita.com/miriwo/items/d1b5d5ece4f16c7b5985

# Java

https://qiita.com/Co_Pilot/items/7c59410cd90be4cf06d8

# JavaScript

https://qiita.com/w-tdon/items/f3ecb29dc9350f2f2e8d

# Perl

https://perlzemi.com/blog/20080327120662

元記事を表示

Trelloに日付リストを自動で生成する【Trello API】

# ✏️ 概要
Trelloをカレンダーレイアウトにしたら 日付リストの生成を自動化したくなってしまったので、
今回はPHPを用いてTrelloのAPIを叩いてリストを自動生成してみます。

こんな感じでスクリプトを叩くと自動でTrelloのボード上にリストが生成されます ?

![Sep-01-2022 19-37-55.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/468787/c904943b-c470-8ade-70f3-3af4c10dbc60.gif)

# ? 準備をする

### 開発者向けAPIキーの取得

まずは以下のURLにアクセスして**開発者向けAPIキー**を取得します

[? 開発者向けAPIキー取得ページ](https://trello.com/1/appKey/generate)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/468787/97e58655-bf46-a

元記事を表示

なに? チェックボックスオフでも確実にPOSTする方法があるやと?

## ある日の業務中
ぐっちー
「checkboxってオフの時postされんからオフの処理いちいち書くのめんどくさいな~」
先輩
「それならええ方法があるがな」

ぐっちー
「ほんまですか? 教えてください!」
先輩先輩
「1回しか言わんから永久保存版な」

ぐっちー
「了解です!」
## 一般的な書き方
“`index.html


“`

“`index.php
$in = $_POST

//初期化
$hoge = 0;
if(isset($in[‘hoge’])){
$hoge = intval($in[‘hoge’]);
}else{
$in[‘hoge’] = $hoge;
}

$list = array();
$list = search_list($in);

元記事を表示

【PHP】ひらがな化APIを使ってみた

# 初めに
Excelにて漢字にふりがなをつけようとしたが、CSVをインポートしたデータやWEBページからコピペしたテキストには自動でふりがなが付かないことがわかった。そのため、代替手段として[gooラボ](https://labs.goo.ne.jp/)の[ひらがな化API ](https://labs.goo.ne.jp/api/jp/hiragana-translation/)を使用することにした。

>[リファレンス](https://labs.goo.ne.jp/api/jp/hiragana-translation/)より引用
>ひらがな化APIはリクエストで送られた日本語文字列を、ひらがな もしくは カタカナ による記載に変換します。

## 環境
– Mac OS12.4(M1)
– PHP 8.1.2

## パラメータ
* app_id(必須項目) => 利用登録をし、取得する
* request_id => リクエストID、省略可
* sentence(必須項目) => 解析対象テキスト
* output_type (必須項目) =>hiragana(ひらがな化

元記事を表示

tsunagi-functionsでSymbolブロックチェーンのトランザクションを自由自在に作ろう!(PHP編)

この記事は、以下に紹介したtsunagi-functionsのPHP実装版です。

https://qiita.com/nem_takanobu/items/4b5d67fe9eb80ae35433

トランザクション構築の内部処理やノードへの通知方法については以下の記事もご参考ください。

https://qiita.com/nem_takanobu/items/d69f86487fce527dbc29

Symbolブロックチェーンをよく知らないという方はこちらで速習することができます。

https://github.com/xembook/quick_learning_symbol

# テスト

テストスクリプトを以下に置いています。実行することができればそのロジックをそのまま実装に利用することができます。

#### test_0_1.php

https://github.com/xembook/tsunagi-sdk/blob/main/php/test_0_1.php

“`json:composer.json
{
“require”: {

元記事を表示

Laravel 8 へアップグレードしてからシーダーを使う際の変更

## はじめに

Laravel 6から8へアップグレードした際にアップグレード自体は問題なくできたのですが、
シーダーの実行につまずいたので残しておきます。

## 事象
シーダーを実行すると以下のようなエラーが出ました。
“`
$ php artisan db:seed
“`
“`
Illuminate\Contracts\Container\BindingResolutionException

Target class [DatabaseSeeder] does not exist.
“`

# 変更箇所
Laravel 8へアップグレードした後にシーダーを使うための変更箇所をまとめます。

### 1. composer.jsonの変更

変更前
“`json:composer.json
“autoload”: {
“psr-4”: {
“App\\”: “app/”,
},
“classmap”: [
“database/seeds”,

元記事を表示

OTHERカテゴリの最新記事