- 1. 【Laravel】Homesteadで複数アプリを管理しよう!
- 2. 配列要素を削除するとインデックスが残ったり残らなかったりする
- 3. Laravelをさくらのレンタルサーバで動かしてみた【環境構築】
- 4. 【PHP】class内で宣言した定数の参照|self::の有無による違い
- 5. [PHP][マルチバイト対応]レーベンシュタイン距離を求める(解説つき)
- 6. きっと正しくないレンタルサーバーの作り方 Vol.1 -プロジェクト事始め
- 7. ping-tライクなページ2(ただしチャチ)~魔法のhidden属性~
- 8. banglatv
- 9. Moodle 3.8 マニュアル – マスカレーディング
- 10. Moodle 3.8 マニュアル – マスカレーディング
- 11. PHP 変数に値を格納する
- 12. PHPの超基本
- 13. 最短攻略 htmlspecialchars
- 14. PHP(Laravel6.0)+Google Indexing APIで、URLを一括送信するArtisanコマンド作成
- 15. 51歳からのプログラミング 備忘 Laravel 日付でデータ検索
- 16. PHPでバッチの二重起動防止処理を実装する
- 17. AWS Cloud9でLaravel開発環境にphpMyAdminをインストールする
- 18. AWS Cloud9 でLaravel6.9の開発環境を構築する
- 19. 【Laravel】日付(timestamp)をformatで成形しようとすると call to a member function on string とエラーが発生する
- 20. PHP/Psyshによる対話型デバッグ時の使い方
【Laravel】Homesteadで複数アプリを管理しよう!
#困った現象
Homesteadで`laravel new`して新しいアプリケーション作って、
`artisan serve`でサーバー動かした、
でも、新しいアプリケーションに繋がず、前に作っていたアプリケーションに繋がる#解決策
では、この現象を解決していこう!やることは以下の手順です!
1. [http://localhost:8000/](http://localhost:8000/)にアクセスした時に繋がるファイルを設定する
2. 設定を反映する##[http://localhost:8000/](http://localhost:8000/)から繋がるファイルを設定する
その設定をしているファイルはHomestead.yamlです。編集していきましょう
ホストOSで`~/Code`をゲストOS上で`/home/vagrant/Code`として扱っています“`yaml:/home/vagrant/Code/Homestead/Homestead.yaml
folders:
– map: ~/Code
to: /home/vagrant/Cod
配列要素を削除するとインデックスが残ったり残らなかったりする
PHPの配列は、キーのインデックスなどが配列側でしっかり管理されています。
“`php
$a = [];
$a[] = 1;
$a[10] = 2;
$a[] = 3;var_dump($a); // [0=>1, 10=>2, 11=>3]
“`キーを空白にすると、自動的に次のインデックスを割り当ててくれます。
とても便利。しかしこのインデックス、一度増えるとその後値を消しても戻りません。
“`php
$a = [0, 1];unset($a[1]);
$a[] = 2;var_dump($a); // [0=>0, 2=>2]
“`せっかく配列の最後の値を消したのに、使用した情報は残っていて次のキーは2になっています。
MySQLのauto_increment値と同様、一度上限が上がると下がらないということです。
全ての値を消したとしても同様です。“`php
$a = [0, 1];unset($a[1]);
unset($a[0]);
$a[] = 2;var_dump($a); // [2=>2]
“`ところでこいつを
Laravelをさくらのレンタルサーバで動かしてみた【環境構築】
# はじめに
こんにちは [mako](https://twitter.com/makochannelcom) です。__Laravelをさくらのレンタルサーバで外部に公開した方法を簡単に紹介します!!__
いつもローカル環境(MAMP)で動かしていて外部に公開するときにデータベースの設定につまずいたので、そこについても紹介いていきます。
# 階層一覧
“`console
home/
├ bin/
│ └ composer
├ www/
│ └ {‘projectname’}/
│ └ config/
│ └ database.php
│ └ public/
│ └ など…
│ └ .env
└ など…
“`# さくらでサブドメインを作成
さくらレンタルサーバ上に新しいドメインを追加します。
好きなドメイン名とフォルダの階層パスを設定します。![さくらドメイン.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/552607/efb
【PHP】class内で宣言した定数の参照|self::の有無による違い
web系エンジニアを目指し、MENTAを利用し、PHPを学習している初学者です。
日々学習していることの忘備録、モチベ維持、ちゃんとやってることの証明!で、投稿していきます。
#対象者
PHPを学びはじめた、初学者
#内容
class内で宣言した定数を参照した時、self::の有無で値がどう変化するか。
##基本のおさらい
###class内で、共有する定数・変数を宣言する
“`
class A {
//定数宣言(定数名は大文字がデフォ)
const $TEISU = ‘絶対変わらない!’;
//変数宣言(publicの他にprivate,protectedもあるが、ここではアンタッチャブル)
public $hensu = ‘代入されれば変わる’;
}
“`
###宣言した、定数・変数を使う
“`
class A {
・・・
public function output {
echo ‘定数は’ . self::TEISU; //定数は絶対変わらない!
echo ‘変数は’ . $this->hensu
[PHP][マルチバイト対応]レーベンシュタイン距離を求める(解説つき)
# 概要
2つの文字列の類似度を定量的に表すことのできる、レーベンシュタイン距離。– 名寄せの際には非常に重宝する。
– スペルチェック時の「もしかして」にも利用できる。
– DNA配列同士の類似性を判断するためにも応用されている。異なる生物種が持つ同様の遺伝子を同定したり、またそれらの距離を測ることで種が分岐してから経過した時間を推定することができる。最後は完全に筆者の趣味だが、とにかく応用のきくわくわくするアルゴリズムなのである。
さて、このレーベンシュタイン距離、PHPでは[levenshtein()](https://www.php.net/manual/ja/function.levenshtein.php)という標準関数で簡単に求めることができる。ただしこれはマルチバイトに対応していない。
マルチバイトに対応したレーベンシュタイン距離算出の処理は、下記のような記事で既出で、ここに書いてある内容をコピペすれば、問題なくレーベンシュタイン距離を求めることができる。
– [[マルチバイト対応] レーベンシュタイン距離を求める](https://qiita.com/m
きっと正しくないレンタルサーバーの作り方 Vol.1 -プロジェクト事始め
# はじめに
皆さん、突然ですが [**Twitter**](https://twitter.com/)、やってますか(・∀・)?
やってる人が多いと思いますが、何だか人間関係とかギスギスしてますよね(・∀・)?
(偏見)> だから Twiter もいいけど、もうギスギスするのとか、SNSとか疲れたからさ、どこかの無料ホームページスペースにコミュニティー作ってさ、自作のイラストサイトとか作ってさ、PHPで掲示板とか。。作ってさ、身内でワイワイ盛り上がってさ、でさ、でさ。。。PHPとかでアクセスカウンターとか設置してさ、キリ番踏んだらイラストの。。グスッ( ;∀;)。。。リクエストとか。。。うぅ。。。・゚・(ノ∀`)・゚・
昔懐かしいレンタルサーバースペース、最近見かけませんよね(・∀・)。
見かけないなら**作ってみたくなりませんか**(・∀・)?なりますよね(・∀・)?
**なりましたよね**(・∀・)?
と言う訳で、今回は**ごく普通のレンタルサーバー**を作ってみましょう(*´ω`*)。
※注意!
この一連の記事で紹介するコードは動作の概念を説明するものでありセ
ping-tライクなページ2(ただしチャチ)~魔法のhidden属性~
###1.前回の続き(概要)
前回の記事の続き
[ping-tのコマンド問題ライクなページ1(PHP) –ボタン表示切り替えに難問が!!–]
(https://qiita.com/knowledge87sun/items/31f02bd3a08b72d0ea88)(1)カテゴリーと問題数を選択
(2)問題をランダムに表示する。—>ここからスタート
(3)入力後、答え合わせするときは確定ボタン(linux_command_test3.phpへ遷移)を、
回答しないで戻りたいときは「戻る」ボタンを押す(linux_command_test.phpへ遷移)
(4)確定ボタンを押すと、入力値とデータベースに登録された回答をチェックし、
問題に対する結果を表示する。(あっていれば〇、間違っていれば×)
さらに全体の問題数に対する正解数も表示する。###2.hidden属性
ボタンを押したときやテキストボックスの入力値(回答:\$textN(N=1,2…))以外にも、
別のページで利用したいデータがある。
今回の場合で言えば、
「問題の内容」(\$ar_quiz2N)だったり、
banglatv
onsportslive
Moodle 3.8 マニュアル – マスカレーディング
1 マスカレーディングファイアウォールの背後で Moodle を走らせる
1.1 HTTPS と HTTP?
1.2 まず本当の DNS ホスト名を得る
1.3 そして内部 DNS サーバを弄る
2 Windows DNS
3 関連項目1 マスカレーディングファイアウォールの背後で Moodle を走らせる
You may be running Moodle behind a Masquerading Firewall (using Network Address Translation or NAT). In this case your internal Moodle server will most likely be assigned a non-routable (private) IP address in one of the following ranges:10.0.0.0 – 10.255.255.255
172.16.0.0 – 172.31.255.255
192.168.0.0 – 192.168.255.255
You cannot use inte
Moodle 3.8 マニュアル – マスカレーディング
[原文](https://docs.moodle.org/38/en/Masquerading)
# マスカレーディング
内容
[1 マスカレーディングファイアウォールの背後で Moodle を走らせる](#1-マスカレーディングファイアウォールの背後で-moodle-を走らせる)
[1.1 HTTPS と HTTP?](#11-https-と-http)
[1.2 まず本当の DNS ホスト名を得る](#12-まず本当の-dns-ホスト名を得る)
[1.3 そして内部 DNS サーバを弄る](#13-そして内部-dns-サーバを弄る)
[2 Windows DNS](#2-windows-dns)
[3 関連項目](#3-関連項目)#1 マスカレーディングファイアウォールの背後で Moodle を走らせる
You may be running Moodle behind a Masquerading Firewall (using Network Address Translation or NAT). In this case your internal Moodle
PHP 変数に値を格納する
# 目的
– PHPで変数に値を格納する方法をまとめる
# 書き方の例
– 下記に変数への文字列の格納方法を記載する。
“`php
“`# 具体的な書き方の例
– 下記に変数`name`に「miriwo」を格納し出力する処理を記載する。
“`php
“`– 下記に変数`number`に数値の「3」を格納し出力する処理を記載する。
“`php
“`
PHPの超基本
# 目的
– PHPをまだ部にあたり、超基本となることをまとめる
# PHPはどこに書くの?
– HTMLファイルの中に記載する。
– 独立したファイルとして記載することも可能である。# HTMLファイル内にどうやってPHPを書くの?
– PHPのコードは``で囲む。
– PHPのコードをHTMLファイルの中に記載する方法を例として下記に記載する。“`html
“`# PHPのコメントアウトはどうするの?
– `//`の後ろがコメントとなる。
– もちろんコメントも``の中に記載する。# 文末に記号は必要なの?
– PHPは文末記号が必要である。
– 文末には必ずセミコロン`;`をつける。# PHPでHello Worldはどうすればいいの?
– 環境構築が完了しているPCで`.php`ファイルを作成して下記のコードを記載してブラウザで確認する
“`php
最短攻略 htmlspecialchars
PHPで生の式を関数で囲みたいときがよくあるんだけど、せっかく PhpStorm でやってるんだし、上下左右キーやマウスはできるだけ触りたくないですよね。
# 標準機能でできる範囲
![スクリーンショット 2019-12-27 18.24.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11525/b858a15d-c7fa-f0d9-f142-9f0996ad8bae.png)
`Alt` + `↑` 選択範囲拡張
![スクリーンショット 2019-12-27 18.15.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11525/da7ace72-deed-5b3f-bf29-6ed635af3594.png)
`(` 自動閉じカッコ
![スクリーンショット 2019-12-27 18.15.38.png](https://qiita-image-store.s3.ap-northeast-1.amazo
PHP(Laravel6.0)+Google Indexing APIで、URLを一括送信するArtisanコマンド作成
###1、Googleのライブラリをインストール
“`php5
composer require google/apiclient:”^2.0″
“`
vendor内にインストールされる。
※参照:https://github.com/googleapis/google-api-php-client###2、Google APIのコンソールから、認証情報が書かれたjsonファイルを取得
公式:https://developers.google.com/search/apis/indexing-api/v3/prereqs?hl=ja
公式のとおりにやって上手くいきました。ただし、注意点は、「Search Console でサイトの所有権を確認する」の部分。
ここで、サイト所有者に追加するのは、自分のアカウントではなく、新しく作成したサービスアカウントです。
サービスアカウントの権限が、「フル」でなく、「オーナー」になることが必要です。###3、Artisanコマンド作成
“`php5
php artisan make:command GoogleIndex
“
51歳からのプログラミング 備忘 Laravel 日付でデータ検索
“`html:html
format(‘Y-m-d’);
?>“`
\の日付型は、yyyy/MM/dd ( 2019-12-24 )という表示形式。
なのでPHPでフォーマットを合わせてます(’Y/m/d’)“`php:controller
public function sample(Request $request){
$
PHPでバッチの二重起動防止処理を実装する
# バッチの二重起動防止処理
バッチをcronで定期的に実行する場合、二重防止処理を入れていないと何らかの理由でバッチの起動時間が延びた場合に、バッチプロセスが複数溜まり続けてしまう。# 実装方針
* **pidファイル**を作成し、ファイルには**プロセスID**を記録するようにする。
* 異常終了したときや、**Ctrl+C**で終了したときはpidファイルが残り続けないようにする。# 実装内容
PIDを取得するためにphp-processが必要。
“`sh
yum install php-process
“`“`php
class なんたらバッチ {
const PID_PATH = ‘/var/run/hogehoge/hogebatch.pid’;public function __construct() {
// 既に同一タスクが起動中の場合
if (file_exists(static::PID_PATH)) {
exit(1);
}
file_put_contents(static::PID_PATH, posix_
AWS Cloud9でLaravel開発環境にphpMyAdminをインストールする
#phpMyAdminをインストールするための備忘録
##前提条件
・PHP7.1~にアップデート済み
・Larabelインストール済み
・Larabelプロジェクト作成済み##デフォルトのMySQL5.5を削除
“`
sudo service mysqld stop
sudo yum -y erase mysql-config mysql55-server mysql55-libs mysql55
“`##MySQL5.7をインストール
“`
sudo yum -y install mysql57-server mysql57
sudo service mysqld start
“`##最新版のphpMyAdminをダウンロードして解凍
2019/12/27現在、最新版は5.0みたい。“`
cd [プロジェクトフォルダ]/public/
sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.0.0/phpMyAdmin-5.0.0-all-languages.zip
sudo unzip phpMyAd
AWS Cloud9 でLaravel6.9の開発環境を構築する
#PHP
###PHP5からPHP7.2にアップデート
AmazonLinuxには、PHP7.3のパッケージにはpecl-xxxが存在せず、PHP7.4はパッケージすら存在しなかったので
PHP7.2をインストールする。“`
sudo yum -y install php72 php72-cli php72-common php72-devel php72-mysqlnd php72-pdo php72-xml php72-gd php72-intl php72-mbstring php72-mcrypt php72-opcache php72-pecl-apcu php72-pecl-imagick php72-pecl-memcached php72-pecl-redis php72-pecl-xdebug
“`###使用するPHPを7.2に設定
“`
sudo alternatives –set php /usr/bin/php-7.2
“`#Compser
###Composerをダウンロード“`
curl -sS https://getcomp
【Laravel】日付(timestamp)をformatで成形しようとすると call to a member function on string とエラーが発生する
当方、初心者かつ初投稿につきお手柔らかにお願いします。自分がLaravelをいじっている際にハマった部分について共有します。
また以下の記事を参考にしました。先にこちらの記事を見ていただいてもいいかもしれません。https://qiita.com/nest_plusplus/items/fa1cb036aae2451e78c0
## やりたいこと
– Laravel(6.X系)でcreated_atなどのtimestampを独自のフォーマットに成形する。
このような場合、表示するbladeファイル側で以下のような実装をすると任意のtimestampを成形することができます。
“`php
{{$item->created_at->format(‘m’)}}
“`またモデル側では変数datesにtimestampを追加します。
“`php:HogeModel.php
class MonthlyReport extends Model
{
protected $dates = [‘created_at’, ‘updated_at’,];
}
“`
PHP/Psyshによる対話型デバッグ時の使い方
一旦個人的にメモ、後ほどちゃんとした記事形式に修正予定
####ブレークポイントの設定
eval(\Psy\sh());####対話を終了してプログラム続行
exit####プログラムの実行ごと中止
Ctrl + C