PHP関連のことを調べてみた

PHP関連のことを調べてみた

Homestead Vagrant 指令筆記

> PHP8.1 バージョンで `composer` コマンドを実行する必要がある場合は、次のようにします。
“`
php8.1 /usr/local/bin/composer update
“`

> プロジェクト内で PHP の実行バージョンを指定するには、`homestead.yaml` ファイル内のサイトでPHPバージョンを指定する必要があります。以下のようにします。
“`
– map: homestead.test
to: /home/vagrant/code/Laravel/public
php: “8.1”
“`

> `homestead.yaml` ファイルを変更した後、そのファイルの設定を再読み込みするには、以下のコマンドを使用します。
“`
vagrant provision && vagrant reload
“`

> CLI モード下の PHP バージョンを切り替える場合、次のコマンドを使用します。
“`
sudo update-alternatives –config php
sudo update-alternatives

元記事を表示

LibXL PHP Extensionでセルの文字列を読み取る

## はじめに
LibXL PHP Extensionを使って、Excelに入力されたデータを読み取るシステムを開発していた時、数式が入力されているセルで、read(row, column)を使うと数式だけが読み取られてしまって苦戦したので備忘録です。
## 本題
解決方法の調査に半日ほどかけた結果、公式(?)ドキュメントみたいなものに辿り着けました。

https://github.com/iliaal/php_excel/blob/master/docs/ExcelSheet.php

以下、私なりの解釈です。
“`php:controller.php
//概念の説明

read($row, //0から始まる行数
$column, //0から始まる列数
&$format = null, //フォーマット(参照渡しに設定されている)
$read_formula = true //←これが重要。デフォルトでtrue = 数式を拾う設定になっているので、これをfalseにすれば値を取ってくるよ

元記事を表示

WordPressを扱うエンジニアに対する質問事項

これまでWordPressを用いたWebサイト制作を多く手掛けてきましたが、フリーランスの方や他社様と制作業務をご一緒させていただくこともあります。

一口にWordPressを用いたWebサイト制作といっても、想定している進め方やレギュレーション、習得具合や期待などの認識がずれる懸念もありますので、このあたりを確認するとお互いのギャップが減るのではないかと質問事項を考えてみました。

この内容はWordPressでのサイト制作を行うエンジニア採用においても転用できる部分があると思います。

また、質問の意図を補完する意味で私の場合の回答例も記載しました。
この回答が正しいとも限りませんが、何を聞きたいかのイメージがしやすいかと思います。

## 質問事項

### CMS選定について

サイトのリニューアルを行う際に、WordPressを継続利用するかどうかも含めて提案して欲しいという要望があった場合、どのような観点で他のCMSの選定、もしくはWordPressの継続利用を判断しますか?

#### 回答例

下記の観点でヒアリングし検討します。

* 運用担当者の方のリテラシーや慣

元記事を表示

TinyMCEがTableタグに「width」と「height」を勝手に設定する機能を無効にする

WordPressがアップデートされてから、TinyMCEがTableタグに「width」と「height」を勝手に設定する機能が追加されました。レスポンシブデザインのサイトにおいて、この機能はむしろデザインを崩す原因となってしまいます。この機能を無効にする方法をご紹介します。

※ これは2016-08-28に[個人ブログ](https://bicstone.me)で公開した記事を移植したものです。

## 問題

TinyMCE 4.3.3以上(WordPress 4.5以上)においてテーブルの境界線を一度でも触ってしまうと、TinyMCEはTableタグに「width」と「height」を勝手に設定します。

![2×2のHTMLテーブルのスクリーンショット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684999/081b61b8-7c33-8a6b-94aa-de99e05f201f.png)

![テーブルの枠線を触る](https://qiita-image-store.s3.ap-north

元記事を表示

WordPressの記事をPHPから更新だけ行う方法

WordPressの記事や固定ページをPHPから更新だけ行う方法です。

※ これは2016-10-25に[個人ブログ](https://bicstone.me)で公開した記事を移植したものです。

## 需要

キャッシュプラグインを使用している時に、一定時間で自動更新される外部ページを読み込む仕組みがあるWordPressの記事を更新したい場合に利用できます。

## 方法

次のようなPHPを実行します。場合によっては読み込みに数秒かかる場合があるのでタイムアウト設定などにご注意ください。

“`php
[記事ID]));
?>
“`

## 参考

https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_update_post

post_titleとpost_contentを

元記事を表示

Real-Time Find and Replace で置換されないときの対処法

Real-Time Find and Replaceプラグインでの置換が適用されないときの対象方法を紹介します。

※ これは2016-09-26に[個人ブログ](https://bicstone.me)で公開した記事を移植したものです。

## プラグインの概要

Real-Time Find and Replace

WordPressで表示される公開ページの置換、正規表現置換ができるプラグインです。

## 置換されない…

Autoptimizeプラグインで生成されたjs、cssファイルのURLを変更するために使用したのですが、置換作業がうまくいきませんでした。

## 原因

AutoptimizeプラグインやReal-Time Find and Replaceプラグインも `template_redirect` フックを利用していました。優先順位がどちらも同一であったため、名前順でAutoptimizeプラグインの出力のバッファリングが先に開始されてしまったことが原因です。

## 対処

Real-Ti

元記事を表示

macOS(Monterey)で PHP を動かす

# はじめに

廃棄予定だった [HTML の参考書](URL “https://amzn.asia/d/2JiazU3”)に掲載されていたPHP のサンプルコード(後述)を
手持ちの MacBook の Apache で動かしたところ、以下のようなレスポンスページ
(PHPのコードが丸見えのプログラムが動いてない状態)となり、
“`
print_r($_POST);
?>
“`
環境を整える必要性に気付きました。

最終的に以下の作業を行ったため、
– macOS に PHP をインストール
– macOS に Apache をインストール
– インストールした Apache の設定

勉強になったことを備忘録をかねて残したいと思います。

# 0. HomeBrewのインストール(事前準備)
詳細は後述しますが、macOS Monterey で PHP を動かすためには、
PHP および Apache のインストールが必要です。
macOS は HomeBrew でパッケージ管理をするので、
まずは HomeBrew をインストールします。

ただ、私が持っている MacB

元記事を表示

プログラムの可読性について(初学者向け)

## 概要

プログラマになって早数年、日々良いプログラムとは何かを考えながらプログラミングをしていました。
一概には言えませんが、良いプログラムとは、究極 **バグがない** プログラムを指すと思います。(要件を満たしているかなどはさておき)
もちろん開発経験のある方ならそれが無理難題だとお気付きでしょう。

では、もう少し現実的に良いプログラムにするためには何が必要か、具体的に良いプログラムとは以下のような事を指すことが多いです。

– 可読性の高いプログラム
– 再利用性の高いプログラム
– エラー処理に対処したプログラム
– テスト可能なプログラム
– etc

今回はそれらの中で **可読性** に焦点を当てて説明してみたいと思います。
※言語はPHPで説明します。

## 可読性の高いプログラムとは

プログラムの可読性とは、そのプログラムコードが人間にとってどれだけ理解しやすいか、つまり読みやすく、理解しやすい状態にあるかを指す概念です。

コードの可読性が高い場合、他の開発者がそのコードを読んで理解するのが容易になり、バグの特定、修正、機能の追加が簡単になります。

元記事を表示

PHP8.2までの環境で簡単にEnumからtryNameFromしたいよね

`PHP8.3`までは動的かつ簡単に`enum`から`tryNameFrom`する事は出来ません。
と言う事でお手軽に`tryNameFrom`しようじゃあないか。

なおオチとしては`composer require putraits/enums`する方が早いです。

https://packagist.org/packages/putraits/enums

詳細な解説は[こちら](#putraitsenumsを用いた解決)。

:::note warn
注意

次の例の通りPHP8.3からは動的なenumアクセスが出来るのでこの記事は不要となります。

“`php
enum HogeBackedEnum: string
{
case Fuga = ‘ふが’;
}

enum HogeEnum
{
case Fuga;
}

$name = ‘Fuga’;

var_dump(
HogeBackedEnum::{$name}, // enum(HogeBackedEnum::Fuga)
HogeEnum::{$name},

元記事を表示

LibXL PHP ExtensionでExcelシートを非表示にする

## まえがき
LibXL PHP ExtensionというライブラリでExcelシートを非表示にしようとしたら大変苦戦したので、後学の為と自分の覚書の為にメモに残しておきます。

## ほんだい
…前置きが長いとストレスにつながると思うので、いきなり本題ですが、簡潔に書くと下記のようになります。
“`PHP:qiita.rb

//↓ この部分は一例です。各記法に従ってください
$excelBook = new \ExcelBook();
$excelSheet = $excelBook->getSheet(0); //この0はsheet1

//略

//シートを非表示にする
$excelSheet->setHidden(true);

“`
## あとがき
私はLibXL PHP Extensionが使われているシステム開発をしており、ExcelにデータをPHPから書き込み後、そのシートをユーザーに見せないようにしたかったので、非表示にする方法をずっと探していました。(計5日間ほど…)

このLibXL PHP Extensionについての情報を検索してみると、日本語英語に

元記事を表示

【PHP】キャッシュの制御

エンジニア歴1年弱の新米エンジニアです。
普段の業務ではフロントエンドはReact、バックエンドはPHPを使用しています。

ググって調べて出てきたコードをコピペすれば問題自体は解決しますが、それだと身につかないと思ったので今回も備忘録として残したいと思います。

## 起きていた問題
顧客管理システムをローカル環境でメンテナンス中 **ユーザーA** のアカウントでログインログアウトし、今度は **ユーザーB** でログインしたところ前回ログインしたユーザーの情報 **(ユーザーA)** の情報が引っ張られてしまう

## 試したこと
ログイン処理を行っているPHPファイルに対して様々な記事を参考に
“`
header( ‘Cache-Control: no-store, no-cache, must-revalidate’ );
header( ‘Cache-Control: post-check=0, pre-check=0’, FALSE );
header(‘Pragma:no-cache’);
“`
を追記しましたが変わらず…

## 解決策
“`
header( ‘

元記事を表示

クエリビルダーの whereAll() および whereAny() メソッドが Laravel 10.47 に追加

2024/03/06にリリースされたLaravel 10.47から、新しいクエリビルダーとして `whereAll()` と `whereAny()` メソッドが追加されました。

# 使い方
1つの値を複数のカラムと比較する検索のロジック等を作成する場合があります。
例えば、名、姓、電子メール、電話番号でユーザーを検索する場合は、これまで以下のような書き方をしていました。

“`php:Controller
User::query()
->where(function ($query) use ($search) {
$query
->where(‘first_name’, ‘LIKE’, “%$search%”)
->orWhere(‘last_name’, ‘LIKE’, “%$search%”)
->orWhere(‘email’, ‘LIKE’, “%$search%”)
->orWhere(‘phone’, ‘LIKE’, “%$search%”);
});
“`
これだと大量の`o

元記事を表示

PHP oci_connect SELECT テンプレ Smarty .tplで出力

### ■ 開発環境
・PHP7.4
・Smarty 2.xxx
・RedHat7.9
・oracle 19

### ■ ソース概要
・OCIで、oracleへ接続
・接続後、SELECT文で値を配列へ格納
・上記で取得した値を、foreachで回して、別々の配列へ格納

— ここから Smarty .tpl
・PHP側で取得した値を出力

### ■ PHPソース
“`php index.php

function GET_KASOU_KUBUN()
{

// OCI
$conn = oci_connect(DB_USER, DB_PASSWORD, DB_CONNECTION_STRING, DB_CHARSET);

if (!$conn) {
$e = oci_error();
self::fnDispError(DB_ERROR, $e[‘message’], true, DEBUG_MODE);
}

$sql = “SELECT カラム01, カラム02 FROM テーブル01 WHERE カラム01 < 3"; $sti

元記事を表示

PHPでフォルダ内にある画像ファイル一覧を取得

「product」というフォルダの中に複数の画像ファイルが入っていたとする。
その中の.jpgファイルだけ取得してimgタグにて書き出す方法。

“`php

eof;
}
}
?>
“`
grobで特定の拡張子だけ選ぶ方法

“`php
//.jpgだけ選ぶ
$filelist = glob($dir . ‘*.jpg’);

//.pngだけ選ぶ
$filelist = glob($dir . ‘*.png’);

//.txtだけ選ぶ
$filelist = glob($dir . ‘*.txt’);

glob — パターンにマッチするパス名を探す
glob(string $pattern, int $flags = 0): array|false

Specia

元記事を表示

AWS ClouldFormationの静的解析ツールcfn-lintコマンドをインストール

## はじめに

CloudFomationのcfn-lintコマンドを使いたくてインストールを試みました。
色々、試みた結果。
PHP利用者は大抵`brew`コマンドがインストールされていると思うので(偏見)、それ使ったら一発だよ!って教えてあげたかっただけです。

## インストールコマンド

“`:ターミナル
brew install cfn-lint
“`

“`:ターミナル
which cfn-lint

// この情報はVScodeと連携するときに使用します
/opt/homebrew/bin/cfn-lint
“`

## VScodeの拡張機能にをインストールし、設定する

まず、拡張機能からインストールしていきましょう。

![スクリーンショット 2024-03-06 21.26.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/667254/45b79a32-6511-8717-1866-c6bb7a52adb7.png)

次に拡張機能を使用するために設定をしていきま

元記事を表示

RSSを取得する方法

### はじめに
本記事は、JavaScript・HTMLでRSSの取得・表示を試みたときの簡単な備忘録です

### RSSを取得する方法
#### 結論
Javascriptで他所のサーバーのRSSを取得しようとするとCORSエラーが発生するためうまくいきませんでした
サーバーサイドで処理をすればCORSエラーを回避できるので、PHPを用いることによってRSSを取得することができました

#### ソースコード例
任意のRSSを取得・表示する最低限のソースコードを以下に記述します

“`php:php





元記事を表示

WordPress ショートコードで自サイトの他の記事をそのまま挿入

WordPressのショートコードを用いて自サイトの他の記事をそのまま挿入する方法を紹介します。

※ これは2016-04-09に[個人ブログ](https://bicstone.me)で公開した記事を移植したものです。

## functions.php へコードを追加

まず、テーマの `functions.php` に次のコードをコピペします。`functions.php` にすでにコードが追加されている場合は `` が二重にならないようお気をつけください。WordPressがエラーで起動できなくなってしまう場合があるためバックアップしてから保存してください。

“`php
0),$atts));
if(get_post($id)!=null)return wpautop(do_shortcode(get_post($id)->post_content));
}
add_shortcode(‘inse

元記事を表示

CSSで勝手に英語大文字になってしまう原因と対処法

WordPressでタイトルが勝手に英語大文字になってしまう原因と対処方法を紹介します。

※ これは2016-03-10に[個人ブログ](https://bicstone.me)で公開した記事を移植したものです。

## 現象

とあるWordPressテーマを適用すると、タイトルの英語部分が勝手に大文字になってしまいました(画像はイメージです)。

![記事のタイトルが管理画面に入力したとおり表示されている](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684999/f1e40f31-31cb-98c3-587b-0969a7d418b7.png)

![記事のタイトルの英字がすべて大文字になっている](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684999/f48caebb-2187-a0e7-eb40-1025ccc0d6f4.png)

## 対処方法

CSSによって大文字に変更されています。よって、テーマのCSS

元記事を表示

SQLSTATE[HY000] [1045] Access denied for user ‘root’@’172.21.0.2’ …原因調査

# MySQLへの接続が拒否に関するエラー
appコンテナとdbコンテナの接続において、
`php artisan migrate`コマンドを実行したところ下記のエラーが出た。
“`
root@a0aefa03324d:/app/laravel# php artisan migrate

Illuminate\Database\QueryException

SQLSTATE[HY000] [1045] Access denied for user ‘root’@’172.21.0.2’ (using password: YES) (SQL: select * from information_schema.tables where table_schema = database and table_name = migrations and table_type = ‘BASE TABLE’)
“`
`access denied…`どうやらmysqlへの接続が拒否されているようだ。
docker-compose.ymlファイルと.envファイルの環境変数を確認し

元記事を表示

MAMPを使ってブラウザ上にPHPファイルを表示させる

# はじめに
この記事は、MAMPを使ってブラウザ上にPHPファイルを表示させる方法を記録したものである。PHPでお問合せフォームを作ろうと思い、実行環境としてMAMPをインストールした。MAMP起動後、PHPファイルに書き込んだ内容をブラウザ上に表示する段階で躓いたため、この問題を解決するために試したことを記録しようと思う。

# 環境・前提条件
– 使用ブラウザはGoogle Chrome
– エディタはVSCode
– MacPCにMAMPをインストール(※MAMP Proは使わない)
– MAMPの設定
– Webserver: Nginx
– PHP-Version: 7.4.33
– ポート番号: 8888

# 試したこと
まず、PHPが実行できる状態であるかどうかを確認する。MAMP起動後、起動ボタンの隣にある`WebStart`ボタンを押す。MAMPのスタートページが表示される。スタートページのURLを`localhost:8888`に変更してアクセスする。Welcome to MAMPというページが表示される。ページ内にPHPのバージョンに関

元記事を表示

OTHERカテゴリの最新記事