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

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

クッキーとかセッションとか??

クッキーやセッションについて、本で読んでも「へぇ〜〜〜」みたいな感じで終わってしまうので手を動かして学んでみた。

## そもそもクッキーとセッションとはなんなんだ?
### クッキー
クライアント側にデータを保持する仕組みのこと。
### セッション
サーバー側にデータを保持する仕組みのこと。
この保持したデータを取り出すには“`session_id“`が必要。この“`session_id“`をcookieとしてクライアント側に保持する。
つまり、“`session_id“`は鍵?でこれを使うことでサーバー側のデータにアクセスすることができる!

なぜこうしてデータを保持しなければいけないかと言うと、例えば「ログイン状態を保持する」みたいな機能をつくりたいときに、HTTPにはデータを保持する仕組みがない。なので一時的/少量のデータをサーバーに持たせる必要がある。

## PHPでわかるクッキーとセッション
サーバーにログインして“`session_test.html“`とかテキトーな名前のファイルを作成し、以下のページを見ながら
`session状態を開始し、sess

元記事を表示

【PHP】preg_replaceは参照記号も使える(正規表現での置換おさらい編)

初級者向けの軽いネタです。PHPには正規表現を用いた関数としてpreg_xxxxxというのがあります。代表的な関数としては

“`PHP
preg_match(パターンマッチング,対象文字列) //検索に用います
preg_replace(パターンマッチング,置換文字,対象文字列) //置換に用います
“`

などがあります。では今回はこのpreg_replace関数についてです。そして、この関数は、エディタと同じように参照記号`$n`を使用することができます。なお、今回は正規表現の記法はある程度熟知しているものとして話を進めていきます。

# 実例
たとえば、住所録を整理していて、住所の表記揺れを修正したいとします。とりあえず、丁目は置いといて「xxのxx」や「xx番xx」を「xx-xx」に修正したい場合は参照記号を用いれば効果的に修正ができます。

“`PHP:PHP
$ary_addr = [
“兵庫県尼崎市東七松町1丁目23−1”,
“兵庫県西宮市六湛寺町10の3”,
“兵庫県宝塚市東洋町1番1”
];

“`

##置換のおさらい
ここで置換のおさらいです。置換元のパ

元記事を表示

Notice: Undefined indexエラー

気づけばプロ並みPHPを進める上で

$staff_code=$_POST[‘staffcode’])

の部分がなぜかNotice: Undefined indexエラーと表示されます。

綴りはあってるはずなのでググってみると
$_POSTなどで受け取る時によく発生するエラーらしい事が分かりました。

Notice: Undefined indexエラーとは、未定義の配列の要素を使用した時に出るエラー。

$staff_code=(!empty($_POST[‘staffcode’]))

↑に変更する事で解決しました。

参考URL:https://qiita.com/wakahara3/items/bb7c8d7a1673b161abe7

元記事を表示

※メモ※【Laravel5.5】compact関数

`compact関数`について忘れがちなのでメモ。

Controllerからviewへ変数を受け渡す時に使うのが`compact関数`である。

では以下に例を簡単に記述

“`Controller/testController.php
public finction test() {

$test = hogehoge;

return view(‘test’,compact(‘test’)); //’test’はviewに変数$testを渡す。
}
“`

`’test’はviewに変数$testを渡す。` についてだが

“`test.blade.php
Controllerから送られてきた変数$testは以下の様な形で記述する。

{{ $test }}

“`

はい、以上!

他には`withメソッド`もあるけど、割愛。

元記事を表示

git cloneした時に発生したエラー

## はじめに
【個人メモ】

自宅で作成・学習したアプリ環境を、会社でもデモ実施環境として使う為に、git cloneした時のお話。

難しいことはせず、ローカルサーバーで動かしたいだけだったのに、 `php artisan serve` をして立ち上がらなかった。

## 解決方法
`composer install` をする。

## 原因・理由
`php artisan serve` をした際に読み込む、`autoload.php` がなかったから。
その保存場所は、vendorフォルダ直下。
そのフォルダは、`.gitignore` でgit管理外にしていたから、存在しなかったという理由。

では、どうしてgit管理外にしていたか。

### vendorフォルダとは何か?
composer による依存パッケージが入っている所。

### どうして管理外にしていたか?
`compose.json` や `composer.lock` があれば落とす事が可能な為。

ちなみに、`composer update` と `composer install` の違いは下記の通り(で

元記事を表示

PHPでページネーションを使って投稿一覧機能【初心者】

WEBページを作っていると記事を一覧表示させる事が多々あると思います。
その際に下の方までずーっとスクロールして見る長いページを作るのではなく、ページングして綺麗に見せようというのが今回の内容です。

![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527574/a85e151c-fced-c4e8-c87f-554a76e3df49.png)

↑こういうやつです。

#投稿の取得
##投稿の取得

まずは投稿を取得していきます。
ここではテーブル名bbs_threadから投稿内容(thread)と投稿日(created)を取得しています。

“`php

元記事を表示

ゼロから始める PHP + Laravel テスト覚書

# Step 1 – 出力

まずはここから。

“`php:item.php

元記事を表示

[超ざっくり&超基本] ポンコツPHPプログラマがRuby(on Rails)をする前に知っておいたほうが良かったなって思うこと

人によってはムチャクチャ低レベルかもしれませんが
ポンコツのため許してください><;
随時追記していきます。

まだRubyをやりはじめて2か月ですが、
「転職して働き始める前の数週間に⇊を知っときゃ良かったなー?」
って思っています。

## ①デバッグの仕方
PHPerのみなさんは、`echo` や `var_dump` を使ってデバッグされているかと思います。(違ったら是非おしえて…?)
では、Rubyではどうするのでしょうか?

Rubyでは `echo` にあたるものは `puts` または `p` です。
`var_dump` は何かというと、 `binding.pry` になるかと思います。

変数の中身や型、状態などを確認しながらコーディングするのは、PHPと変わりません。

## ②migration の見方考え方
Laravelを使っていたなら解説不要かもしれませんが、
Railsは migration というものを行って、RDBMSのデータを管理します。
SQLの代わりにRubyのソースコードを実行させることで、
テーブルを追加したりカラムを削除したりしている

元記事を表示

【PHP】アロー演算子(->) とダブルアロー演算子(=>)ってなに?

PHPを書くさいに頻出する
2つの記号にはおおきな違いがります。
頻繁に出てくるこの演算子を
初学者なりにアウトプットしていきます。

# そもそもの「アロー」とは
アロー、アロウ、arrow – 矢、矢印を指す英語。
見たまんまですね。

“`php
( ̄ー ̄)o∫ シュッ  ->   -> -> -> ->
 ( ̄ー ̄)o∫ シュッ  -> -> -> ->
“`

# アロー演算子(->)
クラスからオブジェクトを取り出すための演算子です。

“`php
//※イメージ

class guitar {
$player1 = “Pat Metheny”;
$player2 = “John Cage”;
$player3 = “Eric Clapton”;
}

guitar -> $player1;
//Pat Metheny
“`
# ダブルアロー演算子(=>)
配列のキーに値を代入するための演算子です。

“`php
//※イメージ

$bass

元記事を表示

EloquentでCRUDしよう

#Eloquentって?
Laravelに含まれている*美しくシンプルなアクティブレコードによるデーター操作の実装*です。

と書いてありますが、言ってしまえばデータベースのテーブルの内容をModelとして扱える便利な機能です。

#使い方
##モデルを作る
ここではlaravelの公式を参照してみましょう.

“`
php artisan make:model Flight
“`
このコマンドでFlightモデルを作ることができます。

“`Flight.php

元記事を表示

PHPでログイン機能の実装【初心者】

前回書いた[会員登録で登録したデータ](https://qiita.com/bys-t_0406/items/741c79a4bddd800c3779)を用いてログイン機能を実装していきたいと思います。

本や他の方の記事を参考に書いていますが、記載ミス等あると思います。その都度訂正致しますので、御指摘いただけると助かります。

#実装の前提

+ MySQLにユーザーが指定した値(user_id)とパスワード(password)が登録されている。

#実装方法

HTMLで入力欄を作っていきます。

“`index.php


・・・

設定されたUserIdとパスワードでログインしてください。

UserId
元記事を表示

PHP Warning: PHP Startup: Unable to load dynamic libraryで困った話

# php -v をするとこんなエラーが出た

php -v だけで無く色んなコマンドで出てくるぞ??

“`
$ php -v
PHP Warning: PHP Startup: Unable to load dynamic library ‘/path/to/extension/mysqli.so’
“`

※この記事は`mysqli.so`を例にした記事です

## 解決方法

### まずはgrepでphp.iniの中を確認してみよう

php.iniの場所がわからなければ`phpinfo()`で確認しよう!
[もういい加減覚えよう。php.iniはどこにあるのか](https://qiita.com/ritukiii/items/624eb475b85e28613a70)

“`
$ cat /etc/php.ini | grep mysqli.so

// こうなっていたら
extension=/path/to/extension/mysqli.so

// コメントアウトし直してあげる!
;extension=/path/to/extension/mysqli.s

元記事を表示

curlを使用して外部APIの情報を取得

## curlとは
> cURLとは、HTTPリクエストをすることにより、外部サイトの情報を取得することができる関数です。
>https://www.sejuku.net/blog/26754

### curl_init()
cURLのセッションを初期化し、返り値にcURLハンドルを返します。

“`
curl_init ([ string $url = NULL ] )
“`
### curl_setopt()
cURLの転送用オプションを設定します。返り値にはboolean型の値を返します。

“`
curl_setopt ( resource $cURLハンドル , int $オプション , mixed $値 )
“`
### curl_exec()
cURLのセッションの実行時に使用します。この関数はセッションの初期化、オプション設定後に使用する必要があります。

“`
curl_exec ( resource $cURLハンドル )
“`
### curl_close()
cURLのセッションを閉じるときに使用します。

“`
curl_close ( res

元記事を表示

GuzzleHttpで401が返却されても例外をスローさせない

Laravelから外部APIを呼ぶときにGuzzleHttpを使ってみた。
401エラーが返却されたときの情報を使って正常処理を続ける必要があったので、例外をスローさせない方法を調べてみたところ、[http_errors]パラメータにfalseを指定すると出来たので、メモ。

“`
$httpClient = new GuzzleHttp\Client();
$response = $httpClient->request(
‘POST’,
$url,
[
‘headers’ => $headers,
‘json’ => $params,
‘http_errors’ => false // 401が返却されても例外をスローしない
]);

“`

元記事を表示

smartyの定数の文頭にスペースが入るときの対処方法【PHP】

## 結論

“`smarty:stripで空白を削除する
{$smarty.const.HOGE|strip:null}
“`

## 状況

“`:動作環境
PHP 7.3.11
Smarty 3.1.34
“`
smartyでPHPの定数を呼び出して直接利用したいときに、なぜか文頭に1スペースが入ってしまっていた。

“`php
リンク先

“`

“`:〇のようになってほしかったが、なぜか×のように1スペース入る
〇 https://sample.co.jp/?nexturl=https://fuga.co.jp
× https://sample.co.jp/?nexturl= https://fuga.co.jp
“`

結局理由はよくわからなかったが、smartyに用意されているstrip

元記事を表示

【スタティック】LPを作る時にパーツ毎にファイルを分け、読み込む。【php】

##なにこれ?
LP(スタティック)を複数人で作る時、同時にファイル触りたくない時に取った方法。
phpで作って、テンプレートパーツに分けてindex.phpに読み込みした。

##コード

“`:index.php
//ヘッダー

//コンテンツ


 
 
 

//フッター

“`

##リンク
###参考サイト
[PHPでテンプレートをインクルードさせる – @Web制作メモ](https://blog.w-make.com/web-work/php_inc.htm

元記事を表示

Laravel Mixとは?webpackをより便利に、簡単に。Laravel以外でも使えるよ。

# 概要
・Laravel Mixとは、フロントエンドのアセットをコンパイル、バンドルしてくれるツール
・ツールの中身はwebpackを利用している
・webpack設定ファイルをより分かりやすく簡単に書けるように設定ファイルをラップしている
・lessやsass、babelなどよく使われるローダーが最初から用意されていて、デフォルトで利用することができる
・Laravelを使っていないアプリでも、コンパイル・バインディングのツールとして利用できる

※webpackが分からない方はこちらを参照
[webpackとは?](https://qiita.com/minato-naka/items/0db285f4a3ba5adb6498)

# 使い方
## 初期状態

※npmが分からない方は、先にこちらを参照
[npmとは?【フロントエンドパッケージ管理】](https://qiita.com/minato-naka/items/fc74f6c9439ab59cec63)

Laravelをインストールすると、
package.jsonとwebpack.mix.jsが用意されている。

元記事を表示

[VSCode拡張] “php”+” tabキー”でphpタグを展開できるようにする

**WordPress**を使うことになりそうなので、
VSCodeで``を展開するショートカット的な拡張はないのかと漁ってましたら
こんな素敵な記事を見つけて、しかも簡単で、嬉しかったのでメモ程度にまとめます。

[「php」 \+ tabキーでphpタグを展開するスニペットを作成する \- IPSJK](https://ipsjk.nori2tae.com/205)

#コードスニペットとは
>何かの文字をキーにコード一式を登録しておいて、簡単に使い回しできる機能のこと
[VSCodeにコードスニペットを登録して効率的にコーディング! \| HPcode](https://haniwaman.com/vscode-snipet/)

#登録の仕方
①`command`+`shift`+`p`で「snippets」と検索
② ファイルを選択するよう切り替わるので、今回は**`html.json`(※phpじゃないよ!!!)**を選択
③ **`html.json`**に以下のコードを追加する。

“`json:html.json

“php”: {
“pref

元記事を表示

cakephp2 DBに画像が保存されている場合、カラムを更新しない

# DBにデータがある場合にカラムを更新しない
## 前提
ユーザーページで”コメント”と”ユーザー画像”を編集が可能になっている

## やりたいこと
DBに画像ファイルが保存されていて空のまま更新ボタンを押した時に空の値を更新するのではなく、そのまま画像を表示させたい。

## 方法①
現在DBに入っているデータを取得して更新する。

“`UsersController.php
if ($this->request->is(‘post’) || $this->request->is(‘put’)) {
$img = $this->request->data[‘User’][‘image_name’][‘tmp_name’];//一時保存パス
$image_name = $this->request->data[‘User’][‘image_name’][‘name’];//ファイル名
if ($image_name) { //ファイルが選択されていればimgディレクトリに移動
$this->request->data[‘User’

元記事を表示

cakephpでユーザー情報ページ作成

# cakephpでユーザー情報ページを作成する

cakephpのブログチュートリアルで作成したものから発展させて投稿したユーザーの個別のページを作る。
【ユーザー情報】
・ユーザー名
・登録メールアドレス
・ユーザー画像
・一言コメント

## Model
“`php:User.php
public $validate = array(
‘username’ => array(
‘required’ => array(
‘rule’ => ‘notBlank’,
‘message’ => ‘ユーザー名は必要です’
)
),
‘email’ => array(
‘email’ => array(
‘rule’ => ‘email’,
‘message’ => ‘メールアドレスを入力してください’,
),
‘required’ => array(
‘rule’ => ‘notBlank’,
‘message’ => ‘メールアドレスは必要です’
),
‘check’ => array

元記事を表示

OTHERカテゴリの最新記事