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

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

phpenvに必要なパッケージ

参考: https://qiita.com/ryo-endo/items/0e689e02cb87e09f4c7a
“`
sudo apt -y install \
build-essential \
sudo apt -y install \
libxml2-dev \
libssl-dev \
libbz2-dev \
libcurl4-openssl-dev \
libjpeg-dev \
libpng-dev \
libmcrypt-dev \
libreadline-dev \
libtidy-dev \
libxslt-dev \
autoconf \
libsqlite3-dev \
libonig-dev \
libzip-dev
“`

元記事を表示

【Custom PHP Settings】php.iniを編集するプラグイン

WordPressでアップロードファイル上限を管理画面から変更したい時は「Custom PHP Settings」というプラグインを使ってphp.iniファイルを編集し対応してます。

php.iniファイルでは、PHPの初期設定の変更を定義することができます。

このファイルを編集することでファイルのアップロード上限を変更することも可能です。

### php.iniファイルで設定できること

– エラー表示
– メモリ管理
– セキュリティー
– 文字コード
– タムゾーン
– ログ

## Custom PHP Settings

Custom PHP Settings

### 使い方

1. インストールと有効化

有効化が完了すると管理画面メニューのツールにCustom PHP Settingsが表示されます。

2. 管理画面 > ツール > Custom PHP Settings をクリック。
3. 画面上部の「General」タブをクリックし、入力エリアにコードを記述。

元記事を表示

Laravel Breezeでいい感じのログイン認証が作れる話

# いきさつ
最近PHPのMVC方式のフレームワークである,[**Laravel**](http://laravel.jp/)にめちゃくちゃハマっております.
そしてLaravelの中には色んなパッケージが入ってるわけですが,その中でログイン認証機能などが便利に作成できる**Laravel Breeze**というもの見つけました.今回はそれの備忘録です.

# そもそもLaravelとはなんなのか
前述の通り,LaravelはPHPのフレームワークです.MVC方式なのでデータベースを使用したWebアプリケーションが簡単に作れます.

larave.png

さらにArtisanと呼ばれるコマンドを使

元記事を表示

【WordPress】アップロードファイルの容量上限の増やし方

ローカル環境で構築したWordPressを本番環境に反映させるときや、本番環境をローカル環境で構築する時に「All-in-One WP Migration」でエクスポートしたファイルをインポートしているのですが、ファイル容量上限をオーバーしていてエラーメッセージが表示されアップロードできません。

アップロードファイルの容量上限を変更可能なので、上限を上げてアップロードしていきます。

## 「.htaccess」ファイルを更新する

サーバーがApacheを利用している場合 `.htaccess` ファイルを変更することでアップロードファイルの容量を変更可能です。

WordPressのアップロードに関する挙動は次の3つのPHPディレクティブが制御しています。

– **`upload_max_filesize`
– **`post_max_size`
– **`memory_limit`

`wp-base/wp/.htaccess`ファイル内に以下を追記します。

“`php
php_value upload_max_filesize 500M
php_value post_m

元記事を表示

phpでファイルを一行ずつ読み込む最も簡単な方法

## はじめに
今年もやってまいりました、qiitaさんのアドベントカレンダー。
といっても初参加ですが…

今回はphpでテキストファイルを一行ずつ読み込みたい時の簡単な関数を紹介しますよう。

## きっかけ
この前、ちょっとしたサーバー上の制約からbatファイルでデータを保存しなければならないことがありました。
その時の副産物でございます。

## 関数
“`php
function file_get_contents_line($file_name){
if(!(isset($file_name))){
return array(‘error.’);
}else{
$file_name_in = file_get_contents($file_name);
$file_name_in = str_replace(array(“\r\n”, “\r”, “\n”), “\n”, $file_name_in);
return explode(“\n”, $file_name_in);
}
}

元記事を表示

初めてのcodeigniter2 基本編

初めてcodeigniterを学んだのでまとめます。

## 概要

* コンポーネントはない

* オブジェクト指向

## URL(URI)の書き方

* 基本形

> アプリケーションのURL/index.php/コントローラーのクラス名/メソッド名/引数
> http://localhost:8000/index.php/blog/index/3

:::note info
クラス名の拡張子(.php)は書かない
:::

初期状態ではindex.phpは絶対呼び出される。
以下を追記すればindex.phpはURlから消しても良い

“`php:application > .htacess
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
//追記する
“`

* サブフォルダに入っている時の呼び出し方法

>アプリURL/ディレクトリ名/フォルダ名/メソッド名/引数
>http://localhost:

元記事を表示

curlのレスポンスをheaderとbodyで分けて取得する

外部APIにてレスポンスにてheaderから取得する場合があったので、備忘録として残します。
他何かいい方法あればです。
“`php

$url = ‘https://****.com’;
$headers = array(“Content-Type: application/json”);
$post_data = json_encode([1 => ‘a’]);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // curl_exec() 経由で応答データを直接取得できる

元記事を表示

WordPressにURLコピー機能を設けてみた

(手順を間違えなければ)誰でも簡単に WordPressのURLを
増殖できるものを作ってみました。

## 特徴

– 年ごとにURLが変わるサイトに有効(abc2013.example.com とか)
– 一応 WordPressの管理画面から操作できる

## テーマに入れてみる

“`functions.php
$host=$_SERVER[‘HTTP_HOST’];

// リダイレクトがphpなのはXServer用に .htaccessを触れたくないため
if(preg_match(‘/example.com/i’, $host)) {
$redirectphp=”

元記事を表示

phpでclass作成時に留意することメモ

# ■phpでclass作成時に留意することメモ
さくらインターネットのVPSでphpを公開するときに苦戦したのでめも

:::note info
※11/29追記:要調査・調整事項があるため加筆修正の可能性あり。
【要調査・調整】
・VPSのPHPバージョンを再確認
・class内のプロパティなどの記載の仕方
:::

使用環境:https://vps.sakura.ad.jp/
使用OS:ubuntu 20.04.5 LTS
phpバージョン:8.1.13

参考:https://www.php.net/manual/ja/language.oop5.decon.php

## class内の記載
class内で function __construct() を宣言する際に、
引数をpublicで宣言すると、500エラーでphpファイルを実行できなくなる。
引数の設定には要注意。

元記事を表示

【PHP8.2】PHPの乱数がすごい改善される

PHPの乱数といえば古来より[様々な問題が存在している](https://zenn.dev/zeriyoshi/articles/abd808d1c6d31b)ことで有名です。

乱数の質という大問題については[random_int](https://www.php.net/manual/ja/function.random-int.php)の登場によってひとまずの解決を見ましたが、それ以外にも[状態がグローバルである](https://speakerdeck.com/colopl/colopltech-04-02?slide=12)等いくつかの問題が残っています。

それらを解決するため、PHP8.2において[Random\Randomizer](https://www.php.net/manual/ja/class.random-randomizer.php)クラスが導入されることが決まりました。
以下は該当のRFC、[Random Extension 5.x](https://wiki.php.net/rfc/rng_extension)の紹介です。

# Random Ext

元記事を表示

All in One SEOのMeta Descriptionが勝手に書き変わってしまう事象について

# 事象について

– 数年前から運用しているWordPressのブログのMeta Descriptionが書き変わってしまうことがある
– タイミングは現状不明

# Meta Description の格納場所

– 「meta_key」カラムの値が「_aioseop_description」から「_aioseo_description」に変わったようだ(途中のpが消えた)

– 以前: 「wp_postmeta」テーブルの「meta_key」カラムの値が「_aioseop_description」のレコードの「meta_value」
– 現在: 「wp_postmeta」テーブルの「meta_key」カラムの値が「_aioseo_description」のレコードの「meta_value」

## 確認方法

– 下記SQLを実行すると、「_aioseop_description」と「_aioseo_description」があるかを確認できる
– 「_aioseo_description」だけなら問題ない(または別のところに問題がある)

“`sql
S

元記事を表示

Modx 覚書

# スニペット
## 新着情報自動取得
### Dittoスニペット

“`diff_php
[[Ditto?startID=’新着情報ファルダのID’ &orderBy=’pub_date DESC’ &display=’20’ &tpl=`index_news_item` ]]

//Dittoスニペット 複数のファルダから取得(カテゴリ別けと同じ)
[[Ditto?startID=’28,29,30,31,32′ &orderBy=’pub_date DESC’ &display=’20’ &tpl=`index_news_item` ]]
“`

### 表示テンプレート用のチャンク例

“`diff_html

[[the_page_title &id=[+parent+]]]
<

元記事を表示

dockerを使ったPHPの環境構築

ただの覚書です。

“`docker-compose.yml“`
“`yml
version: ‘3’
services:
#MySQL用コンテナ
mysql:
container_name: db
image: mariadb:10.4
volumes:
#./dataフォルダに作成してる
– ./data:/var/lib/mysql
environment:
– MYSQL_ROOT_PASSWORD=root
– MYSQL_DATABASE=todo
– MYSQL_USER=todo
– MYSQL_PASSWORD=todo
ports:
– 3306:3306
#php用コンテナ
php:
container_name: php-apache
#./phpフォルダに作成してる
build: ./php
volumes:
#./sourceフォルダに作成
– ./source:/

元記事を表示

Sailを使ったLaravelの環境構築(Docker)

Dockerでの環境構築は大変だと思っていた

ずっとローカルに環境構築し続けて半年。Dockerを使い始めて一週間。いくつかのプロジェクトを作って感じたことがある。
Dockerfileとdocker-compose.yml毎回書くのめんどくさすぎる。これなら正直ローカアルに環境構築した方が早いし個人開発だけなら困らないと思っていたが、実務では使うと思い使っていたところに僥倖

`curl -s “https://laravel.build/example-app” | bash `
これを使えば一撃でプロジェクトの作成ができる。。。教えてくれる人がいない為知りませんでした。
公式ドキュメントにはこうある。
https://laravel.com/docs/9.x/installation#main-content
## macOS での開始

Mac で開発していて、Docker Desktopが既にインストールされている場合は、単純なターミナル コマンドを使用して、新しい Laravel プロジェクトを作成できます。たとえば、 **「example-

元記事を表示

Twilioでの電話通知機能(Laravel)

## はじめに
Twilioの電話通知機能をLaravelにて実装しました。
備忘録として記載させていただきます。

| 開発環境 |バージョン |
|———–|————|
| __Laravel__ | 8.83.19 |
| __PHP__ | 7.3.10 |

## Twilioの導入

1,Twilioトライアルアカウントを作成する
  Twilioに担当者に問い合わせてトライアルアカウントを作成してもらう。
  Twilioの**アカウントSID**、**AUTHトークン**、**架電元電話番号**を担当者からもらう。

2,Twilioライブラリーをインストールする。

“`ターミナル:ターミナル
composer require twilio/sdk
“`
  参照URL(Twilio公式サイト)
  https://www.twilio.com/ja/docs/voice/quickstart/php

3,架電通知する
“`PHP:TwilioController.php
use Twilio\

元記事を表示

コメントコーディングで実装内容を明確化しよう

## 前置き
私は実装が苦手なので、日頃から頭で考えるより紙に書いたり、PCのメモに書いたりして頭の中を整理をするようにしています。
その一環で、時間があるときは実装時にコメントコーディングしてみるということをしています。
実装苦手な人やプログラミング初心者向けの紹介になります。

## コメントコーディングの方法
”**自分が日頃使っている言語でコーディングしてみる**”これが大きな特徴だと思います。
私は日頃から日本語を使っているので日本語で書いてるのですが、注意したいのは「箇条書きをする」というところです。

“`php
public function 東京駅から福岡空港まで行く値段を計算する()
{
//自宅から東京駅まで行く値段を計算
//東京駅から羽田空港まで行く値段を計算
//羽田空港から福岡空港まで行く値段を計算
//福岡空港から博多まで行く値段を計算
}
“`
これほど大雑把でもこのコメント4行をメソッドにしてみようかと考えることができます。
また上記は駅や空港を限定していますが、場所を限定

元記事を表示

PHP のバリデーションの方法

概要

会社情報を登録して、表示するメモアプリを作成していたのですが、``のバリデーションがめんどくさかったので、残しておこうと思います。

バリデーションで確認したい事 2つ

1.日付が正しい形式で入力されているか?を確認する

yyyy-mm-dd の形式で入力がされているかどうかを確認する。
日付以外の文章などが入力されている場合はエラーを表示するようにする。

2.存在する日付かどうか?を確認する。

2022年の17月65日みたいな、ありえない日付が入力されている場合はエラーを表示する。

ユーザーが入力をするフォーム
“`html



<

元記事を表示

MacでのPHPバージョン変更方法(Brew)

#### BREWでPHPを管理していて、なぜか7.4のまま。

brew unlink php@7.4
brew link php@8.1

でもphp -vでは、php7.4….と表示される。。。

#### 原因

sourceコマンド打ってなかった。

備忘録

元記事を表示

機能拡張を可変クラスで局所化する

# 1.はじめに
 うちではgoogleAssistantからIFTTT経由でメインのPCをWOLできるのですが、ここのところうまくうごきません。googleAssistantと外部サービスはあんまりうまく行かないときがあるので今回もそうなのかもしれません(調べていない)。ただ、IFTTTをどうこうするというより、googleAssitantから自前のフルフィルメントを通してWOLする経路を造ってもいいのかもしれません。

# 2.おさらい
 自前で用意している〈試験版〉フルフィルメントからジュークボックスサービスに連携するモデル図を以下に示します。
![googleAssistantButlerSystem.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2696131/fd9f35ae-b4e1-1057-b9a6-06f0e62d3cca.png)

 フルフィルメントはgoogleAssistantから送られる登録済みのデバイスが使える機能要求を受け付けます。単純なものではスマートコンセントのオン

元記事を表示

Laravel エラー: Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version “>= 8.1.0”. You are running 8.0.8. in /Applications/MAMP/htdocs/leravel/test/vendor/composer/platform_check.php on line 24

環境は下記の通り
・Mac OS
・Laravel v9.41.0 (PHP v8.0.8)

MAMPでlocalhostにアクセスした時に以下のエラーメッセージが発生した時の対処法をまとめました。

“`エラー
Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version “>= 8.1.0”. You are running 8.0.8. in /Applications/MAMP/htdocs/leravel/test/vendor/composer/platform_check.php on line 24
“`

エラー内容を簡単に翻訳すると、PHPのバージョンが違うということで、PHPのバージョンを変更しないといけないということがわかると思います。
このエラーの対処方法としては、PHPのバージョンを引き上げる必要があります。
それは下記のコマンドをターミナルで打つことで実装することができます。

“`PHPのバージョンを

元記事を表示

OTHERカテゴリの最新記事