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

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

user登録者毎に画面表示させる方法

「id」を使って、各ユーザー毎に画面表示させる方法を学習したので、皆さんに共有します。

当初の遷移方法は
reg.php(登録画面) → reg_list.php(登録一覧画面) となる。

reg.php(入力画面)
“`php

               

日付:

Python,Ruby,PHP,Java,JavaScript,PerlのSQLiteの比較

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

Python,Ruby,PHP,Java,JavaScript,PerlのSQLiteの比較

# Python

https://qiita.com/flcn-x/items/69481d31211421e21f21

# Ruby

https://qiita.com/akito_tameto/items/868e3805dc01c7bef6ef

# PHP

https://qiita.com/39_isao/items/a5b4940138bced936de0

# Java

https://qiita.com/tsweblabo/items/39bdd73a910417a9a8df

# JavaScript

https://qiita.com/zaburo/items/a155cbc02832b501a8dd

# Perl

https://perlzemi.com/blog/20

元記事を表示

【Docker Compose】固定IPの割りあてとhostsの編集

## はじめに
ローカル開発環境を構築するにあたり固定IPを設定し、`hosts`ファイル を編集する必要があったため、その手順を備忘録として残します。

`docker-compose.yml` に以下を追記する
* IPアドレスを固定する: ネットワーク(`networks`)を追加
* コンテナの `/etc/hosts` を編集する: `extra_hosts` を追加

コンテナ起動後、各コンテナに入り固定IPが設定されているか, `/etc/hosts` が編集されているか確認
“`bash
# コンテナに入る
docker compose exec <コンテナ名> bash

# コンテナ内で以下コマンド実行
hostname -i
cat /etc/hosts
“`

## 設定例

“`docker-compose.yml
services:
php:
container_name: php
build: ./docker/php
volumes:
– ./server:/var/www
networks:

元記事を表示

php artisan migrate実行時のエラー

php artisan migrate

Illuminate\Database\QueryException

could not find driver (SQL: select * from information_schema.tables where table_schema = ****** and table_name = migrations and table_type = ‘BASE TABLE’)

試すこと:

“`php artisan cache:clear“`

`php artisan config:clear`

参考記事:
(Laravel)マイグレーション時、could not find driver のエラー
https://hara-chan.com/it/infrastructure/docker-laravel-migration-could-not-find-driver/#could_not_find_driver

最後解決
https://qiita.com/kaicho15to18/items/649d2865

元記事を表示

Laravelで「Expected name to be a non-empty string.」というエラーが発生した件のメモ

## 備忘
– 2022/10/16くらいからLaravel開発環境で突然「Expected name to be a non-empty string.」というエラーが発生し、artisanコマンドがいっさい実行できなくなった。
– 調べていくとCI/CDで実行している`composer update`の結果「vlucas/phpdotenv」というライブラリのアップデートが行われたことがわかった。(v5.4.1 => v5.5.0)
– [GitHub](https://github.com/vlucas/phpdotenv/commit/4c165455a670005a05edbdf97a5590aa3e4936ec#diff-2eedf850c12a444af660cf1ff97e8449b140a2be8646c2c857a7f95afc195cc7R62)を見ると、AdapterRepository.phpに環境変数名の空チェックロジックが追加されていることがわかった。
– env()メソッドに渡す環境変数名が空の場合、いままではスルーされていたが、例外をスローするようにな

元記事を表示

【 #ゆめみからの挑戦状 ★第7弾】解答の紹介と総括

# はじめに
最近弊社ゆめみでは, Twitter にて「ゆめみからの挑戦状」という企画を定期開催しています.
ゆめみの社員がプログラミングに関する問題を出して,皆さんに引用リツートで答えていただく,というものです.
歴代の出題者として Qiita でも有名な @Yametaro や @mpyw などがおりますが,今回は私が出題させていただきました!
本記事は,問題,想定解やその他皆さんからいただいたオモシロ回答などをご紹介します.

# 問題

“`php: 問題

元記事を表示

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

元記事を表示

OTHERカテゴリの最新記事