- 1. PHP – array_pushで躓いたこと
- 2. PHP – Lighttpdでのファイルのアップロードサイズ変更
- 3. 【Laravel】Composer requireでエラー(Installation failed, reverting ./composer.json to its original content.)が出るけどrequireしたい!
- 4. MacでLaravel6の環境構築で苦戦したのでまとめます。
- 5. 【PHP】POSTとGETのデータ送受信方法
- 6. CentOSにNginx、PHPを入れてバーチャルホスト(マルチドメイン)で動かす+FTP
- 7. laravelのルートモデルバインディング
- 8. 【PHP】送信先のフォーム情報をブラウザにキャッシュさせない方法
- 9. CodeIgniter4のModelの基礎
- 10. 新人君向けの課題(ROT13)
- 11. 【PHP】Notice: Undefined indexエラーの原因と対処法
- 12. Laravel 画像をアップロードして表示する
- 13. Swooleを使う前に知っておきたい基礎の基礎
- 14. 某×サーバ宛のdeployerが動かなくなった件
- 15. Laravelの開発環境構築
- 16. Dockerインストール -> Docker ComposeでWordPressローカルで動かしてMySQLに外から接続したり、編集を外からしたり。(Mac)
- 17. PDO
- 18. PHP配列表示
- 19. Composer によるパッケージのアップデート入門
- 20. Phalconのバージョンアップ対応についてざっくりまとめ
PHP – array_pushで躓いたこと
#環境
ARM(といってもIntel SoC)
Linux(intel SoC向けディストリビューションPoky)
サーバはlighttpd
PHPバージョンは5.6.38
#何が問題だったか
@rana_kualu 様からスッキリ回答いただきました!
私は一体何をみて、勘違いをしていたのでしょう。。。
PHP 4.x以降から可能だと思っていました。**末尾コードのカンマは、PHP7.3以降です。**
ローカルでApacheとか最新のサーバを立てて、うまく動いて、
いざ組み込みとなった時に、PHPのバージョン全然古いじゃない、パターンでした。##早速本題
ajaxからPHPをPOSTしてデータをやり取りしていました。
以下のコードではエラーが出てしまい、POSTデータが取れませんでした。“`php:NG_code
$arr = array();
:
:
array_push($arr, $_POST[‘data1’], $_POST[‘data2’], $_POST[‘data3’], );
“`エラー内容は、鍵括弧の終わり「 )」がダメだよのエラー
##PH
PHP – Lighttpdでのファイルのアップロードサイズ変更
# はじめに
PHPはPHPでもphp-cgiを使用した時のメモApache向けが多いので**Lighttpd**向けに
組み込みLinuxで軽量・簡単にWEBアプリケーションを作る人の選択肢が多いと思われます。
スタンドアロンな製品に簡易操作メニューを作りたい場合とか## 調べた時の一生忘れていけない覚書
※ 次の製品を作るころには忘れてる、ので書いておく`・lighttpdでは.htaccessは使えない`
`・lighttpd.confではphp.iniで設定する内容を記述できない`# 環境・条件
事前にLighttpdでPHP(php-cgi)が動いていること
(phpコマンドが入っていなくてもよい)
- WEBサーバー
- lighttpdを使用
- PHP version
- ver 5.6
# php.iniを修正
php.iniは5.6デフォルトから必要なパラメータだけを修正しました。デフォルトのphp.ini(5.4~5.6、7.0~7.3ま
【Laravel】Composer requireでエラー(Installation failed, reverting ./composer.json to its original content.)が出るけどrequireしたい!
#composer requireしてみる
今回私はlarevel uiをインストールしたかった。
“`bash
composer require laravel/ui
“`エラーで乙。
#原因
今入れようとしたパッケージとすでに入っているパッケージがそれぞれ同じパッケージの違うバージョンに依存してしまっているよう?#解決法
このようにバージョン指定にアスタリスクをつけて、依存関係が解決されるバージョンが存在するのを祈る。“`bash
composer require laravel/ui:0.*
“`0から試していく。
MacでLaravel6の環境構築で苦戦したのでまとめます。
ああ
【PHP】POSTとGETのデータ送受信方法
#【PHP】POSTとGETのデータ送受信方法
それぞれの違いを明確に理解するためのメモです。
##postメソッド
– name属性でデータ受け渡し用の名称を設定することで、データの送受信を行う。
– 送られてきたデータの中身は$_POSTで取得&出力しないと見れない。###必要な要素(inputタグの場合)
**■送信元**– formタグ
– action属性:送り先のファイルパス
– method属性:post
– inputタグ(type=”text”)
– データ入力用
– name属性:受け渡し用の名称
– inputタグ(type=”submit”)
– 入力データ送信用**■受信先**
$_POST[受け渡し用の名称]“`php:送信元
laravelのルートモデルバインディング
#役割
ルートとモデルの結びつけを自動的に行ってくれる。#参考例
“`php:web.php
Route::get(‘/user/{user}/show’, ‘UserController@show’);
“`“`php:UserController.php
public function show(User $user)
{
return $user->name;
}
“`このようにweb.phpで定めたURL/user/{user}/showの{user}と
コントローラーの引数に定めた$userが一致している場合、
URLの{}の中身をIDと見なしそれに一致するモデルクラスのインスタンスを自動的に作成してくれる。
【PHP】送信先のフォーム情報をブラウザにキャッシュさせない方法
#【PHP】送信先のフォーム情報をブラウザにキャッシュさせない方法
送信後のフォーム(テストページ)のレイアウト調整で、CSSが反映されず、いちいちブラウザの設定からキャッシュを消すという作業が煩わしいのでその対処法メモ。
#対処法
送信先ページのヘッダーに3行追加するだけ。“`
“`実に簡単。これだけでページがキャッシュされなくなる。
#対処法②
formタグのaction属性で送信先ページのURLをパラメータにすればキャッシュされなくなる。“`
CodeIgniter4のModelの基礎
前回の記事、[CodeIgniter4でMySQLのDB構築](https://qiita.com/kohenji01/items/c87727e553c162b72548)の続きです。
#DBの操作はModelに書こう
MVCモデルにおけるModelとは、通常DBの操作や入力されたデータのやり取りや加工など所謂ビジネスロジックと呼ばれるものを担当するところとなります。CI4においては通常`app/Models/`配下に記述します。###まずはModelのファイルを作る。
今回は`app/Models/InitDB.php`というファイルを作って前回のDB生成、テーブル生成、接続テストを各々メソッドとして用意します。
特段の事情がない限りファイル名と`Class名`は一致させたほうが良いでしょう。
“`php:app/Models/InitDB.php
新人君向けの課題(ROT13)
フレッシャーズの皆さん、教育担当の皆さんジャンボ!!!!
最近、全然ブログ書けてなかった。。。
今回は、連想配列を使ってほしくてROT13という単換字式暗号(シーザー暗号)を課題として出してみました。
## 課題
“`
/**************************************************
* 課題2: ROT13関数を作成
*
* ・起動引数で入力した文字列をROT13の仕様で暗号化する
* ・str_rot13は、使ってはなりませぬ
* ・try-catch、throw Exceptionを使用する
**************************************************/
“`## 私が書いた模範?解答です
“`php
‘n’, ‘b’ => ‘o’, ‘c’ => ‘
【PHP】Notice: Undefined indexエラーの原因と対処法
#【PHP】Notice: Undefined indexエラーの原因と対処法
phpのフォームで送信後に以下のエラーが表示された場合。
“`
Notice: Undefined index
“`##原因
フォームのデータ受け取りがうまくいっていない。
inputタグのname属性に空白を含んだ値をセットしていた。name属性は空白で設定できるが、post(またはget)送信後、空白がアンダースコア「_」に置き換わる。
`$_POST[]`のname属性の指定を、アンダースコアなしの値で呼び出していたためエラーが発生。
##対処法
下記2パターンで対応可能。①nameの設定に空白を使わない。
②`$_POST[]`で受取時に空白を「_」に置換した値をセットする。##PHPの処理
###エラー
インスタンス生成時に名前の部分に空白を含んだ値をセットしていた。“`php:php
Laravel 画像をアップロードして表示する
# 目的
– アプリケーションに画像をアップロードして別画面で表示する方法をまとめる
# 環境
– ハードウェア環境
| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.3) |
| ハードウェア | MacBook Pro (16-inch ,2019) |
| プロセッサ | 2.6 GHz 6コアIntel Core i7 |
| メモリ | 16 GB 2667 MHz DDR4 |
| グラフィックス | AMD Radeon Pro 5300M 4 GB Intel UHD Graphics 630 1536 MB |– ソフトウェア環境
| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 7.0.8 | commposerを用いて導入 |
| MySQLバージョン | 8.0.19 for osx10.13 on x86_64 | Homwbrewを用いて導入 |#
Swooleを使う前に知っておきたい基礎の基礎
近年Swooleに関する記事を見かける機会も増えてきました。LaravelやSymfonyといったフレームワークでもSwoole拡張のためのパッケージが登場しています。これらのフレームワークを利用すればSwooleのことをあまり知らなくてもアプリケーションを構築できるでしょう。しかし、Swooleについての基礎知識がないまま構築してしまうと、本番リリース後に予期せぬ問題を抱え込んでしまうかもしれません。
そこで本記事ではSwooleの基礎の基礎についてまとめてみたいと思います。
## Swooleとは
Swooleを知らない方のために、まずはSwooleについて簡単に紹介します。
![マスコット](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184074/9a0ed77c-e2f6-3161-0bde-3725608cae34.png)
SwooleはC/C++で作られたPHP拡張モジュールで、スケーラブルなネットワークアプリケーションを構築するために設計された非同期・イベント駆動モデルのフレームワー
某×サーバ宛のdeployerが動かなくなった件
# 事件編
某×サーバへのデプロイ、deploy:vendorsタスクでエラる
エラー概要(意訳 このエラーはパッケージがPHP7.2を要求しているがオメーのPHP環境5.4だぜ!出直してこい!)
“`
Loading composer repositories with package information
Installing dependencies from lock file
Warning: The lock file is not
Laravelの開発環境構築
##環境
Mac Catalina10.15##Homebrewをインストールする
[Homebrew](https://brew.sh/index_ja)はソフトウェアの導入を単純化するパッケージ管理システムのひとつです:blush:以下コマンドを実行
“`sh
$ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”
“`インストールできたか確認
“`sh
$ brew -v
“`##PHPをインストールする
以下のコマンドでphp7.4をインストールする“`sh
$ brew install php@7.4
“`
インストールできたか確認“`sh
$ php -v
“`##Composerをインストールする
Composerとは、PHP向けのパッケージ管理システムです:blush:Homebrewでインストールする
“`sh
$ brew install composer
“`イ
Dockerインストール -> Docker ComposeでWordPressローカルで動かしてMySQLに外から接続したり、編集を外からしたり。(Mac)
色々とうまくいかなかったのでメモを残します。
# WordPressをdocker-composeで動かすまで
## Dockerのインストール
下記URLからアプリをダウンロードしてインストール
https://www.docker.com/get-startedDockerのアイコンが上のバーに出てくるのでdocker.hubのアカウントでログイン
![スクリーンショット 2020-05-13 10.01.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636715/6c95c69c-3f15-bed9-3e30-c91b8c53cf3f.png)UIでDockerの状況をお手軽に見れるので結構便利
## docker-composeの導入
下記ドキュメントを参考にcurlで導入したが、なぜか動かなかった
http://docs.docker.jp/compose/install.html“`
curl -L https://github.com/docker/compose/
PDO
PHPを用いてデータベースにアクセスするにはPDOを利用する。
##PDOとは
PDOとは PHP Data Objects の略。
データベースは種類によって、接続方法や操作方法が異なる。
PDOを用いれば、使用しているデータベースが異なっていてもコードの書き方を変える必要はない。#使用例
“`
//データベースへの接続
try {
$pdo = new PDO(‘mysql:host=’ . $this->DB_HOST . ‘;dbname=’ . $this->DB_NAME, $this->DB_USER, $this->DB_PASSWORD);
//プリペアドステートメントのエミュレーションを無効にする
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
//例外がスローされるようにする
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//接続
PHP配列表示
#はじめに
こちらではphpで配列の表示について書いていきたいと思います。
受け取ったものに対し内容が何であるかを把握するのはその後の処理において必要になると思います。#環境
CentOS
PHP 7.3.17#内容
具体的な内容・・・・と言っても基本的な内容ですが・・・
主に使うのはvar_dump
print_r
var_exportこの三種類を使っていこうかとおもいます。
と言ってもやることはシンプルなんですけどね・・・“`html:index.html
index
Composer によるパッケージのアップデート入門
## はじめに
「パッケージをアップデートしたらなんかエラー出た」
なんてことにならないために、雰囲気でやっている Composer によるパッケージのアップデートをちゃんと理解しながら行いたい。そんな人向けの記事になります。
## 環境
– Composer 1.10.x (Installed with Homebrew)
## 事前知識
– PHP と Framework のバージョン
– セマンティック・バージョニング
– Composer によるバージョン指定方法いろいろ
– composer.lock ファイル入門なんで細かなことは抜きにしたいですが、最低でも上記の 4 つはおさえておきましょう。
### PHP と Framework のバージョン
「フレームワークをメジャーアップデートしたらなんかエラー出た」。雰囲気でやっていると起こりうるものですが、特にメジャーアップデートは互換性のない変更が含まれている可能性が高いので、アップデートを行う前に、どのような変更がなされているのか、どういう風に修正していけばいいのか、事前に公式ドキュメントをしっかり確認
Phalconのバージョンアップ対応についてざっくりまとめ
## はじめに
筆者はPHP歴1年半、Phalcon歴1ヶ月程度のひよっこです。
記事は調査した上で実際に手を動かして検証した内容にしていますが、もしかしたら誤りがあるかもしれません。
その際は遠慮なくご指摘ください!## Phalconとは?
PHPの軽量フレームワークで、メジャーなPHPフレームワークでは最速レベルのようです。
理由はフレームワークの本体がC言語 or Zephirで書かれているPHP拡張モジュールだからです。
MVCモデルでフルスタックフレームワークでもありますが、ディレクトリ構造のしばりがゆるくて自由な実装が可能です。
その分玄人向けで、日本語情報も少ないので学習コストは高めのようです。## 1系~3系と4系以降の違い
バージョンアップ時に大事なのが後方互換性です。
メジャーバージョンが同じである場合は確実な後方互換性があるようです。
メジャーバージョンは変わっていますが、1系~3系は後方互換性が高いです。
4系以降とそれ以前はかなり仕様が変わっていて、1系~3系から4系以降にバージョンアップする場合はある程度大きな改修になることを覚悟したほうが良