- 0.1. ソートの関数を使わずに配列を並び替える「バブルソートアルゴリズム」
- 0.2. WordPressで記事の状態を確認する関数
- 0.3. PHP テンポラリーファイルが作成されるディレクトリを確認する
- 0.4. 【PHP】日本語のyyyy年MM月dd日という文字列をyyyy-MM-ddにサクッと変換する方法
- 0.5. array_slice関数
- 0.6. PHP8 RC、Composer2、Xdebug3 RCでLaravel8.xを動かす
- 0.7. PHPで管理画面を作る①
- 0.8. ECCUBE4系の、受注一覧で商品コードで検索する。
- 0.9. 【Laravel基礎】複数のテーブルの結びつけ【リレーション】
- 0.10. WindowsのPHPからSQL Serverに接続する方法
- 0.11. CakePHP 複数レコードを一括保存するsaveAllの使い方
- 0.12. 404エラーを返すWordPress投稿を修正する方法
- 0.13. 炎上している件とは関係ないけどforとforeachの違いをまとめてみた
- 0.14. YouTube Data API v3 クォータ制限について
- 1. 突然、YouTube Data API v3 で取得していた動画情報が取得できなくなってしまった
- 2. 1.原因の調査
- 2.1. Laravel で「Server error: GET http://cabinet.laravel.com/latest.zip resulted in a 522 Origin Connection Time-out response:」エラー
- 2.2. JavaScript PHP 正規表現を使用した文字列置換でが何を指しているかわからなかったので調べて簡単にまとめる
- 2.3. PHPの勉強でポートフォリオ投稿サイトを作ってみた
- 2.4. 【PHP:条件分岐】if文、else文、elseif文の3つを具体例付きで解説!【初学者向け】
- 2.5. 【Laravel基礎】フォームの入力内容を制限する方法【バリデーションとフォームリクエスト】
- 2.6. 5分で作るDocker+Laravel PHP+Vue.js開発環境構築
ソートの関数を使わずに配列を並び替える「バブルソートアルゴリズム」
#課題
下のようなGETポストが渡ってきたと仮定し、それをソート関数を使わずに小さい順に並び替えるという機能をPHPで作る学習で試行錯誤したのでその跡を残しておきたく。
`http://localhost:10080/php-pre-challenge2/index.php?array=3,2,1,4,15,18,13,99,77,66,1,100,0`バブルソートというアルゴリズムでこれが実現できます。バブルソートとは、一つのループの中にもう一つループを作り、内側のループで隣り合う数字の大小を比較して並び替えていくことで、配列全体を並び替えます。[Wikipediaの説明](https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%96%E3%83%AB%E3%82%BD%E3%83%BC%E3%83%88)がわかりやすいです。
#実装
“`PHP
WordPressで記事の状態を確認する関数
公式 → [WordPress codex](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/get_post_status)
WordPressでの記事の状態にてその後の処理を決めるために
記事の状態を取得する処理を実装した“`PHP
“`既に用意されている関数だったのでリファレンスをしっかりと読めば
直ぐに処理を追加することが出来た
上記の$IDの中身は下記のいずれかになるのでそれに対して
条件を作れば求めた処理ができる“`
– ‘publish’ – 公開済
– ‘pending’ – 承認待ち
– ‘draft’ – 下書き
– ‘auto-draft’ – 新規作成された投稿。まだコンテンツがない。
– ‘future’ – 予約済(未来に投稿される)
– ‘private’ – 非公開(ログインしていないユーザーから見えない)
– ‘inherit’
PHP テンポラリーファイルが作成されるディレクトリを確認する
# 目的
– PHPで作成されるテンポラリーファイルがどのディレクトリに作成されるかを得る方法をメモ的にまとめる。
# 詳細
– 下記を実行するとsys_temp_dirの値が返される。
“`php
sys_get_temp_dir();
“`# 参考文献
– [https://www.php.net/manual/ja/function.sys-get-temp-dir.php](https://www.php.net/manual/ja/function.sys-get-temp-dir.php)
– [https://www.php.net/manual/ja/ini.core.php#ini.sect.file-uploads](https://www.php.net/manual/ja/ini.core.php#ini.sect.file-uploads)
【PHP】日本語のyyyy年MM月dd日という文字列をyyyy-MM-ddにサクッと変換する方法
## はじめに
先日[teratailで回答した内容](https://teratail.com/questions/304156#reply-427340)と同じになりますが、メモも兼ねて。| PHPのバージョン |
|:-:|
| 7.4.10 |## コードと簡単な説明
“`php
$date = DateTime::createFromFormat(‘Y年m月d日’, ‘2020年11月19日’);
echo $date->format(‘Y-m-d’);
// 出力:2020-11-19
“`
日時表示を特定のルールでフォーマットする場合は、`DateTime::createFromFormat`が便利です。
第1引数に書式を、第2引数に日時を渡すと、フォーマットされたDateTime型のインスタンスが返ってきます。
> 返り値
> 新しい DateTime のインスタンス、失敗した場合に FALSE を返します。[公式ドキュメント](https://www.php.net/manual/ja/datetime.createfromformat.php)にはサ
array_slice関数
# array_slice
配列の一部の範囲をスライス(切り取る、取得する)“`
array_slice(array $array, int $offset [,int $lenght = NULL[, bool $preserve_keys=False]]):array
“`
## 引数
$array=>対象の配列$offset=>取得したい要素
$lenght=>取得したい要素の数
$preservekeys=>trueのときは、引数preservekeys=>trueのときは、引数arrayのキー番号を保持した戻り値を返す。falseのときは、戻り値のキー番号は始まりになる
##戻り値
offsetから$lenght分の要素## 使用例
入力“`
$array=[“a”,”b”,”c”,”d”,”e”,”f”,”g”];echo var_dump($array);
$array_slice=array_slice($array,3,2);
echo var_dump($array_slice);
“`出力
“`
array(7)
PHP8 RC、Composer2、Xdebug3 RCでLaravel8.xを動かす
## 概要
– PHP8.0がRCになっていたから諸々新し目のものを使って環境構築してみるよ
– 環境自体はDockerで構築していくよ
– 全ての環境に対応出来るわけじゃないと思うけど参考になれば嬉しいよ
– PHP8.0もXdebug3もRCなので現状は実運用しないように、とはいえ開発していくのには見ていくことも必要だよね## 最終的な環境
“`sh
$ docker-compose exec app php –version
PHP 8.0.0RC4 (cli) (built: Nov 12 2020 20:17:20) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
with Zend OPcache v8.0.0RC4, Copyright (c), by Zend Technologies
with Xdebug v3.0.0RC1, Copyright (c) 2002-2020, by Derick Reth
PHPで管理画面を作る①
作成開始から3日目
#作成手順
①作りたいテーマ大まかに決める
②HTML、CSSで画面骨組みつくりながら、画面遷移図書く
③DB設計
④実装
⑤テスト
⑥デプロイ#進捗
①作りたいテーマ大まかに決める 完了
②HTML、CSSで画面骨組みつくりながら、画面遷移図書く 完了
③DB設計 ←Now!
④実装
⑤テスト
⑥デプロイ
ECCUBE4系の、受注一覧で商品コードで検索する。
自分用のメモ程度です。
ECCUBE4系を利用しているのですが、商品コードで検索したいとの要望があったので実施。フォームを増やしたりするのは面倒なので、現状の詳細検索→購入商品名を商品コードにも対応させる方法で進めました。
変更箇所は1箇所のみで、
/src/Eccube/Repository/OrderRepository.php
に OR oi.product_code LIKE :buy_product_nameを追加すれば完了です。“`php
// buy_product_name
if (isset($searchData[‘buy_product_name’]) && StringUtil::isNotBlank($searchData[‘buy_product_name’])) {
$qb
->andWhere(‘oi.product_name LIKE :buy_product_name OR oi.product_code LIKE :buy_product_name’)//ここに追加
->setParameter
【Laravel基礎】複数のテーブルの結びつけ【リレーション】
#概要#
Laravel学習で自分がつまずいた部分を備忘録としてまとめています。
今回は複数のテーブルの結びつけに関する記事です。#この記事でわかる事#
テーブルの結合方法(リレーション)
①テーブルの主従関係
②テーブルの設定
③モデルの設定以下、記事内容です!
##テーブルの主従関係##
今回はPostテーブルとCommentsテーブルを用意して、結合します。こうした複数テーブルの結合を`リレーション`と呼びます。
そして、リレーションにおいて重要なのが`主従関係`です。
一方のテーブルが主テーブル・もう一方が従テーブルとなり、
この主従関係によって書くコードが変わってきます。今回の場合だと、Post(記事)に対してComments(コメント)がつくので、
`Postテーブルが主、Commentsテーブルが従`という関係になります。
ブログのイメージですね。記事がまず先にあって、それに対してコメントがつく。
Twitterだと、まずユーザーがいて、そこから投稿が生まれる。
`それが無いと成り立たない側のテーブルが主テーブル`になります。従テーブルは`主テーブ
WindowsのPHPからSQL Serverに接続する方法
# 目的
普段LAMPP環境でDBはMySQLばかり使っていたのですが、とある案件でDBにSQL Serverを選択することに。
Windows(XAMPP)上のPHP(Laravel)からSQL Severに接続するにあたり、必要なドライバー等を調べたので手順をまとめます。
# 手順
手順は以下の通りです。
## 環境調査
まずは自分のPHP環境を“phpinfo()“で下調べします。確認するのは以下の3つ。
– PHP Version
– Architecture
– Thred Safety![phpinfo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604718/52c81904-5ce6-06d2-d9dd-f1f952552e01.png)
## ドライバーダウンロード
Microsftの公式サイトから“Microsoft SQL Server 用 Drivers for PHP“をダウンロードします。### SQL server 2019用
https://do
CakePHP 複数レコードを一括保存するsaveAllの使い方
ビュー
“`form.ctp
echo $this->Form->create ( ‘User’, array (
‘type’ => ‘post’,//POSTとGETの設定
‘controller’ => ‘users’,//コントローラーの設定
‘action’ => ‘edit’,//アクションの設定
) );echo $this->Form->input ( ‘User.0.name.’);
echo $this->Form->input ( ‘User.0.age’);echo $this->Form->input ( ‘User.1.name’);
echo $this->Form->input ( ‘User.1.age’);echo $this->Form->input ( ‘User.2.name’);
echo $this->Form->input ( ‘User.2.age’);echo $this->Form->end(‘送信’);
“`$this->request->data;の中身
“`.p
404エラーを返すWordPress投稿を修正する方法
WordPressは強力なCMSですが、わずかな調整によりWebサイトにアクセスできなくなる場合があります。ただし、WordPressの問題の解決策を見つけるのは非常に簡単です。WordPressユーザーが直面する最も一般的な問題のいくつかあります。例えば内部サーバーエラーまたはデータベース接続の確立エラーなどです。そして、ほとんどのWordPressユーザーがいつか直面するもう1つの一般的な問題は、WordPressの投稿が404エラーを返すことです。この記事では、404エラーを返すWordPressの投稿を修正する方法を紹介します。
___通常、ユーザーはブログのメインページであるWordPress管理エリアにアクセスできますが、単一の投稿にアクセスすると、404 Notfoundエラーが発生する場合があります。そういった場合でもほとんどの場合、慌てる必要はありません。そういった時の原因は主に2つです。
**①htaccessファイルが削除された**
**②書き換えルールに問題が発生した**そこで行うべきアクションは**パーマリンク設定を修正することです**
「設定」⇨
炎上している件とは関係ないけどforとforeachの違いをまとめてみた
前回の記事 → [転生できないからVimで2つのファイルの差分を確認してみた](https://qiita.com/daikin/items/84b669b44a4c8053b45d)
### ほんと炎上とは何も関係ないです←
forとforeachって何が違ってどう使うのかややこしくなった時期が
過去あったなぁと思ったのでまとめました
因みに個人的な好みとしてforeachの方が使うことが多いです^ – ^#### for
公式 → https://www.php.net/manual/ja/control-structures.for.php“`PHP
for ($i = 1; $i <= 10; $i++) { echo $i; } ``` 基本的な使い方は上記の通りで $iが1からカウント?スタートして10になるまで{}の中の処理を繰り返します。 自分で繰り返す回数を指定出来る様なイメージで解釈しています。 #### foreach 公式 → https://www.php.net/manual/ja/control-structures.foreach
YouTube Data API v3 クォータ制限について
プログラミング初心者が自身で作りたいwebページの作成中に
疑問に思ったこと、問題解決したことを書いていきます。
間違っている点も多々あると思います。突然、YouTube Data API v3 で取得していた動画情報が取得できなくなってしまった
YouTubeの動画URLを入力すればカテゴリ別に仕分けしてDBに登録し、リスト形式で表示するというwebアプリを作った。
動画情報をYouTube Data API v3を用いてリスト形式で表示させるというものだったが
突然動画情報が取得できなくなってしまった。1.原因の調査
原因を調査したところ、GoogleのAPIでは1日に使用できる「クォータ(Queries)(?)」の制限があるとのこと。
[コンソール](https://console.cloud.google.com/apis/api/youtube.googleapis.com/quotas)
こちらにアクセスしたところ確かにいっぱいだった・・・
(
Laravel で「Server error: GET http://cabinet.laravel.com/latest.zip resulted in a 522 Origin Connection Time-out response:」エラー
Laravel で久しぶりに laravel new blog のコマンドを打ってプロジェクトを作ろうとしたらタイトルのエラーが発生した。
“`
laravel% laravel new blog
Crafting application…In RequestException.php line 113:
Server error: `GET http://cabinet.laravel.com/latest.zip` resulted in a `52
2 Origin Connection Time-out` response:
522 O
JavaScript PHP 正規表現を使用した文字列置換でが何を指しているかわからなかったので調べて簡単にまとめる
# 目的
– JavaScriptとPHPの文字列置換でどうして$1にヒットした文字列が入っているのかわからなかったので調べてみた
# 前提情報
– JavaScriptは下記の方法で確認した
– [JavaScript 正規表現をchromeの検証モードで確認する](https://qiita.com/miriwo/items/b874f9cc27fa44451769)
– PHPは下記のサイトで確認した。
– [https://paiza.io/ja](https://paiza.io/ja)
– 下記の内容を実装中に$1になぜヒット内容が入っているか気になった。(本来良くないことだが$1にすればヒットした内容が格納されているということを一つ覚えで実装してしまった。)
– [Vue.js 表示文字列にURLが含まれていたときにリンク化する](https://qiita.com/miriwo/items/1c70ba9ed43595608a93)# 確認
1. Chromeの検証モードのコンソールでで下記を実行してみる。
“`JavaS
PHPの勉強でポートフォリオ投稿サイトを作ってみた
# はじめに
新卒でウェブ制作会社に就職し、コードの量産に嫌気が差し営業に転職。
趣味で作りたいもののために勉強しているウェブエンジニアです、こんにちは。今まではWordpressを使用しウェブサイトを作ってきましたが、ウェブサービスを作りたく思いバックエンドの勉強を開始しました。
その時、悩んだこと、作ったサービスを簡単に書こうと思います。# 「PHP」を選択するか、あるいは「Laravel」選択するか
結果的にタイトルにあるように“PHP“を選択しましたが、すごい悩みました。
というのも“PHP“はあまりいい噂を聞きません。
「やれ、古い」「やれ、汚い」挙句の果てに「オワコン」なんて言葉も見つけました。それに比べて“Laravel“はかっこいい。
なんかモダンな香りがしますよね。
「“PHP“勉強してるより、“Laravel“勉強してる」の方がかっこいい。形から入るタイプの私はすごい悩みました。
通勤電車中、仕事中、食事中、ずっと考えました。
考えて考えて考え抜いた結果、「とりあえず手を動かそう、早く作ろう」という結論に至りました。そうすると
【PHP:条件分岐】if文、else文、elseif文の3つを具体例付きで解説!【初学者向け】
プログラミングを`Progate`や`ドットインストール`、勉強はじめた時は、覚える関数が多くて
「どの関数を使うかわからない!」
「そもそも関数多くて覚えてられない!」などと悩んだことが多かったです。
しかし、`Progate`や`ドットインストール`で紹介されている関数は網羅的なので、正直あまり使われない関数も多いです。と言うことで、この記事ではまず最初に抑えたいif文と言う関数を3つご紹介します。
##if_else_elseif文 (超頻出)
###書き方
“`php
“`因みにelseif以下の部分と、else以下の部分は書いても書かなくてもOKで、その都度利用していく感
【Laravel基礎】フォームの入力内容を制限する方法【バリデーションとフォームリクエスト】
#概要#
Laravel学習で自分がつまずいた部分を備忘録としてまとめています。
今回はフォームの入力内容の制限に関する記事です。#つまずいたポイント#
指定条件以外のフォーム入力を弾いてくれる`バリデーション`。
そんなバリデーションですが、アクション事に毎回指定するのが面倒くさい。。
効率的な方法が無いか調べました。どうやら、`フォームリクエスト`なるものを使うと
一括でバリデーションを指定出来るとのこと。バリデーションの復習もかねて、下記の2つを記事にしました。
####①バリデーション####
####②フォームリクエスト####以下、記事内容です!
#バリデーション#
まずはバリデーションの復習。
保存や編集などの、フォーム内容を受け取るアクション内で、
`$this->validate($request,[条件]);`を入力。
第2引数の入力内容が、フォームの入力条件になります。■コントローラ
“`laravel:PostsController
public function store(Request $request) {
5分で作るDocker+Laravel PHP+Vue.js開発環境構築
|開発環境|
|—|
|macOS Big Sur|下記の記事を参考に環境構築を行ったのですが、
やれ`wget`コマンドが無いだの、`apt-get`コマンドが無いだの初心者の方への導入への障壁がいくつかあったため、
それを乗り越えるための記事にしたいと思います。(※注:下記の記事は決して悪くありません。)|タイトル|リンク|
|—|—|
|5分で作るLaravel+Vue.js開発環境(docker-compose)|https://qiita.com/yusukeito58/items/37bd551560e495dbd1b8|
—
# `wget`コマンドインストール
|タイトル|リンク|
|—|—|
|Mac – wgetコマンドをインストール(使えるようにする)|https://qiita.com/th4inf/items/f85c1b91065d85af67b9|
—
# ~~`apt-get`コマンドインストール~~ ←apt-getコマンドが無いかと思い調べてが結果的にいらないのでやらんで良い
|タイトル|リンク|
|—|-