くわこのpermission denied.

WEBエンジニアの僕がぶつかった技術的な問題や発見

PHP

Laravel5で'Class 'TCPDF' not found'

タイトル通り普通に開発してたら'Class 'TCPDF' not found'って出て、なんぞ?ってなった。そもそもTCPDFとは? TCPDFに関するリファレンス・ドキュメント TCPDFは、PHP用のライブラリで、PDFファイルを動的に作成するためのライブラリ(クラス)です。 ほう、…

staticで宣言したメンバ変数にアクセスする方法

PHP

#hogeクラス public function getHoge() { $brothers = ['taro', 'jiro', 'saburo']; // 処理 }みたいな書き方をしていたら、先輩に「固定値なんで、フィールドにstaticで定義した方が都度インスタンス生成しなくてよいよ」と言われたので、 #hogeクラス pri…

Laravelを新しいVMにpullしてきてartisanコマンドを叩いたらError in exception handler.

タイトル通り、新しいVMに既存のプロジェクトをpullしてきてcomposer updateとかしてたらなんかartisan周りでエラー。 エラー文言はError in exception handler.のみ。ワケ分からんと思って色々調べてたら、ドキュメントに 最初にComposerを使用し、Laravel…

checkdnsrr($address, "A")でメールバリデーションするとdocomo.ne.jpがバリデーションに引っかかってしまう件

PHP

この前【PHP】メルアドバリデーションにcheckdnsrr()を使っていたら存在するメルアドもバリデーションに引っかかってしまった話 - MasKのpermission denied.mask.hatenadiary.com っていう記事を書いたんですが、 return checkdnsrr($domain, "A"); だとdoco…

【PHP】メルアドバリデーションにcheckdnsrr()を使っていたら存在するメルアドもバリデーションに引っかかってしまった話

PHP

タイトル通りメールアドレスのバリデーションにcheckdnsrr()でそのホスト名が存在するのかをバリデーションでかけていたのですが、どうやら本当に存在するのにcheckdnsrr()がfalseを返す場合があるとユーザーから苦情が来た。PHP: checkdnsrr - Manualちなみ…

【PHP】連想配列の配列から特定の値だけ取り出す。【array_column】

PHP

連想配列の配列から特定の値だけ取り出す。book_listから全部の本のidを取得する場合、 $book_id_list = []; foreach ($book_list as $book) { $book_id_list[] = $book['id']; } こう書くしかないと思ってました。 ところがPHP5.5からarray_column()という…

【PHP】目的の日までの日数を計算する方法【日付計算】

PHP

PHPで今日から任意の日付までの日数を引き算する方法をメモ。今回のサンプルは期限の時間 $time_limit から現在の時間を引いた結果が秒で出るので、それを日数に変換しています。 $remaining_days = floor((strtotime($time_limit) - strtotime('now')) / (6…

PostgreSQLの配列をPHPの配列にしたり、PHPの配列をPostgreSQLの配列に変換したい。

タイトル通り PostgreSQLとPHPの配列を変換する関数 毎回思い出すの面倒なので、メモがてら共有 // phpの配列をpostgres用の配列に変換 private function toPostgreSqlArray($data) { return '{' . implode(',', $data) . '}'; } // postgresの配列をphpの配…

PHPでcsvファイルを読み込む方法

PHP

PHPでcsvファイルを読み込む方法 今更ながら便利だったのでメモ $file = 'path/to/file'; $fp = fopen($file, 'r'); while(($csv = fgetcsv($fp, 0, ',')) !== FALSE) { //$csvファイル一行ずつ実行 } $csv には一列ずつ左から$csv[0], $csv[1], .... みたい…

Notice: Indirect modification of overloaded property Hoge::$page has no effectという見たこと無いエラーが出た。

PHP

foreach内でオブジェクトに配列を代入しようとしたら Notice: Indirect modification of overloaded property Foo::$bar has no effect という初めて見たエラーが出たので調べてみた。どういう状況で起きたかというと、コメントリストをforeachで回してその…

implode(): Invalid arguments passed

PHP

implode(): Invalid arguments passed in ... ってエラー出てなんだろうと思ったら、引数がarrayじゃないですよってエラーだった。

PHPのisset()とempty()の違い

PHP

PHPのisset()とempty()の使い分け方が分からん。 と思って調べたら、ちゃんと明確に違うんですね笑 今まで割と適当に使ってました。下に参考URL載せたのですが、かいつまむと 種類 | isset() | !empty() false | true | false 空文字 | true | false 空配列 …

PHPの文字列一致でstrpos()を使うときに注意すべきこと

PHP

タイトルの通り、 PHPの文字列一致でstrpos()を使った んですが、罠にはまったのでメモがてら共有。この記事 PHPまとめ - 文字列操作 でPHP最速の文字列検索はstrpos()だ、というのを見て文字列一致には毎回strpos()を使っていました。しかし、 $text = 'abc…

ん? syntax error, unexpected 'list' (T_LIST), expecting identifier (T_STRING)

PHP

Laravelで普通にコーディングしてたら syntax error, unexpected 'list' (T_LIST), expecting identifier (T_STRING) ってエラーが出てきてなんやねんと思って調べたら、そもそも 'list' っていうのがPHPの予約語でconstantsやcalss名、function名、method名…

【Laravel】リレーションで別テーブルを挟む場合

Laravelのリレーションでテーブルを挟んで紐づけたい場合の書き方 タイトルの通り、リレーション(hasManyとか)でテーブルを挟んだ先のテーブルも紐づけたい時にどうすんの?ってなりました。 文章だけだと分かりづらいですが、 記事 ▶︎ コメント ▶︎ コメント…

【PHP】arrayに空文字が入っていたら削除

PHP

unsetってけっこう存在自体を忘れますよね。 $tag_array = explode(',', $tags); //空文字が入っていたら削除 if($emptiness = array_search('', $tag_array)){ unset($tag_array[$emptiness]); }

【Laravel】レコードがあったらUpdate、無ければInsertする方法

LaravelでレコードがあったらUpdate,無ければInsertする方法を思いついたのでメモ。 $member = Member::firstOrNew(['member_id' => 00001]); $member->name = '太郎'; $member->save();firstOrNew()はレコードがあれば取ってきて、無ければnewしてくれるの…

PHPで文字列の半角カナ、全角カナを変換する。

PHP

$converted_str = mb_convert_kana ( $string[, $option[, $encording]]);で変換できる。 オプションは でendcordingは省略可能です。便利な関数がありますね(KONAMI)

LaravelでJOIN ON を使う

hogeテーブルのレコードに対して、pageテーブルのレコードを削除フラグ is_deleted = 0 だったら 結合したい場合、Laravelでは $sql->leftjoin('page', function($join){ $join->on('page.hoge_id', '=', 'hoge.hoge_id') ->where('page.is_deleted', '=', 0…

新しくサーバー立てたときにお世話になった記事まとめ【さくらのクラウド】

さくらのクラウドの20000円クーポンを頂いたので使ってみた。自分でサーバー立てたりするのは初めてだったので、苦労しました。 なのでログがてらお世話になった記事を。Webサーバー構築(Apache) - CentOSで自宅サーバー構築 apacheの設定などはこのページを…

【twig】twigでvar_dump()する方法

twigを使っていて、var_dumpしたいけど、できん!ってなって調べたのでシェアtwigでvar_dumpと同じことをするには、設定ファイルを書き換える必要があります。 設定ファイルはLaravelなら/app/config/packages/rcrowe/twigbridge/config.php になります。他…

Laravelでテーブルをjoinで結合してテーブル間でカラム名が被ったときの対処法

Laravelでテーブルをjoinで結合してテーブル間でカラム名が被ったときの対処法 usersテーブル id, name, class_idclassesテーブル id, name各テーブルが上のようなカラムを持っていたとすると、 $users = DB::table(‘users') ->select(‘users.id', ‘users.na…

正規表現で特殊文字だけ取り除きたい【PHP】

諸事情で特殊記号(☆)とかが文字列に入っていたら、排除してちゃんとした文字列に直したい、ということがあって調べたので共有。 $address = '東京都☆渋谷区'; $formated_address = preg_replace("/[^ぁ-んァ-ンーa-zA-Z0-9一-龠0-9\-\r]+/u",'' ,$address)…

GoogleMapAPIから二点間の移動距離とその所要時間を計算する方法

GoogleMapAPIから二点間の移動距離とその所要時間を計算する方法 を調べたのでメモ。二点間の移動距離とその所要時間をそのまま出してくれるものが見当たらなかったので、出発地と目的地の緯度経度を求めて▶︎移動距離とその所要時間を算出するという二段階に…

Laravel4でSQLのLIKEの使い方

Laravel4のクエリービルダーでLIKE句を使おうと思って ->... ->like('name', '%あああ%') ->get(); みたいな使いかたしたけど通用しなくて、どうやって表現するんだろうかと思って調べたら ->... ->where('name', 'LIKE', '%あああ%') ->get(); でとれました…

【PHP】多重配列の並び替え

PHP

多重配列の並び替え $users[0][‘age’] = 15; $users[1][‘age’] = 14; $users[2][‘age’] = 16; $users[3][‘age’] = 11; $users[4][‘age’] = 18;このとき配列を年齢順に並べ替えたい。 $age_array = []; foreach($users as $user){ array_push($age_array, $us…

【よくわからん】simplexml_load_file()で取ってきたxmlのオブジェクトのプロパティの中身がオブジェクトになる???

PHP

simplexml_load_file()で取ってきたxmlのオブジェクトを $stations['station_name'] = $res->station_name; のように突っ込んだら$stations["station_name"]の中身が object(SimpleXMLElement)#330 (1) { [0]=> string(9) "浅草駅” } となっていました。 欲…

【API】最寄り駅を調べる方法

検索ワードからその地点の最寄り駅のデータを出す必要があり、使い方など調べたので共有検索ワードから直接最寄り駅までの距離などを調べられるAPIがあると思っていたのですが、考えが甘かったです。調べた感じ、少なくとも無料のものでそういった便利なもの…

Laravelのcacheを全削除する方法

全削除するには php artisan cache:clear で全部消えました

【Laravel】Laravelのformヘルパーでnameとvalue以外の要素を指定する方法。【フォームヘルパー】

Laravelのformヘルパーでnameとvalue以外の要素を指定する方法。 formヘルパーでclassとか、required指定したい時どうすんの?って思ったけど調べてもなかなか出てこなかったので。 ちなみに⬇️が日本語ドキュメント的なやつの記述(http://laravel4.kore1serv…